linux shell 旋转脚本(不是“日志旋转”脚本)

linux shell 旋转脚本(不是“日志旋转”脚本)

我有一个要存档的目录。一个轮换存档。文件数不得超过 8 个,每个文件的名称中都会包含存档日期。示例:

1_2010_08_01_17h35m26s_archive.tar.bz2
2_2010_08_02_17h34m12s_archive.tar.bz2
3_2010_08_03_17h35m13s_archive.tar.bz2
4_2010_08_04_17h35m24s_archive.tar.bz2
5_2010_08_05_17h34m57s_archive.tar.bz2
6_2010_08_06_17h35m29s_archive.tar.bz2
7_2010_08_07_17h35m13s_archive.tar.bz2
8_2010_08_08_17h35m18s_archive.tar.bz2

下一个存档将删除第 8 个文件,将每个文件重命名为 (n+1),然后创建新文件,名称类似 1_yyyy_mm_dd_HHhMMmSSs_archive.tar.bz2

注意:我已经查看了一些 logrotate 脚本,但没有一个与此完全一致。

知道我应该去哪里找吗?

再次感谢

答案1

使用自定义 shell 脚本。您只应翻译在 shell 命令中写的内容。这里您可以找到一份有关 shell 脚本的优秀的初学者指南。

答案2

它不完全符合您的要求,但 logrotate 配置了dateext旋转文件,如下所示:

mainlog-20100720.gz
mainlog-20100721.gz
mainlog-20100722.gz
mainlog-20100723.gz
mainlog-20100724.gz
mainlog-20100725.gz
mainlog-20100726.gz

摘要来自man logrotate

存档旧版本的日志文件,并添加每日扩展名(如 YYYYMMDD),而不是简单地添加数字。

相关内容