1. 创建同步脚本
首先,创建一个脚本来执行 rsync 操作。假设你将脚本命名为 sync_to_remote.sh。
步骤:
-
打开终端并编辑脚本:
nano /home/rontalks/sync_to_remote.sh -
在脚本中添加以下内容:
#!/bin/bash # 本地文件夹路径 LOCAL_DIR="" # 远程挂载路径 REMOTE_DIR="" # 日志文件(可选,记录同步过程) LOG_FILE="/home/rontalks/sync_to_remote.log" echo "Starting sync process..." >> "$LOG_FILE" # 调试信息 # 检查目标文件夹是否存在 if [ ! -d "$REMOTE_DIR" ]; then echo "Error: Target directory does not exist." >> "$LOG_FILE" exit 1 fi # 执行 rsync 同步操作 echo "Running rsync command..." >> "$LOG_FILE" # 调试信息 rsync -av --delete "$LOCAL_DIR/" "$REMOTE_DIR/" >> "$LOG_FILE" 2>&1 echo "Sync complete." >> "$LOG_FILE" # 调试信息 # 执行 rsync 同步操作 rsync -av --delete "$LOCAL_DIR/" "$REMOTE_DIR/" >> "$LOG_FILE" 2>&1解释:
-a:归档模式,保留符号链接、权限、时间戳等。-v:详细输出,同步过程中显示文件信息。--delete:删除目标目录中源目录不存在的文件。"$LOCAL_DIR/"和"$REMOTE_DIR/":确保同步时包含目录内容。
-
保存并关闭编辑器(按
Ctrl + X,然后按Y,最后按Enter)。
2. 赋予脚本执行权限
确保脚本具有执行权限:
chmod +x /home/rontalks/sync_to_remote.sh
3. 手动测试同步脚本
在自动化之前,手动运行一次脚本,确保同步过程没有问题:
/home/rontalks/sync_to_remote.sh
检查日志文件 /home/rontalks/sync_to_remote.log,确保同步成功。如果有错误,可以根据日志信息进行排查。
4. 设置定时任务(Cron Job)
要每 5 分钟自动运行脚本,可以使用 cron 设置定时任务:
-
打开
crontab编辑器:crontab -e -
在
crontab文件中添加以下条目,表示每 5 分钟执行一次脚本:*/5 * * * * /home/rontalks/sync_to_remote.sh这行代码的意思是每 5 分钟执行一次
/home/rontalks/sync_to_remote.sh脚本。 -
保存并退出(
Ctrl + X,然后按Y,最后按Enter)。
5. 检查定时任务是否生效
你可以查看 cron 的日志,确认任务是否按预期执行。日志通常保存在 /var/log/syslog 或 /var/log/cron 中。你可以通过以下命令查看:
grep CRON /var/log/syslog
总结:
- 你创建了一个
rsync同步脚本,通过rsync将本地 Syncthing 文件夹同步到远程挂载的网盘路径。 - 你通过
cron设置了定时任务,每 5 分钟自动运行脚本。
这样,NAS 本地的文件夹将每 5 分钟同步一次到远程网盘。
文章评论