Bash rsync文件夹,其中目标文件夹具有相同的文件,仅已压缩

Bash rsync文件夹,其中目标文件夹具有相同的文件,仅已压缩,bash,ssh,gzip,rsync,bzip2,Bash,Ssh,Gzip,Rsync,Bzip2,我对bash脚本和rsync(通过SSH)的了解陷入僵局 在我的用例中,有一个本地文件夹,其中包含日志文件。这些日志文件每24小时旋转一次,并在其文件名(例如logfile.date)中收到一个日期戳,而当前的日志文件仅称为logfile 我想将这些文件复制到另一台(远程)服务器,然后在此远程服务器上压缩这些复制的日志文件。 我希望使用rsync来确保如果脚本不能工作一两次,那么就不会跳过任何文件(因此,如果不是nessecary,我不希望弄乱日期和日期缩写) 但是,如果我理解正确,所有文件都将

我对bash脚本和rsync(通过SSH)的了解陷入僵局

在我的用例中,有一个本地文件夹,其中包含日志文件。这些日志文件每24小时旋转一次,并在其文件名(例如logfile.date)中收到一个日期戳,而当前的日志文件仅称为logfile

我想将这些文件复制到另一台(远程)服务器,然后在此远程服务器上压缩这些复制的日志文件。 我希望使用rsync来确保如果脚本不能工作一两次,那么就不会跳过任何文件(因此,如果不是nessecary,我不希望弄乱日期和日期缩写)

但是,如果我理解正确,所有文件都将进行rsynce,因为已经进行rsynce的文件与rsync算法不“匹配”,因为它们是压缩的。。。。 当同一个文件位于远程位置(仅alraedy压缩)时,如何避免再次复制该文件

有人有什么想法或方向让我把研究重点放在这上面吗? 非常感谢你
致以最诚挚的问候

当您进行旋转时,请将
logfile
重命名为
logfile.DATE
。作为该操作的一部分,同时在存档服务器上使用
ssh mv
执行同样的操作(您甚至可以告诉服务器压缩它)

然后您只需重新同步当前的
日志文件

例如,旋转操作如下所示:

mv logfile logfile.$(date +%F)
rsync logdir/ archiver:
为此:

mv logfile logfile.$(date +%F)
ssh archiver mv logfile logfile.$(date +%F) && gzip logfile.$(date +%F)
rsync logdir/logfile archiver:
您的rsync工作如下:

mv logfile logfile.$(date +%F)
rsync logdir/ archiver:
为此:

mv logfile logfile.$(date +%F)
ssh archiver mv logfile logfile.$(date +%F) && gzip logfile.$(date +%F)
rsync logdir/logfile archiver: