我想只在事情发生变化时才开始这项行动.某些备份在所有系统的文件夹上运行,这些文件夹很少发生变化(即安装新软件或修改配置时).
每当发生变化时,我都想要一个完整的快照.我可以用find生成一个修改过的文件列表,但我真的只需要知道该列表的长度是0还是更大.使用find太慢了.
我知道有增量备份,我已经在其他情况下将rsync与ZFS结合使用了.但是,这里备份主机是FTP服务器(所以没有rsync),我需要完整的备份(因为备份存档用作恢复或克隆服务器的映像),我想要压缩输出(所以tar很方便).
编辑:请注意,我不是在寻找增量备份(我有这个),而是寻找快速(有点排除查找等)以及确定完整快照是否与最后一个相同的简单方法.也许我的措辞不太好.我现在编辑了这个标题.
解决方法
— Action: -quit
Exit immediately (with return value zero if no errors have occurred). This is different to ‘-prune’ because ‘-prune’ only applies to the contents of pruned directories,whilt ‘-quit’ simply makes find stop immediately. No child processes will be left running,but no more files specified on the command line will be processed. For example,find /tmp/foo /tmp/bar -print -quit will print only ‘/tmp/foo’. Any command lines which have been built by ‘-exec … +’ or ‘-execdir … +’ are invoked before the program is exited.
您可以使用find-expression查找已更改的文件,并在找到后立即使用-quit停止.这应该比继续扫描更快.
在Fileutils V4.2.3中添加了-quit