一、rsync简介 用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会开一个873端口,等待客户端去连接,连接时,rsync server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份; 二、rsync常用参数 -v,--verbose 详细模式输出; -a,--archive 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD; -r, --recursive 对子目录以递归模式处理; -l, --links 保留软链结; -p, --perms 保持文件权限; -t, --times 保持文件时间信息; -g, --group 保持文件属组信息; -o, --owner 保持文件属主信息; -D, --devices 保持设备文件信息; -H, --hard-links 保留硬链结; -S, --sparse 对稀疏文件进行特殊处理以节省DST的 空间; --delete 删除那些DST中SRC没有的文件; -z, --compress 对备份的文件在传输时进行压缩处理; 三、rsync的六种不同的工作模式; 1)拷贝本地文件; 当SRC和DES路径信息中不包含冒号":"分隔符时,就启用这种工作模式: [root@cmmailapp1 /]# rsync -avSH /home/coremail/ /cmbak/ 2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,当DST路径地址包括冒号":"分隔符时启动该模式; [root@cmmailapp1 /]# rsync -avSH /home/coremail/ 192.168.11.12:/home/coremail/ 3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器,当SRC地址路径包括冒号":"分隔符时启动该模式; [root@cmmailapp2 /]# rsync -avSH 192.168.11.11:/home/coremail/ /home/coremail/ 4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。 如:rsync -av root@172.16.78.192::www /databack 5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。 如:rsync -av /databack root@172.16.78.192::www 6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。 如:rsync -v rsync://192.168.11.11/data 四、rsync服务端的配置; 环境:192.168.11.11为生产机;192.168.11.12为备份机; 那么需要192.168.11.11需要作为rsync的client; 192.168.11.12作为rsync的service端; 1、192.168.11.12_service端的配置; 1)[root@cmmailapp2 data]# touch /etc/rsyncd.conf //此文件为rsync的主配置问题,默认不存在需要手动创建; 2)定义同步的配置; [root@cmmailapp2 data]# cat /etc/rsyncd.conf [data] path = /data/ auth users = coremail uid = root gid = root secrets file = /etc/rsyncd.secrets read only = no [mysql] Path = /home/coremail/var/mysql auth users = coremail uid = root gid = root secrets file = /etc/rsyncd.secrets read only = no [cmxt] Path = /home/coremail/ auth users = coremail uid = root gid = root secrets file = /etc/rsyncd.secrets read only = no 3)定义密码文件/etc/rsyncd.secrets [root@cmmailapp2 data]# cat /etc/rsyncd.secrets coremail:coremail 4)启动rsync启动服务 [root@cmmailapp2 data]# cat /etc/xinetd.d/rsync # default: off # description: The rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync { disable = yes //需要修改为no; socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } [root@cmmailapp2 data]# chkconfig --level 2345 rsync on [root@cmmailapp2 data]# chkconfig rsync on [root@cmmailapp2 data]# chkconfig --level 2345 xinetd on [root@cmmailapp2 data]# service xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] 2、192.168.11.11_client端的配置; [root@cmmailapp1 /]# cat /etc/rsyncd.secrets coremail [root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::data [root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::mysql [root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::cmxt 五、定义定时自行rsync同步,指定同步的日志所在的路径/var/log/rsync/下; [root@cmmailapp1 log]# cat /root/rsync.sh DATE=`date +%Y%m%d%H%M` rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::data>/var/log/rsync.date.$DATE rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::mysql>/var/log/rsync.mysql.$DATE rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::cmxt>/var/log/rsync.cmxt.$DATE chmod u+x /root/rsync.sh [root@cmmailapp1 log]# crontab -l 0 3 * * * /root/rsync.sh 执行时候的日子记录文件: [root@cmmailapp1 log]# ls |grep 'rsync' rsync.cmxt.201110180915 rsync.date.201110180915 rsync.mysql.201110180915
安装步骤: 1, tar zxvf rsync-2.6.8.tar.gz 2, cd rsync-2.6.8 3, ./configure –prefix= path 4, make ; make install 更改服务器端的配置文件 1,vi /etc/rsyncd.conf uid = root 指定运行该服务的权限 gid = root log file = /var/log/rsyncd.log 指定日志文件 [mag_sync] 定义同步项目名 可以定义多个同步项目 path = /usr/local/apps/www/magazine/file 指定源路径 read only = no 是否只读 auth users = mag_sync 该同步项目的认证用户名 secrets file = /etc/rsync.pas 该同步项目的密码文件 更改密码文件 vi /etc/rsync.pas 文件格式为 用户名:密码 mag_sync:magazine_rsync@zcom.com 更改密码文件的权限 chmod +600 /etc/rsync.pas 启动rsyncd服务 /usr/local/rsync-42.0/bin/rsync --daemon rsync默认服务端口为873 加入rc.local 编辑/etc/rc.d/rc.local,在最后添加: /usr/local/bin/rsync --daemon 客户端: 编辑密码文件 vi /etc/rsync.pas magazine_rsync@zcom.com 注意该文件只有密码部份 更改文件权限 chmod +600 / etc/rsync.pas rsync -rvlHpogDtS --progress --delete --password-file=/etc/rsync.pas mag_sync@192.168.0.43::mag_sync /usr/local/apps/www/magazine/file 将此脚本加入计划任务
转载于:https://blog.51cto.com/yangyingen/1914221