两台Linux文件夹单向同步【inotify、rsync、ssh】

背景

两台Linux要实现文件夹备份功能,源机器文件夹中文件的新增修改删除操作,要同步到备份机。

实践

两台机器10.0.0.1;10.0.0.2,1机器为主机,2机器为备份机

ssh设置

在备份机2机器中执行创建用户、配置密码

useradd filesync

passwd filesync

在1机器中链接2机器

ssh [email protected]

ssh-keygen -t rsa

ssh-copy-id [email protected]

inotify安装

在1机器中安装inotify工具,用来监控文件变动,需要借助epel安装

yum install -y epel-release

yum --enablerepo=epel install inotify-tools

# 安装完成使用inotifywait -h测试
# inotifywait -h

rsync

一般情况下linux自带rsync

rsync -h

同步配置

1机器中有文件夹/home/filesync

2机器也创建一个文件夹/home/filesync

1机器创建一个sh脚本,用来执行同步

touch /home/filesync.sh

chmod +777 /home/filesync.sh

编辑脚本内容

#!/bin/bash
src=/home/filesync
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,move,close_write,delete,create,attrib $src |  while read file
do
      rsync -vzrtopg --delete --progress  $src [email protected]:/home/

      echo "  ${file} was rsynced" >>/home/filesync.log 2>&1
done

执行脚本

nohup /home/filesync.sh > /home/filesync.out 2>&1 &

现在应该可以实现同步了。

注意事项

2机器中的备份文件的权限组应该设置文filesync这个用户,否则可能出现因为没有权限,造成同步失败的情况

2机器的文件夹加权限组

chown -R filesync:filesync /home/filesync/

猜你喜欢

转载自blog.csdn.net/anshichuxuezhe/article/details/125565001
今日推荐