为了保证数据的可靠存储,通常是需要使用镜像硬盘或者RAID5之类的磁盘阵列,这种才算比较可靠,假设有单一硬盘出现损坏,也不至于丢失数据。而采用华硕路由器外接SSD固态硬盘当成存储,存在数据丢失的风险,如果固态硬盘出现损坏,那么数据恢复麻烦,不如机械硬盘,机械硬盘的数据恢复的可能性更大,为了保证可靠存储,需要使用同步软件再建立一个备份。当然,更理想的方法是采用群晖nas之类的解决方案。这里只是构造一个简单的备份,同步数据到日常电脑上,保留一份副本。主要目的是应对有一天SSD突然损坏,当然,也可能SSD损坏前我已经更换SSD了。不管如何,做一个日常的同步备份。
本来是用GoodSync来同步FTP目录到本地的,但是GoodSync连接华硕路由器的FTP站点(外接SSD)显示的文件修改时间相差8小时,是时区显示不对,GMT不对,华硕路由器的FTP无法详细配置,而用WinSCP、Total Commander等连接这个FTP站点,文件的时间都是正确的,只有GoodSync的FTP连接出现file-time 显示的时间相差8小时,无法解决,因为文件的更新时间比较重要,这个任务只好弃用GoodSync,其他的维持使用GoodSync,研究了一通,可以安装一个免费的WinSCP软件,采用WinSCP的命令可以实现单向同步,把Ftp站点对应的文件同步到本地,如果FTP站点中删除了一个文件,本地也同步删除。为了避免出现意外删除Ftp站点的情况,建立一个只读用户readonly用户,这个用户是FTP用户,只能读取R,不能写入W,FTP只读用户,同步脚本使用只读用户,万一命令错误的话,也无权删除Ftp服务器上的内容。以下是一个简化的脚本,包括配置了定时任务。更复杂的功能可自行增加,如每天独立一个日志文件,可以用set logfile去定义每天的日志文件名,用forfile去删除历史日志文件。

建立同步命令sync_asus.txt
# sync_asus.txt
# 登录信息
open ftp://readonly:password@yourdomain.ddns.net/
# 设置本地路径
lcd "f:\192.168.0.1\ASUS\只读用户"
# 同步远程目录到本地,单向
# 使用 synchronize 命令实现同步
# 参数 -delete 本地与远程保持完全一致,远程删了,本地也删
synchronize local "f:\192.168.0.1\asus\只读用户" "/ASUS/只读用户" -delete
# 关闭连接
close
# 退出
exit
批处理脚本
"D:\Program Files (x86)\WinSCP\WinSCP.exe" /log="d:\bat\sync_asus.log" /ini=nul /script="d:\bat\sync_asus.txt"
设置定时任务
每天晚上10点执行d:\bat\sync_asus.bat
schtasks /create /tn "Sync ASUS Task" /tr "D:\bat\sync_asus.bat" /sc daily /st 22:00
2025-7-12 周六夜
附带收益:
1、万一路由器SSD上的文件因为自己错误删除了,因为有这个备份机制,可以在下次同步前找回,未覆盖的话,因为每天同步一次,那么最长是24小时,按照当前的配置,也就是晚上22点下次同步前找回来,在PC机上找回来。如果能建立多副本的机制的话,那么可以回退更长的时间。
2、日常在电脑工作,可以访问PC硬盘上的同步下来的文件,而不必一定上网去用路由器上SSD的文件,在本地访问更快。当然,手机访问就还是要访问网上的SSD。
2025-7-23

被折叠的 条评论
为什么被折叠?



