我正在尝试创建一个自动备份完整目录树的脚本。我也希望它能用于增量备份。基本上,它会像这样工作:
我还是shell脚本的新手,我不知道如何实现它。有任何想法吗? Windows批处理脚本会更好,但在Cygwin上运行的shell脚本也可以。
答案 0 :(得分:4)
查看rsync工具 - 它旨在最大限度地减少文件同步期间的流量。
此外,可能带有“-u”参数的“cp”将非常有用:
-u, - 更新
copy only when the SOURCE file is newer than the destination file or when the destination file is missing
答案 1 :(得分:0)
对于Windows批处理脚本xcopy(Windows原生)或robocopy(在Windows中免费下载)都可以很好地工作。
示例xcopy
脚本(在.bat
文件中):
@echo off
:: /L = list only.
:: /v=Verify, /y=No prompting /s=subdirs /z=Network mode (supports bad)
:: /i=Tells xcopy dest is folder /f=Display names /d=Copy only changed
echo Backing up projects...
xcopy e:\projects h:\projects /V /Y /S /Z /I /F /D
它甚至会支持孤立的文件(如果您从源中删除了某些内容,则不再需要备份中的副本)。 Xcopy
通常可以满足您的需求,直到您处理NTFS和Fat32文件系统之间的同步 - 后者只有2秒的分辨率和每日节省时间的问题,因此您偶尔会遇到问题:(a)按时更改那天你可能无法获得已更改文件的备份 - 当然取决于更改 - 规则性,或者你可能会获得所有文件的备份,即使没有更改(b)因为时间分辨率,某些文件可能会备份,即使它们没有改变。