检测目录中是否修改了某些内容,如果是,则备份 - 否则不执行任何操作

rou*_*ble 2 linux bash backup scripting rsync

我有一个"数据"目录,我通过shell脚本定期rsync到远程NAS.

但是,我想提高效率.在运行rsync之前,我想检测"数据"中是否有更改.这样我就不会不必要地唤醒NAS上的驱动器.

我正在考虑修改shell脚本以获取Data中文件的最新修改时间(通过使用递归查找),并在每次数据被rsynced时将其写入文件.

在每次同步之前,shell脚本可以将"数据"的当前时间戳与"数据"同步时的先前时间戳进行比较.如果当前时间戳较新,则rsync,否则不执行任何操作.

我的问题是,是否有更有效的方法来确定自上次rsync以来是否修改了"数据"目录?请注意,Data有许多层子目录.

mea*_*gar 5

如果我理解正确,您只想查看是否有任何文件已被修改,以便您可以确定是否继续执行脚本的rsync部分?

确定数据上次同步的时间非常简单,特别是如果你每晚都这样做.一旦找到mtime大于上次同步时间的文件,您就知道必须继续执行完整的rsync.

find 内置此功能:

# find all files modified in the last 24 hours
find -mtime 1
Run Code Online (Sandbox Code Playgroud)