Ubuntu定时同步数据流程
定时同步数据需依赖可靠的同步工具,Ubuntu下常用工具及安装命令如下:
sudo apt install rsync;sudo apt install unison;sudo apt install syncthing。为规范同步流程、记录日志,建议将同步命令封装为脚本:
/usr/local/bin/sync_data.sh(系统级)或~/sync_data.sh(用户级);/data/source/到远程user@remote_ip:/data/target/的脚本内容如下:#!/bin/bash
LOG_FILE="/var/log/sync_data.log"
echo "$(date '+%Y-%m-%d %H:%M:%S') - Starting sync..." >> "$LOG_FILE"
rsync -avz -e "ssh -i /home/user/.ssh/id_rsa" /data/source/ user@remote_ip:/data/target/ >> "$LOG_FILE" 2>&1
echo "$(date '+%Y-%m-%d %H:%M:%S') - Sync completed." >> "$LOG_FILE"
-avz:归档模式(保留权限、时间戳)、显示详细输出、压缩传输;-e "ssh -i /path/to/private_key":指定SSH私钥路径(避免密码交互);>> "$LOG_FILE" 2>&1:将标准输出和错误输出追加到日志文件。chmod +x /usr/local/bin/sync_data.sh(或对应脚本路径)。Ubuntu通过cron服务实现定时任务,以下是详细配置流程:
sudo systemctl status cron
若未运行,执行:sudo systemctl enable --now cron(开机自启并立即启动)。crontab -e;sudo crontab -e。分钟 小时 日期 月份 星期 命令格式编写,常见示例:
*/5 * * * * /usr/local/bin/sync_data.sh;0 2 * * * /usr/local/bin/sync_data.sh;30 8 * * 1 /usr/local/bin/sync_data.sh。./script.sh),需在crontab中切换到脚本所在目录(如0 * * * * cd /path/to/script && ./sync_data.sh)。nano编辑器按Ctrl+O保存、Ctrl+X退出;vim编辑器按:wq保存退出。crontab -l(确认任务已添加);/usr/local/bin/sync_data.sh(检查日志是否有错误);tail -f /var/log/sync_data.log(实时监控同步进度)。chmod +x),且cron任务使用的用户对源目录、目标目录有读写权限;/usr/bin/rsync而非rsync),或在脚本开头加载环境变量(如. $HOME/.profile);~/.ssh/id_rsa私钥权限(应为600),并确认公钥已添加到远程服务器的~/.ssh/authorized_keys文件中。