这里记录一个在工作中需要使用的rsync进行存储文件备份的方法。
需求:
在服务器端进行录音文件存储,不但文件要存储到服务器上,还需定时备份到存储上。
一. 文件备份源端配置
1、在 /etc/路径下创建rsyncd.conf 文件,文件内容如下:
uid = root
gid = root
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[web]
path = /var/ftp/file #需要备份的路径,按需求更改
ignore errors
read only = true
list = false
hosts allow = 192.168.0.0 # 允许的IP地址,* 为全部允许
auth users = root # 认证用户名
secrets file = /etc/rsync.passwd # 认证用户的密码文件
2、在 /etc/路径下创建密码文件rsync.passwd文件,文件内容如下:
root:skyfans # 认证用户名密码,按需求更改
二. 文件备份目标端配置
1、在 /etc/路径下创建密码文件rsync.passwd文件,文件内容如下:
root:skyfans # 认证用户名密码,必须与源端配置相同
三. 配置文件赋权
rsyncd.conf和rsync.passwd文件需要赋予600权限,权限过大可能会报错,
赋权命令为:
chmod 600 rsyncd.conf rsync.passwd
四. 查看是否存在rsync命令
rsync
rpm -qa|grep rsync
如果该服务器不存在命令则需安装。
五. 启动rsync服务
启动命令为:
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
仅备份文件源端需要启动服务, 通过ps -ef|grep rsync 查看进程
ps -ef|grep rsync
六. rsync参数及用法举例
rsync -a --password-file=/etc/rsync.passwd --delete --bwlimit=10240 root@源端IP::web /home/file
rsync -a --password-file=/etc/rsync.passwd --delete --bwlimit=10240 root@源端IP::web /home/file
参数说明:
/home/file为目标端文件备份路径;
web =rsyncd.conf 文件中[web];
-a: -archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD;
–password-file=FILE 从FILE中得到密码;
–bwlimit=KBPS 限制I/O带宽,KBytes per second;
–delete 删除那些DST中SRC没有的文件。
以下为脚本举例,仅作为参考:
#!/bin/bash
DATE=`date`
starttime=`date +%s`
rsync -a --password-file=/etc/rsync.passwd --delete root@192.168.1.1::web1 /home/file
endtime=`date +%s`
baktime=`expr $endtime - $starttime`
echo "rsync OK at $DATE">>/tmp/rsync.log
echo "rsync timeused $baktime second" >>/tmp/rsync.log
if [ $? -eq 0 ]
then
echo "rsync failed at $DATE" >/tmp/rsync_failed.log
exit 1
fi
sleep 86400
done
——————————————————————————
欢迎喜欢实施运维及数据的小伙伴加入群进行谈论!
运维技术群:263859509