使用rsync和inotidy-tools来进行实时备份文件夹数据
在工作中遇到这个这么个需求,就是我们有一个samba的文件共享服务器,里面存了很多文件,然后我想实时备份这个samba共享文件的。
1、概述
只需要在源服务器上操作,并在源服务器上安装好rsync和inotidy-tools,目标服务器上只需要安装好rsync即可
2、备份操作步骤
1)安装rsync和 inotify-tools:
sudo apt-get install rsync inotify-tools
#Openeuler使用下面命令
dnf install rsync -y
dnf install inotify-tools -y
2)配置 SSH 密钥 (免密码登录)
因为rsync同步数据的时候要使用ssh来进行数据同步,所以需要配置免密登录,否则每次需要弹出输入密码的等待窗口。
在源服务器上生成 SSH 密钥对:
ssh-keygen -t rsa
将公钥复制到目标服务器的 authorized_keys 文件中:
ssh-copy-id user@target_server
将 user 替换为目标服务器上的用户名,target_server 替换为目标服务器的 IP 地址或域名。
3)创建同步脚本
脚本文件如下所示,sync.sh,内容如下:根据实际情况修改源文件夹和目标服务器ip、目标文件夹路径等参数
#!/bin/bash
SOURCE="/storage/data"
DESTINATION="root@192.168.0.220:/storage/dataBackup"
inotifywait -m -r -e modify,create,delete "$SOURCE" | while read path action file; doecho "Detected $action on $file, starting backup..."rsync -avz "$SOURCE/" "$DESTINATION"
done
4)执行脚本
执行脚本不能直接执行,需要在后台运行,并且将同步日志保存到文件中,命令如下:
nohup ./fileBackup.sh output.log 2>&1 &