背景:某服务器里的数据比较重要,需每晚定时向rsync端传送打包好的数据!
Rsync服务端环境部署
systemctl start rsyncd
systemctl enable rsyncd
配置rsyncd.conf配置文件
#port=873 #监听端口默认为873,也可以是别的端口
# 用户 uid = rsync
# 组 gid = rsync
# 程序安全设置 use chroot = no
# 客户端连接数 max connections = 200
# 超时时间 timeout = 300
# 进程号文件位置 pid file = /var/run/rsyncd.pid
# 进程锁 lock file = /var/run/rsync.lock
# 日志文件位置 log file = /var/log/rsyncd.log
###################################
[backup] # 为模块名,自定义
# 使用目录 path = /backup/
# 有错误时忽略 ignore errors
# 可读可写(true或false) read only = false
# 阻止远程列表(不让通过远程方式看服务端有啥) list = false
# 允许IP hosts allow = 172.16.1.0/24
# 禁止IP hosts deny = 0.0.0.0/32
# 虚拟用户 auth users = rsync_backup
# 存放用户和密码的文件 secrets file = /etc/rsync.password
创建rsync账户及共享目录并修改目录属主为rsync
useradd -M -s /sbin/nologin rsync
mkdir /backup
chown -R rsync:rsync /backup
创建rsync虚拟账户名和密码,并赋予密码文件600权限
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
启动服务:rsync --daemon
rsync --daemon
客户端这边的配置
只需要创建密码文件(只包含密码即可),并赋予密码文件600权限
echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
创建备份目录,作用是将需要备份的目录打包后存放在这里,然后往rsync那边推
mkdir /backup
测试一波看看(有些敏感的数据我就打码了)
写一个打包传送脚本,扔到定时任务里边去就ok了
测试一波,
大功告成,本地backup目录下生成打包好的数据,rsync那边也成功推过去了
接下来挂定时任务了
crontab -e
可以从/var/log/cron 文件查看定时任务执行情况
文章写的比较粗糙,有很多细节方面的东西没有写到,后面会写到rsync + inotify 组合进行数据备份