rsync的配置小结
NAME rsync — a fast, versatile, remote (and local) file-copying tool SYNOPSIS Local: rsync [OPTION...] SRC... [DEST] Access via remote shell: Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST:DEST Access via rsync daemon: Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST::DEST rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST 一.Local方式例子: rsync /etc/hosts /tmp 相当于cp rsync -avz /etc/hosts /tmp 保持属性拷贝 rsync -r --delete /null/ /data/ 需要创建一个null目录 二.Access via remot shell:例子: Push:rsync -avz -e ‘ssh -p 22’ /etc/hosts 192.168.1.103:~ Pull:rsync -avz -e ‘ssh -p 22’ 192.168.1.103:~/hosts /tmp 三.Access via rsync daemon方式例子: 说明:通过rsync工具对103、104两台服务器上面的数据进行同步 要求:3台服务器,1台ip为192.168.1.101的server,2台ip为1.103和1.104的client 具体实施方法: 1.在三台服务器上同时安装rsync,安装完毕之后查看一下 yum install rsync -y [root@shnne ~]# rpm -qa rsync rsync-3.0.6-12.el6.x86_64 2.在服务端配置rsyncd.conf vim /etc/rsyncd.conf 编辑 #created by shnne 12:54 2017-9-14 ##rsyncd.conf start## uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 192.168.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password ##################################### [shnne] comment = back server by shnne 12:54 2017-9-14 path = /shnne 3.添加rsync虚拟用户,并授权shnne目录 mkdir -p /shnne useradd -s /sbin/nologin -M rsync chown -R rsync.rsync /shnne 4.创建rsync虚拟用户的账号密码重定向到/etc/rsync.password文件,并修改权限 echo "rsync_backup:shnne" >/etc/rsync.password cat /etc/rsync.password chmod 600 /etc/rsync.password ll /etc/rsync.password 5.启动rsync服务 rsync --daemon echo "/usr/bin/rsync --daemon" >> /etc/rc.local 6.在103、104客户端创建文件和密码 echo "shnne">> /etc/rsync.password chmod 600 /etc/rsync.password ls -l /etc/rsync.password 7.将数据从服务器端拉到两台客户端服务器 rsync -avz rsync_backup@192.168.1.101::shnne /data --password-file=/etc/rsync.password rsync -avz rsync://rsync_backup@192.168.1.101/shnne /data/ --password-file=/etc/rsync.password 将本地文件推送到服务器 rsync -avz /data/ rsync_backup@192.168.1.101::shnne --password-file=/etc/rsync.password rsync -avz /data/ rsync://rsync_backup@192.168.1.101/shnne --password-file=/etc/rsync.password 8.客户端排除文件 1.排除单个文件 rsync -avz --exclude=file /data/ rsync_bakcup@192.168.1.101::shnne --password-file=/etc/rsync.password 2.排除多个个文件 rsync -avz --exclude={file1,file5} /data/ rsync_bakcup@192.168.1.101::shnne --password-file=/etc/rsync.password rsync -avz --exclude=file1 --exclude=file2 /data/ rsync_bakcup@192.168.1.101::shnne --password-file=/etc/rsync.password rsync -avz --exclude={a..z} /data/ rsync_bakcup@192.168.1.101::shnne --password-file=/etc/rsync.password seq 10 > paichu.log rsync -avz --exclude-from=paichu.log /data/ rsync_bakcup@192.168.1.101::shnne --password-file=/etc/rsync.password 9.服务端的排除 只需要在/etc/rsyncd.conf添加如下内容 exclude=file1 file2 shnne/paichu.log 10.无差异备份 就是客户端和服务端数据都一样 --delete 参数 从远端拉取数据:远端有什么客户端就有什么,远端没有本地有也会删除,造成的结果是客户端数据丢失 rsync -avz --delete rsync_backup@192.168.1.101::shnne /data/ --password-file=/etc/rsync.password 从远端推送数据:客户端有什么远端就有什么,本地没有远端有也要删除,会造成服务器端数据丢失 rsync -avz --delete /data/ rsync_backup@192.168.1.101::shnne --password-file=/etc/rsync.password 11.rsync结合定时任务crond实时同步 mkdir /server/scripts -p cd /server/scripts/ vim backup.sh #编辑一下内容 #!/bin/sh path=/shnne dir="`ifconfig eth0|awk -F '[ :]+' 'NR==2 {print $4}'`_$(date +%F)" mkdir $path/$dir -p &&\ /bin/cp /var/spool/cron/root $path/$dir/cron_root_$(date +%F) &&\ /bin/cp /etc/rc.local $path/$dir/rc.local_$(date +%F) &&\ rsync -az $path/ rsync_backup@192.168.1.101::shnne --password-file=/etc/rsync.password 然后:crontab -e #创建定时任务 #backup shnne everyday at 01:00 00 01 * * * /bin/sh /server/scripts/backup.sh >/dev/null 2>&1
<< 上一篇
下一篇 >>
网友留言(0 条)