Linux:rsync

一款快速增量备份工具【Remote Sync,远程同步】
远程灾难备份功能
*支持本地复制,或者与其他SSH、rsync主机同步

配置rsync源服务器【rsync同步源】
   *指备份操作的远程服务器,也称为备份源

web服务器本地有服务器,IDC机房有备份主机(远程同步),具体谁是同步源或发起端用户可以自定义。

*下行:发起端有读取权限
*上行:要有写入权限
*上行多配置为ssh模式 


环境:

两台centos:
确保两台都安装了rsync

Linux:rsync_第1张图片

 主服务器ip 192.168.254.11

客户端ip       192.168.254.20

这里我只备份一个http的目录同步到客户端上,实际上你可以同步任意的一个目录,/目录也是一样

同步两个的 主机都要有httpd这个服务,这样做是为了去同步/var/www/html里的文件

Linux:rsync_第2张图片

注意:

实际上可以同步任意目录,这里只是为了实验

 我们在主服务器的/var/www/html/里写入文件

touch /var/www/html/{1..4}.txt

Linux:rsync_第3张图片

 除了这四个文件里边还有个other目录


主配置

到服务器上

cat /etc/passwd |grep "^nobody"

如果没有nobody用户就去创建一个

vim /etc/rsyncd.conf 

写入

 uid = nobody
 gid = nobody
# 任何人
 use chroot = yes
address = 192.168.254.11
#服务器
port 873
# 端口号
log file = /var/log/rsyncd.log
# 日志
pid file = /var/run/rsyncd.pid
# 储存pid,等会用于关服务
hosts allow = 192.168.254.0/24
# 允许那个网段去同步
[http]
# 名字
    path = /var/www/html
# 同步的根目录
    comment = 123123
# 解释可以随便写
    read only = yes
    dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
# 同步时不再压缩的文件 
    auth users = tarro
# 允许的用户
    secrets file = /etc/user_list
    # 用户路径

Linux:rsync_第4张图片

 vi /etc/user_list

前面用户:后面密码 

chmod 600 /etc/user_list 

rsync --daemon 

# 开启服务

kill $(cat /var/run/rsyncd.pid) 

# 关闭服务

现在到客户机上 

什么都没有

rsync -avzH [email protected]::http /var/www/html

# 然后输入密码

Linux:rsync_第5张图片

现在就同步过来了

 

 

 到主服务器上随便修改几个文件

Linux:rsync_第6张图片

再到客户机上 

rsync -avzH --delete rsync://[email protected]/http /var/www/html

Linux:rsync_第7张图片

 Linux:rsync_第8张图片

把旧的删除并且同步过来

老是输入密码有点麻烦,这也对我们到点进行自动备份,使用计划任务有了阻碍,我们可以把密码写进一个文件里,他同步使用去找文件里的密码,我们就 不用去输入了

我们再去服务器去修改一下文件

再回到客户机

vim /etc/server.pass 

 把密码写进去

 rsync -avzH --delete --password-file=/etc/server.pass  rsync://[email protected]/http /var/www/html

Linux:rsync_第9张图片

这次我们不用输入密码,直接就同步过来了 

 Linux:centos:周期性计划任务管理《crontab》_linux周期性计划任务时间格式_鲍海超-GNUBHCkalitarro的博客-CSDN博客

使用crontab测试周期性同步

再去服务器上修改文件

 crontab -e

写入

30 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass rsync://[email protected]/http /var/www/html/

# 每天10.30执行命令

 date -s 22:29:30

修改时间

然后就可以到点执行了 

你可能感兴趣的:(linux,github,运维)