And*_*dré 4 linux bash logrotate
我有几个文件,比如 map-0.jpg(最新)、map-1.jpg、map-2.jpg、...、map-9.jpg(最旧)。现在我的 cronjob 从互联网上下载了一张新图片,并将其保存为 map-0.jpg。但是,所有其他文件都应重新枚举(0 -> 1、1 -> 2 等)。就我而言,数字 9 可以丢弃。
是否有一个方便的 bash 命令可以像 logrotate 一样枚举我的文件?
感谢帮助!
您可以在有一些限制的情况下使用 logrotate。
创建一个rotatemap.conf:
/path/to/map.jpg {
rotate 9
}
Run Code Online (Sandbox Code Playgroud)
然后像这样从你的 cronjob 运行 logrotate:
logrotate -f -s /path.to/rotatemap.state /path/to/rotatemap.conf
Run Code Online (Sandbox Code Playgroud)
这会将文件重命名map.jpg为map.jpg.1并删除旧文件(map.jpg.9如果存在)。
限制:
阅读详细的 logrotate ( man logrotate)手册以获取更多信息。