Linux cp 与 gzip 和编号备份只需一步?

Linux cp 与 gzip 和编号备份只需一步?

我想通过一个命令/步骤复制一个文件并对其进行 gzip 压缩

但是如果文件已经存在,我想进行编号备份,即“cp --backup=numbered”或类似操作。

之所以要单步执行,是因为我正在将一个日志文件(可能很大)复制到网络文件系统。该文件系统不是 nfs,我无法使用 scp。我必须使用常规 unix 命令。实际上,该文件系统是 cephfs。

我认为也许是 zcat logfile > /dest/logfile 但是编号备份怎么样?

整个问题之所以出现,是因为 logrotate 只在第二次旋转操作时才开始 gzip 压缩,而不是第一次。例如,实时(今天)、昨天(.1 - 未 gzip 压缩)、前天(.2 - gzip 压缩)。有点烦人。

如果我在复制之前使用 gzip 压缩,我认为这可能会干扰 logrotate。

答案1

恐怕 logrotate 总是在压缩之前运行 postrotate 脚本。您可能想要做的是删除正常压缩,而是将其作为 postrotate 脚本的一部分手动执行。这将确保压缩在复制之前进行。请参阅此处的示例:http://www.leaseweblabs.com/2013/06/logrotate-and-rsync-mysqldump-backups/

相关内容