赠君同步之法

《服务器同步诀》
两台 Linux 欲同流,诸般方法解君愁。
Rsync 定时展身手,Inotify 实时亦优游。

在 Linux 系统里,若要实现两台服务器文件夹自动同步,有多种实用方法,下面为你详细道来:

方法一:使用 rsync 结合 cron 定时同步

rsync 是一款强大的文件同步工具,能高效地在不同服务器间同步文件,而 cron 可用于设置定时任务。

步骤
  1. 安装 rsync
    在两台服务器上都安装 rsync,以 Ubuntu 系统为例,使用如下命令:
sudo apt-get update
sudo apt-get install rsync

若为 CentOS 系统,命令如下:

sudo yum install rsync
  1. 配置 SSH 免密登录
    为避免每次同步都输入密码,需配置 SSH 免密登录。在源服务器上生成 SSH 密钥:
ssh-keygen -t rsa

接着将公钥复制到目标服务器:

ssh-copy-id username@destination_server_ip

这里的 username 是目标服务器的用户名,destination_server_ip 是目标服务器的 IP 地址。
3. 编写 rsync 同步脚本
在源服务器上创建一个同步脚本,比如 sync_script.sh

#!/bin/bash
rsync -avz /source_folder/ username@destination_server_ip:/destination_folder/

其中 /source_folder/ 是源服务器要同步的文件夹,/destination_folder/ 是目标服务器接收同步文件的文件夹。
赋予脚本执行权限:

chmod +x sync_script.sh
  1. 设置 cron 定时任务
    使用 crontab -e 命令编辑当前用户的定时任务表,添加如下内容以实现每小时同步一次:
0 * * * * /path/to/sync_script.sh

这里的 /path/to/sync_script.sh 是脚本的实际路径。

方法二:使用 inotify 实现实时同步

inotify 能监控文件系统的变化,结合 rsync 可实现实时同步。

步骤
  1. 安装 inotify-tools
    在源服务器上安装 inotify-tools,以 Ubuntu 系统为例:
sudo apt-get install inotify-tools

若为 CentOS 系统:

sudo yum install inotify-tools
  1. 编写实时同步脚本
    创建一个脚本,例如 real_time_sync.sh
#!/bin/bash
while true; do
    inotifywait -r -e modify,create,delete /source_folder/
    rsync -avz /source_folder/ username@destination_server_ip:/destination_folder/
done

同样赋予脚本执行权限:

chmod +x real_time_sync.sh
  1. 启动脚本
    在源服务器上运行脚本:
./real_time_sync.sh &

使用 & 可让脚本在后台运行。

如此这般,君便可依自身需求,择一方法达成两台 Linux 服务器文件夹的自动同步。若有他事相询,尽管道来。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