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 分钟同步一次到远程网盘。
文章评论