Linux

FastDFS初体验

Jan 18, 2017 | | Say something

准备工作; 从github下载fastdfs的源码包 https://github.com/happyfish100/fastdfs-5.08.zip https://github.com/happyfish100/libfastcommon-master.zip 可能你选择的版本不太一致,尽量选新的版本吧,我直接下载zip包 测试环境,先关闭防火墙和selinux 先安装依赖包 1、安装libfastcommon yum install -y gcc perl libevent unzip libfastcommon-master.zip #解压 cd libfastcommon-master ./make.sh ./make.sh install 2、安装fastdfs unzip fastdfs-5.08.zip #解压 ./make.sh ./make.sh install 3、修改配置文件 fastdfs的样例配置文件放在/etc/fdfs目录下,以*.conf.sample结尾 tracker的样例配置文件为/etc/fdfs/tracker.conf.sample storager的样例配置文件为/etc/fdfs/storage.conf.sample client 的样例配置文件为/etc/fdfs/client.conf 这些配置文件都有合理的默认值,基本可以直接使用。 如果想尽快看到负载均衡行为,将tracker.conf的store_lookup=0 建议将这两个文件拷贝一份后缀名为.conf,将文件中的路径改成实际存在的,主要是日志文件路径和数据文件的路径 对于storage.conf和client.conf文件将tracker_server配置项指向tracker服务器 4、简单测试 tracker服务器和storage服务器在同一台物理机 #启动tracker /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf #启动storage /usr/bin/fdfs_storaged /etc/fdfs/storage.conf #执行命令行监控,能看到当前的服务器情况 /usr/bin/fdfs_monitor /etc/fdfs/client.conf 5、测试 /usr/bin/fdfs_test /etc/fdfs/client.conf upload local_filename […more]

shell 脚本 数字型值处理

Jan 10, 2017 | | Say something

如下的示例:

