我有一个文件服务器,每天都会将文件转储到该服务器上。这些文件可以是任何大小、任何类型等。然后我想将这些文件同步到远程备份服务器,但问题是,一旦它们在备份服务器上,它们就会被重命名和移动,因此简单的 rsync 将不起作用。
目前,我通过在目录中运行 ls 并在同步后将其保存在本地来跟踪我下载的文件。然后,当我再次运行该作业时,我会通过排除该列表中的文件来 rsync 文件。这在大多数情况下都有效,但有时文件带有奇怪的字符,则需要重新下载。此外,如果由于某种原因网络中断并且“ls”下次失败,它将尝试重新下载所有内容,因为排除列表为空。
有一个更好的方法吗?
答案1
如果你真的需要原始文件系统和另一个原本是副本但已重命名的文件系统,那么我会维持(不重写)已下载文件的列表。如果备份过程中有任何新内容,则将其作为添加添加到列表中。如果没有,则不会将任何内容添加到该列表中。
如果您遇到奇怪字符的问题,请尝试修复问题所在:转换(使用iconv
)下载文件列表,或使用正确的字符集连接到服务器等。您需要手动完成并仔细检查所有内容是否正确,然后再将其添加到您正在使用的脚本中。