您的位置:首页 > 运维架构 > Linux

linux 文件同步 rsync+crontab

2015-12-24 15:15 639 查看
Linux文件同步:主要使用rsynccrontab结合的方式同步
主机IP172.22.3.181
备机IP172.22.3.182

配置操作步骤:
一.安装rsync
二.配置rsyncd.conf 与密码文件(两个步骤1和2)
三.备份脚本

一.安装rsync
备机
1.服务器是否安装rsync
Shell代码

rpm -qa|grep –i rsync
若有显示,说明已安装,则跳过2



2.安装rsync软件
有两种安装方式:
a.利用 yum 安装
Shell代码

1. yum install rsync xinetd

b.源码安装
下载源码自己编译
http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
Shell代码

1. cd rsync-3.0.9 2. ./configure 3. make && make install
二.配置rsyncd.conf 与密码文件(两个步骤(1)和(2))
(1)安装完rsync 服务,这个文件默认是没有的需要自己手动创建一个。
Shell代码

vi /etc/rsyncd.conf #主要全局参数 uid = root gid = root use chroot = yes #为了安全考虑,让rsync运行于chroot环境 log file = /var/log/rsyncd.log #rsync的日志文件 pid file = /var/run/rsyncd.pid #rsync的pid文件 [picData] comment = backup for picServer path = /opt/read only = no auth users = root secrets file = /etc/rsync.pass hosts allow = 172.22.3.181,127.0.0.1 :wq!



配置密码文件rsync.pass
Shell代码

1. vi /etc/rsync.pass 2. root:123456
格式:用户名:密码(用户名必须系统真是存在的用户,密码最好不要个系统密码一致)



修改rsync.pass 和rsyncd.conf权限
这个两个文件必须是600 不然服务不读
Shell代码

1. chmod 600 /etc/rsync.pass 2. chmod 600 /etc/rsyncd.conf
开启防火墙tcp873端口
Shell代码

1. vi /etc/sysconfig/iptables 2. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT 3. :wq
启动rsync服务
启动服务有两种方式:
a.使用rsync的–daemon选项启动,rsync服务默认使用873号端口
启动:/usr/bin/rsync--daemon --config=/etc/rsyncd.conf
关闭:pkillrsync
lsof –i:873 (检查服务是否启动)



b.xinetd守护
修改/etc/xinetd.d/rsync文件,把
disable = yes
改成
disable = no
然后重启xinetd即可,
/etc/init.d/xinetd restart



服务
service xinetd start #启动
service xinetd stop #停止
service xinetd restart #重新启动
如果你的xinetd开机并没自动启动的话,需要执行
chkconfig xinetd on
到此rsync服务已经配置完成
主机:
1.配置密码文件rsync.pass
Shell代码

1. vi /etc/rsync.pass 2. 123456 3. :wq
这个里面只配置密码
修改文件的权限600
2.执行命令
/usr/bin/rsync -vzrtopg--password-file=/etc/rsync.pass /etc/rsync.pass root@172.22.3.182::picData
执行成功



(2)配置密码文件来达到不输入密码的目的在配置服务器之前要先生成密钥,ssh-keygen -t rsa,生成密钥如下:[root@masternagios .ssh]# lsid_rsa id_rsa.pub[root@masternagios .ssh]# scp id_rsa.pub root@172.22.3.182:/root/.ssh/authorized_keys在客户端也要如下操作:[root@masternagios .ssh]# ssh-keygen -t rsa[root@masternagios .ssh]# lsid_rsa id_rsa.pub authorized_keys(3.181的公钥)[root@masternagios.ssh]#scp id_rsa.pub root@172.22.3.181:/root/.ssh/authorized_keys这样两台机可以无密码SSH登陆,以便后面我们同步方便;当然,不要上述的操作也能实现;那么如下操作:服务端:vi /etc/sery.pass 权限:600(chmod 600 /etc/sery.pass)root:123456客服端:vi/etc/sery_client.pass 权限:600(chmod 600 /etc/sery_client.pass)123456生成的这两件文件后面有用处的;主机:然后新建配置文件vi /etc/rsyncd.conf,内容如下图示:

解析如下: uid = root #root用户访问(我这里用ROOT用户,也可以用其他新建的用户) gid = root #root组用户访问 use chroot = yes #能使用chroot max connections = 10 #最大连接数 list = yes #允许列出文件清单 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log hosts allow = 172.22.3.182,172.22.2.200,127.0.0.1 #只允许这个主机访问 [data] #发布项(注意这个命名) path = /webapps/IDManage #发布的路径 ignore errors read only = no #只读 auth users = root #认证用户为root secrets file = /etc/sery.pass #密码文件然后我们来启动:[root@masternagios ~]# rsync --daemon--config=/etc/rsyncd.conf [root@masternagios ~]# ps -ef |grep rsync root 21359 1 0 Aug24 ? 00:00:00 rsync --daemon -- config=/etc/rsyncd.conf root 24018 23885 0 10:38 pts/0 00:00:00 grep rsync [root@masternagios ~]#lsof -i:873 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsync 21359 root 4u IPv4 1558266 0t0 TCP *:rsync (LISTEN) rsync 21359 root 5u IPv61558267 0t0 TCP *:rsync (LISTEN)然后在客户端测试:[root@dbserver ~]# telnet 172.22.3.181 873Trying 172.22.3.181...Connected to 172.22.3.181.Escape character is '^]'.@RSYNCD: 30.0^]telnet> qConnection closed.说明网络端口开放,没有问题;通常在这配置时会发现一些问题,比如报错(111)--说明服务器端口未开启,就检查一下rsync服务有没有开启;报错(1503)(1536)--说明无 [data] #发布项(注意这个命名),这里命令一定要对应上同步::[data];我们再来把服务端rsync加自动启动;echo"/usr/bin/rsync --daemon --config=/etc/rsyncd.conf">>/etc/rc.local配置客户端;客户端只要安装rsync这个命令便可以实现,所以,我们来测试同步实现;[root@dbserver ~]#rsync -aSvH /webapps/IDManage/ root@172.22.3.181::data--password-file=/etc/sery_client.pass或者是rsync -avH --progress /cardpic/ root@172.31.8.9::picData --password-file=/etc/rsync.pass 可以看到:

命令执行成功;说明服务端与客户端都没有问题;三.备份脚本
备机crontab -e
*/1 * * * * rsync -zvrtopg --delete -progress -e 'ssh -p22' root@172.22.3.181:/rstest/ /rstest/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息