输出为: it works c=3 d=0 e=5 声明数值型变量使用let 或者declare -i 。 在比较数值型表达式(test或者'[ ]’)时,只能用”-eq, -ne, -lt, -le, -gt’, -ge”,不能用”==, !=, <, <=, >, >=”,不然按照字符串的字典顺序比较。 使用$((express))进行数值运算 虽然可以直接进行数值型的”+”加操作,由于数值型”==, !=, <, <=, >, >=”无法直接进行,最好不要直接进行”e=$a+$b”这样的数据操作

SHELL 历史命令扩展(History Expansion)

Nov 15, 2016 | | Say something

SHELL 历史命令扩展(History Expansion) 在命令行执行如下命令 sed -n “2!p” /etc/passwd -bash: !p”: event not found 提示这个错误是因为在历史列表中没有以p开头的记录,”!”是历史命令扩展的标记,为了让你的脚本能在交互式环境下如你所愿地执行,最好是禁用历史扩展,命令如下 set +H 或者set +o histexpand 启用历史扩展 set -H 或者set -o histexpand 查看当前shell的选项 set -o 或者set |grep SHELLOPTS

Bash 数组

Nov 14, 2016 | | Say something

centos7实践LVS+keepalived

Nov 1, 2016 | | Say something

网上有很多关于这个主题的配置,要么是陈旧的,要么是错误,胡乱转载,有时参考这些文章,反而给你的工作带来更大的麻烦。经过实践,博主javacoder.cn将其整理成文,转载请注明出处,希望对你有所帮助。 其实keepalived集成了LVS的功能,所以理论上只要安装keepalived就好了,可选安装ipvsadm,ipvsadm命令能查看你通过keepalived配置的LVS是否正确, 本文使用NAT模式,NAT简介如下 用过vmware的人都知道连接方式之一就是NAT模式,NAT用于内网和外网的互联,当内网请求外网的资源的时候,在路由处,将数据包的源地址改为路由器的地址,并记录真正的源地址;当请求的资源返回到路由处时,将目的地址改为保存的源地址,并将包转给源地址。 实践使用vmware虚拟机测试的,本示例使用nat模式,拓扑图如下: 可以看到Router1和Router2谁成为master时,谁占有内网VIP和外网VIP,real_server的网管指向内网VIP,这点至关重要。 实践步骤: 准备步骤 防火墙的配置不在本文的范围,请关闭selinux和firewall systemctl disable firewalld systemctl stop firewalld setenforce 0 vi /etc/selinux/config 改如下行SELINUX=disabled 安装keepalived,ipvsadm yum install keepalived yum install ipvsadm 配置keepalived 修改/etc/keepalived/keepalived.conf global_defs { @唯一标识,每台服务器不一样 router_id LVS_DEVEL } vrrp_sync_group VRRP1 { #组的作用是当组内的一个vrrp_instance故障时,将整个组的vrrp_instance都按照故障处理 group { VI_1 VI_2 } } #外网的VIP配置 vrrp_instance VI_1 { state MASTER interface eno16777736 virtual_router_id 51 […more]

使用rlwrap解决sqlplus不能回退删除

Apr 13, 2016 | | Say something

需要安装rlwrap,它依赖readline,所以这两个都需要安装,使用源码编译吧。基本都是./configure make make install 搞定 wget ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.42.tar.gz 然后在,~/.bash_profile中添加如下信息: alias sqlplus=’rlwrap sqlplus’ alias rman=’rlwrap rman’ 如果想要立即生效,执行 source ~/.bash_profile 在执行rlwrap的make命令时遇到如下异常: /usr/bin/ld: term.o: undefined reference to symbol ‘tgetstr’ /usr/bin/ld: note: ‘tgetstr’ is defined in DSO /lib64/libtinfo.so.5 so try adding it to the linker command line /lib64/libtinfo.so.5: could not read symbols: Invalid operation collect2: error: ld returned […more]

linux top 命令的使用

Aug 11, 2015 | | Say something

top分为交互模式和批量(batch)模式, 批量模式一般用于导出结果 常用的batch模式为 top -bc -n 1 > 1.txt 将结果写入1.txt 文件中 交互模式中,最重要的命令是h(help),帮助命令。 centos 7的改变列的位置和添加列在同一个界面中(按f进入),右键选中要移动的项,上下键移动,回车确认。 nDRT表示脏页数,vMj表示页错误,需要从磁盘读入。对监视写操作很重要

基于Centos 7搭建支持HTTP协议的svn服务器

May 21, 2015 | | Say something

前提条件: 请先关闭防火墙或者selinux,当然你也可以进行相应的配置,让某些端口通过 我比较暴力,采用关闭处理 systemctl disable firewalld systemctl stop firewalld disable是让其不下次开机启动,stop是结束它。 对于selinux 改/etc/selinux/config文件的”SELINUX=enforcing”为”SELINUX=disabled” 然后执行”setenforce 0″不用重启地关闭selinux 一、安装相应的软件 #svn服务器 yum install subversion #apache服务器,让我们的svn 服务器支持http协议访问,而不仅是svn://协议 yum install httpd #apache操作svn模块 yum install mod_dav_svn 二、相应的配置 1、创建仓库 默认安装的svn服务器的根仓库(root repository)为/var/svn,所以我们在这个目录创建我们的仓库 svnadmin create repo1 将创建/var/svn/repo1 目录,在repo1目录下有相应的配置文件 2、仓库配置 /var/svn/repo1/conf下的三个配置文件的作用为 svnserve.conf :存放svn服务器的认证授权策略:比如匿名可读,认证的用户可写,以及指定相应的用户信息存储位置(passwd)和认证规则文件的位置(authz) passwd:用户信息存储文件,以username=password键值对的方式存储 authz:认证规则 注意 键值对的等号(=)前后的空格 对于svnserve.conf,取消以下行的注释即可 anon-access = read auth-access = write password-db = passwd […more]

linux 上安装rar

Nov 19, 2014 | | Say something

1、去rarlab下载安装文件 http://www.rarlab.com/download.htm 2、将其解压缩到指定的目录 本例通过-C参数指定为“/usr/local/”目录,

本例通过符号链接将其添加到path路径,当然你也可以通过export PATH=$PATH:/usr/local/rar将其添加到PATH路径, 执行以下的命令需要root权限。

3、测试,将test.rar 解压缩到javacoder.cn目录

将需要密码的test.rar 解压缩到javacoder.cn目录,在提示符下输入密码

使用虚拟机实践iptables的nat功能配置

Aug 31, 2014 | | Say something

环境配置如下: 目标:希望在外机A上使用192.168.182.132地址访问虚拟机C的MySQL数据库,就如同MySQL数据库直接安装在虚拟机B上的一样。 1、先在虚拟机C上创建用户’root’@’192.168.110.%’。 Create user ’root’@’192.168.110.%’ identified with mysql_native_password; Change password for ’root’@’192.168.110.%’=PASSWORD(‘123456’); GRANT ALL PRIVILEGES ON *.* to ’root’@’192.168.110.%’ with options; Flush privileges; 2、测试数据库账号是否正确配置 登录虚拟B:执行mysql –h 192.168.110.4 –uroot –p 测试是否能远程访问虚拟机C上的MySQL数据库,如果yes,请继续。如果no,可以尝试以下的检查: 1)B能否ping通C。 2)C的iptalbes是否允许3306端口通过。 3)C的selinux是否开启,如果开启请将其关闭。 3、配置虚拟机B的iptables。 注意:如果你是远程登录虚拟机B,请确认ssh使用的22端口总是可用的,如果你仅仅是想实践一下NAT的配置,那么可以将各个chain的默认policy都设置为ACCEPT. 1)       检查iptable_nat模块是否加载了,lsmod |grep iptable_nat。如果没有,执行modprobe iptable_nat。 2)       启用IP地址的FORWARD功能。 echo 1 > /proc/sys/net/ipv4/ip_forward 3)       配置iptables。 可以手动编辑/etc/sysconfig/iptables文件或者使用iptables命令。本示例使用iptables命令,为了在配错后快速的修改,所以我讲这些命令写入脚本(myiptables.sh)文件: #!/bin/bash iptables -F iptables -A […more]