我使用rsync来备份文件和文件夹:
rsync -avqz --stats --delete /media/server/ /media/Server2/
这会删除源上不存在的文件,并确保目标是源的精确副本
但是,我的老板希望我应该删除文件中不存在的文件,这些文件只有一周的时间。 就像是:
rsync -avqz --stats --delete(1 week old) /media/server/ /media/Server2/
有任何想法吗?
我会build议你和你的老板build立rsnapshot。 它会像往常一样给你快照,然后回到你喜欢的位置。
Rsync不支持这种开箱即用的行为。 你可能会发现像Jaylen这样的另一个工具如rsnapshot被认为是一个很好的举动。
如果你真的想要完全按照你的描述来做,你可以做的就是这样。
或者,使用rsync --delete -n的输出,而不是排队,使用其他一些检查,如备份中的最后修改date,以确保只删除一周内没有被编辑的东西。 这不是你要求的行为,而是更容易编程,可能就足够了。
另一个工具是rdiff-backup : http : //www.nongnu.org/rdiff-backup/ ,它保持镜像和按dateconfiguration,增量备份。
rsync会做一些小小的调整
在您要备份的机器上运行命令:
rsync -abvh --backup-dir=../oldcopysfilesdir/`date +%Y-%m-%d_%H.%M` --delete /path/to/source/ [email protected]:/path/to/target
这将备份文件和文件夹,并在目标机器上创build一个文件夹“oldcopysfilesdir”,所有旧的副本的更改文件和文件夹,都在特定的时间戳文件夹中。
在目标机器上运行时删除文件夹“oldcopysfilesdir”中的旧副本:
find /path/to/oldcopysfilesdir/* -mtime +7 -delete
这个命令会删除7天以前的旧文件和文件夹,但只会删除旧文件。 在“/ path / to / target”中总会有一个“/ path / to / source /”目录的最新镜像。 要自动执行,请为命令创buildanacron或cron作业。