ubuntu定时任务如何同步
导读:Ubuntu定时任务同步的常见方法 1. 通过SSH免密登录+rsync实现定时文件同步 rsync是Ubuntu下高效的文件同步工具,结合SSH免密登录可实现安全的定时同步。 安装rsync:默认已安装,未安装则运行sudo apt i...
Ubuntu定时任务同步的常见方法
1. 通过SSH免密登录+rsync实现定时文件同步
rsync是Ubuntu下高效的文件同步工具,结合SSH免密登录可实现安全的定时同步。
- 安装rsync:默认已安装,未安装则运行
sudo apt install rsync
。 - 配置SSH免密登录:在源服务器生成密钥
ssh-keygen -t rsa
,将公钥复制到目标服务器ssh-copy-id username@destination_ip
(替换为目标服务器用户名和IP)。 - 编写同步脚本:创建
sync_script.sh
,内容为rsync -avz /source/folder/ username@destination_ip:/target/folder/
(-a
保留文件属性,-v
显示详情,-z
压缩传输),赋予执行权限chmod +x sync_script.sh
。 - 设置cron定时任务:运行
crontab -e
,添加定时规则(如每小时同步一次:0 * * * * /path/to/sync_script.sh
),保存后自动生效。
2. 使用systemd定时器替代cron实现精准同步
systemd定时器更灵活,支持依赖管理和日志记录,适合需要精准调度的场景。
- 创建服务文件:编写
/etc/systemd/system/sync.service
,内容为:[Unit] Description=File Sync Service [Service] ExecStart=/usr/bin/rsync -avz /source/folder/ /target/folder/
- 创建定时器文件:编写
/etc/systemd/system/sync.timer
,内容为:[Unit] Description=Run sync every hour [Timer] OnCalendar=hourly Persistent=true [Install] WantedBy=timers.target
- 启用并启动定时器:运行
sudo systemctl enable sync.timer
和sudo systemctl start sync.timer
,定时器会自动触发服务执行同步。
3. 使用Unison实现双向定时同步
Unison是双向同步工具,适合需要保持两端目录完全一致的场景(如开发环境与服务器代码同步)。
- 安装Unison:运行
sudo apt install unison
(两端服务器均需安装,版本尽量一致)。 - 配置SSH免密登录:同rsync步骤,确保Unison能通过SSH无密码连接目标服务器。
- 编写同步脚本:创建
unison_sync.sh
,内容为unison /source/folder ssh://username@destination_ip//target/folder/ -auto -batch
(-auto
自动确认非冲突操作,-batch
非交互模式),赋予执行权限chmod +x unison_sync.sh
。 - 设置cron定时任务:通过
crontab -e
添加定时规则(如每天凌晨2点同步:0 2 * * * /path/to/unison_sync.sh
)。
4. 使用Syncthing实现点对点实时/定时同步
Syncthing是开源的点对点同步工具,无需中心服务器,支持实时或定时同步多设备。
- 安装Syncthing:运行
sudo apt install syncthing
,启动服务sudo systemctl enable --now syncthing@your_username
。 - 配置同步目录:通过浏览器访问
http://localhost:8384
,添加本地目录(如/source/folder
),并邀请目标设备(输入其Syncthing ID)加入同步。 - 设置定时同步:Syncthing默认实时同步,若需定时,可通过
crontab -e
添加脚本控制Syncthing的同步操作(如每小时执行一次syncthingctl sync your_device_id
)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu定时任务如何同步
本文地址: https://pptw.com/jishu/727822.html