Rsync 文件同步(二):shell 脚本定时备份数据
2023-09-14 09:15:28 时间
备份源设置
哪个地方需要备份就在哪个服务器上跑rsync的daemon服务
- 192.168.204.52
- 需要备份的数据目录:/home/share
- centos 7.9
- rsync 版本:3.1.2
daemon 配置文件
motd file = /etc/rsyncd.motd
transfer logging = yes
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
port = 873
address = 0.0.0.0
uid = 0
gid = 0
use chroot = yes
max connections = 100
timeout = 900
[backups]
comment = This is a backup test
#需要备份的目录
path = /home/share
ignore errors
#备份时候使用的账号
auth users = backups_user
secrets file = /etc/rsyncd.secrets
list = true
密码文件
#写入账号密码
echo "backups_user:Test@123456" > /etc/rsyncd.secrets
#权限要给
chmod 600 /etc/rsyncd.secrets
启动服务
systemctl restart rsyncd
备份客户端配置
需要将文件备份到这个服务器的某个位置
- 192.168.204.57
- 备份的位置:/home/backupsdir
- centos 7.9
- rsync 版本:3.1.2
脚本实现
- 使用脚本创建临时密码文件,不将密码文件长期放在服务器上
- 定期对源数据进行备份,通过
crontab
定时任务
具体实现
#!/bin/bash
#Author:whale
#Version:1.0 demo
#Date:2023-02-14
#Description:Timing synchronization
#/opt/data_rsync.sh
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
BACKUP_PATH='/home/backupsdir'
#判断是否还存在同步任务
if [ $(ps aux|grep '/home/backupsdir'|grep -v 'grep'|wc -l) -gt 0 ];then
echo 'rsync process is running' >> /tmp/rsync.log
exit 1
elif [ $(ps aux|grep '/home/backupsdir'|grep -v 'grep'|wc -l) -eq 0 ];then
#写入密码文件
echo 'Test@123456' > /etc/rsync_client.pass
chmod 600 /etc/rsync_client.pass
#从服务端去下载数据
rsync -avzP --delete --password-file=/etc/rsync_client.pass backups_user@192.168.204.52::backups ${BACKUP_PATH} &> /dev/null
if [ $? == "0" ];then
echo "$(date '+%Y-%m-%d %H:%M:%S') backup success." >> /tmp/rsync.log
rm -f /etc/rsync_client.pass
else
echo "$(date '+%Y-%m-%d %H:%M:%S') backup faile." >> /tmp/rsync.log
fi
fi
测试一下
- 首次手动运行一下这个脚本
- 服务端去新增一些文件试试同步
配置定时任务
cron配置
这样就可以实现定时同步任务了
# 每小时的第一分钟执行一次
echo '1 */1 * * * /bin/bash /opt/data_rsync.sh &> /dev/null' >> /var/spool/cron/root
相关文章
- ssm(Spring+Spring mvc+mybatis)Dao层配置sql的文件——DeptDaoMapper.xml
- rsync+inotify文件同步 - 同步慢的问题
- linux文件同步之rsync学习(一)
- 高性能流媒体服务器EasyDSS前端重构(二) webpack + vue + AdminLTE 多页面提取共用文件, 优化编译时间
- rsync实时同步文件
- git 添加忽略文件
- pytest的inifile文件配置
- log file sync( 日志文件同步)
- Linux rsync远程文件同步工具:只对差异文件进行更新
- 145. SAP UI5 本地开发时 ui5.yaml 文件对构建 Release 版本应用目录的影响分析
- Atitit 项目源码管理 attilax著 1. 源码结构sdk目录结构1 1.1. 源码分类,配置文件,主程序文件,sql文件1 2. 源码管理,提交,更新,与同步1 2.1. 源码同步
- Android源码 在framework中加入一张图片资源,获取不到资源文件
- 5.4.1 sequenceFile读写文件、记录边界、同步点、压缩排序、格式
- Hybrid----U采用IWebView演出PDF和其他文件
- Linux下实现文件双向同步
- 点击图片实现文件上传
- Rsync如何将多台服务器文件同步至一台服务器
- Ubuntu16.04和Centos7.5安装Rsync并测试同步文件