博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 文件同步 rsync+crontab
阅读量:7187 次
发布时间:2019-06-29

本文共 4151 字,大约阅读时间需要 13 分钟。

Linux文件同步:主要使用rsynccrontab结合的方式同步

主机IP172.22.3.181

备机IP172.22.3.182

 

配置操作步骤: 

一.安装rsync

二.配置rsyncd.conf 与密码文件(两个步骤12

三.备份脚本

.安装rsync

备机 

1.服务器是否安装rsync 

Shell代码  

rpm -qa|grep –i rsync  


若有显示,说明已安装,则跳过
http://dl.iteye.com/upload/attachment/0073/6938/f6f4a9c0-29f9-381f-8b6e-0fd88ea8b8df.png 
2.
安装rsync软件 
有两种安装方式: 
a.
利用 yum 安装 

Shell代码  

1. yum install rsync xinetd   



b.
源码安装 
下载源码自己编译 
 

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 #rsyncpid文件  

  

[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!  


http://dl.iteye.com/upload/attachment/0073/6940/295bb824-21df-3b87-9541-6c421cd5d20c.png
配置密码文件rsync.pass 

Shell代码  

1. vi /etc/rsync.pass  

2. root:123456  


格式:用户名:密码(用户名必须系统真是存在的用户,密码最好不要个系统密码一致) 
http://dl.iteye.com/upload/attachment/0073/6942/f549c49b-5bae-36de-b80a-af50a526ea7d.png 
修改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 (
检查服务是否启动
http://dl.iteye.com/upload/attachment/0073/6944/450eefbb-19d1-3067-a821-816fbe704eae.png 
b.xinetd
守护 
修改/etc/xinetd.d/rsync文件,把 
disable = yes 
改成 
disable = no 
然后重启xinetd即可, 
/etc/init.d/xinetd restart 
http://dl.iteye.com/upload/attachment/0073/6951/71da776c-8b06-3f0a-bbcd-45765605a52e.png 
服务 
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
执行成功 
http://dl.iteye.com/upload/attachment/0073/6946/f0b810db-c368-3d36-82a5-28575eecdf64.png

 

 

 

 

(2)配置密码文件来达到不输入密码的目的

在配置服务器之前要先生成密钥,ssh-keygen -t rsa,生成密钥如下:

[root@masternagios .ssh]# ls

id_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]# ls

id_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,内容如下图示:

http://hiphotos.baidu.com/exp/pic/item/d872d695d143ad4b038f881c83025aafa50f060e.jpg

解析如下:

    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 873

Trying 172.22.3.181...

Connected to 172.22.3.181.

Escape character is '^]'.

@RSYNCD: 30.0

^]

telnet> q

Connection 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 

可以看到:

http://hiphotos.baidu.com/exp/pic/item/346bd85c10385343bd094ffd9213b07ec88088ed.jpg

命令执行成功;说明服务端与客户端都没有问题;

.备份脚本 

备机crontab -e

*/1 * * * * rsync -zvrtopg --delete -progress -e 'ssh -p22' root@172.22.3.181:/rstest/ /rstest/

      本文转自flayber  51CTO博客,原文链接:http://blog.51cto.com/406647516/1727890
,如需转载请自行联系原作者
你可能感兴趣的文章
pg_class的reltablespace字段含义
查看>>
unity简介
查看>>
nginx中try_files参数易被忽略的知识点
查看>>
添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加
查看>>
ES6学习经验
查看>>
20.1-20.4 shell:脚本,脚本结构与执行,date用法,shell脚本的变量
查看>>
上篇|说说无锁(Lock-Free)编程那些事
查看>>
网络的参考模型
查看>>
Istio技术与实践01: 源码解析之Pilot多云平台服务发现机制
查看>>
支付系统设计白皮书:会员(客户)系统设计思路
查看>>
华天软件PLM/CMMP助力西沃客车高效研发生产
查看>>
为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 正式上线!
查看>>
区块链教程Fabric1.0源代码分析consenter#filter
查看>>
组建网络时如何选取交换机
查看>>
不会发布npm包?进来看看?
查看>>
yum和源码安装redis
查看>>
女生到底适不适合做程序员?!
查看>>
Java并发包分析——BlockingQueue
查看>>
我见过的最好的websocket 介绍
查看>>
PHP 简例 RestFul
查看>>