编辑rsyncd配置文件
vi /etc/rsyncd.conf
#指定管理备份目录的用户
uid = rsync
#指定管理备份目录的用户组
gid = rsync
#定义rsync备份服务的网络端口号
port = 873
#将rsync虚拟用户伪装成为一个超级管理员用户
fake super = yes
#和安全相关的配置
use chroot = no
#最大连接数 同时只能有200个客户端连接到备份服务器
max connections = 200
#超时时间(单位秒)
timeout = 300
#记录进程号码信息 1.让程序快速停止进程 2. 判断一个服务是否正在运行
pid file = /var/run/rsyncd.pid
#锁文件
lock file = /var/run/rsync.lock
#rsync服务的日志文件
log file = /var/log/rsyncd.log
#忽略传输中的简单错误
ignore errors
#指定备份目录是可读可写
read only = false
#使客户端可以查看服务端的模块信息
list = false
#允许传输备份数据的主机(白名单)
hosts allow = 172.16.1.0/24
#禁止传输备份数据的主机(黑名单)
hosts deny = 0.0.0.0/32
#指定认证用户
auth users = rsync_backup
#指定认证用户密码文件 用户名称:密码信息
secrets file = /etc/rsync.password
#模块信息
[backup]
comment = "backup dir by dx8037"
#模块中配置参数 指定备份目录
path = /backup
创建rsync用户,处理权限及认证信息
useradd rsync -M -s /sbin/nologin
mkdir /backup
chown rsync.rsync /backup/
echo "rsync_backup:dx123" >/etc/rsync.password
chmod 600 /etc/rsync.password
启动并设置开机自启动
systemctl start rsyncd
systemctl enable rsyncd
验证服务状态
systemctl status rsyncd
使用方式
1、普通用法
rsync -avz /etc/hosts rsync_backup@s1::backup
2、完全同步
rsync -avz --delete /etc/hosts rsync_backup@s1::backup
3、同步速度限到1M
rsync -avz --bwlimit=1 /etc/hosts rsync_backup@s1::backup
4、免交互
rsync -avz /etc/hosts rsync_backup@s1::backup --password-file=/etc/rsync.password
5、显示进度
rsync -avzP /etc/hosts rsync_backup@s1::backup
备份fstab passwd hosts示例脚本
[root@s2 backup]# vi /server/scripts/backup.sh
#!/bin/bash
HOST=$(hostname)
ADDR=$(ifconfig eth1|awk 'NR==2 {print $2}')
DATE=$(date +%F)
DEST=${HOST}_${ADDR}_${DATE}
SRC=/backup/$DEST
[ -d $SRC ] || mkdir -p $SRC/$DEST
cd / && \
[ -f $SRC/sys.tar.gz ] || tar czf $SRC/sys.tar.gz etc/fstab etc/hosts etc/passwd && \
[ -f $SRC/scripts.tar.gz ] || tar czf $SRC/scripts.tar.gz server/scripts && \
[ -f $SRC/flag_$DATE ] || md5sum $SRC/*.tar.gz > $SRC/flag_$DATE
export RSYNC_PASSWORD=dx123
rsync -avz $SRC rsync_backup@s1::backup
find /backup/ -type d -mtime +7|xargs rm -rf
mail配置方法
检查备份并使用mail发送结果示例脚本
[root@s1 backup]# vi /server/scripts/check.sh
#!/bin/bash
SRC=/backup
DATE=$(date +%F)
md5sum -c $SRC/*_$DATE/flag_$DATE > $SRC/check_$DATE
mail -s "今日备份情况" dx8037@qq.com < $SRC/check_$DATE