配置rsync实现同步备份
【阿里云】爆款云产品,新客特惠全年最低价,云服务器低至0.4折起,11.1开售
【腾讯云】爆款1核2G云服务器首年48元,还有iPad Pro、Bose耳机、京东卡等你来抽!
【华为云】上云特惠巨划算,免单抽奖享豪礼
【七牛云】爆款云产品全年最低价,热门产品 0 元秒杀,参与抽奖赢新款 iPhone
1.系统环境
服务端:CentOS7_64(192.168.178.46)
客户端:CentOS7_64(192.168.0.146)
2.目的
利用crontab和rsync,自动将服务端下的/home/backup备份到客户端的/home/backup/192_168_178_46目录下
3.配置服务端(192.168.178.46)
安装rsync
yum -y install rsync
- 在/etc/目录下创建rsyncd/目录,在该目录下创建相关配置文件并修改权限
/etc/rsyncd/
├── rsyncd.conf(rsync服务器配置文件)
├── rsyncd.motd(自定义用户登录后显示的服务器信息)
└── rsyncd.secrets(用户密码文件,客户端使用其中的账号密码访问,需要 600 权限)
mkdir /etc/rsyncd
touch /etc/rsyncd/rsyncd.conf
touch /etc/rsyncd/rsyncd.secrets
touch /etc/rsyncd/rsyncd.motd
chmod 600 /etc/rsyncd/rsyncd.secrets
编辑rsyncd.conf配置文件
uid = root gid = root use chroot = yes read only = yes write only = no max connections = 4 port = 873 pid file = /var/run/rsyncd.pid secrets file = /etc/rsyncd/rsyncd.secrets motd file = /etc/rsyncd/rsyncd.motd log file = /var/log/rsync.log #rsync 服务器的日志; transfer logging = yes #记录传输文件的日志 log format = %t %a %m %f %b #日志格式 syslog facility = local3 #日志级别 timeout = 900 [backup] path = /home/backup auth users = rsync secrets file = /etc/rsyncd/rsyncd.secrets
编辑rsyncd.secrets文件,用户名和密码以冒号分隔,多个用户名和密码需要换行
rsync:123456
编辑rsyncd.motd 登录公告,内容随意
++++++++++++++++++++++++++++++++++++ + rsyncd backup start + ++++++++++++++++++++++++++++++++++++
防火墙开放873端口
firewall-cmd --permanent --zone=public --add-port=873/tcp firewall-cmd --permanent --zone=public --add-port=873/udp firewall-cmd --reload
启动rsync服务端并添加到开机自启
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
将此条命令添加到/etc/rc.local
4.配置客户端(192.168.0.146)
安装rsync
yum install -y rsync
添加密码文件并修改权限
mkdir /etc/rsyncd/ touch /etc/rsyncd/rsyncd.pass chmod 600 /etc/rsyncd/rsyncd.pass
在rsyncd.pass文件中写入在服务端的rsyncd.secrets文件中配置的密码
123456
编辑脚本文件
vim /root/bash/backup_files_in_46.sh
内容为
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# rsync 使用进行同步
# rsync的-a选项是archive的意思,加了之后有以下作用:
# • 递归模式
# • 同步软链接
# • 同步权限
# • 同步时间戳
# • 同步属主和属组
# 远程同步时,Rsync可以指定使用某一shell进行安全传输、使用rsync –e ssh选择ssh进行安全连接。
# 删除在源位置不存在而在目标位置存在的文件,使用-delete选项
# topg # 保持原文件属性如属主、时间的参数。
# --progress # 显示详细的同步进度情况。
# IP地址后为两个冒号,冒号后紧跟服务端rsyncd.conf配置的模块名,而不是以/开头的路径
/usr/bin/rsync -avzrtopg --progress --delete --password-file=/etc/rsyncd/rsyncd.pass rsync@192.168.178.46::backup /home/backup/192_168_178_46
执行脚本文件
./backup_files_in_46.sh
执行后,会弹出在服务端编写的rsyncd.motd公告内容,并开始备份数据,第一次备份需要较长时间,之后执行实现增量备份
添加crontab任务,自动执行备份
vim /etc/crontab
内容为
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
30 0 * * * root bash /root/bash/backup_files_in_46.sh >> /root/log/rsync/rsync_$(date '+%Y_%m_%d').log
更新crontab任务
crontab /etc/crontab
5.常见报错
rsync: failed to connect to 192.168.178.46: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
解决方法:在服务端开启873的tcp/udp端口
ERROR: The remote path must start with a module name not a /
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
解决方法:详情见客户端脚本文件最后一条注释内容
ERROR: Unknown module 'backup'
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
解决方法:检查服务端配置文件中的模块名是否有错误,修改完成后,重启服务端rsync进程
版权属于:LeeYD · Blog
本文标题:配置rsync实现同步备份
本文链接:https://www.leeyiding.com/archives/31/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议
若转载本文,请标明出处并告知本人
【阿里云】爆款云产品,新客特惠全年最低价,云服务器低至0.4折起,11.1开售
【腾讯云】爆款1核2G云服务器首年48元,还有iPad Pro、Bose耳机、京东卡等你来抽!
【华为云】上云特惠巨划算,免单抽奖享豪礼
【七牛云】爆款云产品全年最低价,热门产品 0 元秒杀,参与抽奖赢新款 iPhone