释放程序猿的加班时间,rsync+crontab完成定期同步,晚安睡个好觉~黑夜篇

环境准备

centos7两台,关闭防火墙和selinux

【客户端】——192.168.112.153
【服务端】——192.168.112.172

  • 执行时服务器端和客户端可以互相拷贝文件,可以理解为两台服务器间的备份,这里修改服务端的配置文件,备份的就是服务端的,有新变化的目录/文件

【服务端】1、安装服务器

yum -y install rsync

2、修改配置文件

vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
address = 192.168.112.172
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.112.0/24
[git]
path = /var/opt/gitlab/backups
comment = Document Root of www.51xit.top
read only =no
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users =root
secrets file = /etc/rsync.cc
  • 解析在这里插入图片描述

path的路径自己制定即可,如是新的路径,记得创建目录!!!

3、创建用户和密码的文件,赋权限

echo 'root:123456' > /etc/rsync.cc
chmod 600 /etc/rsync.cc

4、后台启动,验证端口

rsync --daemon
netstat -nlpt |grep 873

在这里插入图片描述

【客户端】5、安装服务器

yum -y install rsync

6、编写密码文件

echo '123456' > /etc/rsync.cc
  • 同样赋予权限
chmod 600 /etc/rsync.cc

7、验证是否同步

1)创建目录

mkdir  /home/data

2)切到服务端,模拟目录/文件变化

在这里插入图片描述

3)切到客户端,测试同步

rsync -az --password-file=/etc/rsync.cc root@192.168.112.172::git /home/data/
  • 如果需要和服务端文件保持一致性的话,可加–delete参数
  • –delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

验证图

在这里插入图片描述

8、加入计划任务

crontab -e
  • 将7.3的查验命令写入监本,添加计划任务
    在这里插入图片描述
    在这里插入图片描述

crontab基本格式 :

*  *  *  *  *  command
分  时 日 月 周 命令

  • 第1列表示分钟1~59 每分钟用*或者 */1表示
  • 第2列表示小时1~23(0表示0点)
  • 第3列表示日期1~31
  • 第4列表示月份1~12
  • 第5列标识号星期0~6(0表示星期天)
  • 第6列要运行的命令

易错点归纳

在这里插入图片描述

  • 出现报错1649
  1. 查看服务端的用户名和密码文件是否正确
  2. 密码文件忘记赋予权限
  3. 查验服务端和客户端的面是否一致
  • 报其他错误可能为配置文件错误,仔细核对路径和ip
  1. ps -ef|grep rsync查进程号
  2. 杀死服务
kill -9 进程号
  1. 后台启动
rsync --daemon

最后,祝每位程序猿少加班,晚安有个好梦~ - ~
在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
要实现实时同步,可以结合使用rsync和inotify工具。 首先,使用rsync命令进行初始的文件同步。你可以使用如下命令: ``` rsync -avz --delete source_directory/ destination_directory/ ``` 这将同步源目录(source_directory)中的文件到目标目录(destination_directory)。-a`选项表示使用归档模式,保持文件属性和权限不变。`-v`选项表示输出详细的同步信息。`-z`选项表示启用压缩来加快传输速度。`--delete`选项表示删除目标目录中不存在于源目录中的文件。 接下来,你可以使用inotify工具监控源目录的文件变化,并在有变更时自动触发rsync命令进行实时同步。inotify是Linux内核提供的一种机制,可以监视文件系统中的事件,如文件或目录的创建、修改、删除等。 你可以使用inotifywait命令来监控文件系统事件,并在事件发生时执行rsync命令。以下是一个示例: ``` #!/bin/bash SOURCE_DIR="/path/to/source_directory" DESTINATION_DIR="/path/to/destination_directory" inotifywait -m -r -e modify,create,delete,move "$SOURCE_DIR" | while read path action file; do rsync -avz --delete "$SOURCE_DIR/" "$DESTINATION_DIR/" done ``` 上述脚本监视源目录中的修改、创建、删除和移动事件,并在事件发生时执行rsync命令进行同步。你可以将脚本保存为一个.sh文件,并使用`chmod +x script.sh`命令赋予执行权限。 这样,当源目录中的文件发生变化时,inotify会捕捉到事件并触发rsync命令进行实时同步到目标目录。 请注意,以上示例仅为演示目的,并没有考虑到错误处理、日志记录等方面。在实际应用中,你可能需要对脚本进行适当的修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值