我对bash脚本和rsync(通过SSH)的了解非常了解。
在我的用例中,有一个包含日志文件的本地文件夹。这些日志文件每24小时轮换一次,并在其文件名中接收日期戳(例如logfile.DATE),而当前的日志文件只被称为logfile。
我想将这些文件复制到另一台(远程)服务器,然后在这台远程服务器上压缩这些复制的日志文件。 我想使用rsync来确保脚本没有工作一次或两次没有文件被跳过(所以我不想弄乱日期和日期abbriviations,如果不是nessecary)。
但是,如果我理解正确,所有文件都将被删除,因为已经存在的rsynced文件没有"匹配" rsync算法,因为它们被压缩.... 如果此文件位于远程位置(仅进行alraedy压缩),如何避免再次复制同一文件。
有人有想法或方向我应该把重点放在研究上吗? 非常感谢你 最好的问候
答案 0 :(得分:0)
进行轮换时,您将logfile
重命名为logfile.DATE
。作为该操作的一部分,使用ssh mv
同时在存档服务器上执行相同操作(您甚至可以告诉服务器将其压缩)。
然后你只需要rsync当前的logfile
。
例如,您的旋转操作来自:
mv logfile logfile.$(date +%F)
对此:
mv logfile logfile.$(date +%F)
ssh archiver mv logfile logfile.$(date +%F) && gzip logfile.$(date +%F)
你的rsync工作就是这样的:
rsync logdir/ archiver:
对此:
rsync logdir/logfile archiver: