如何使用“日期”打印明天的星期几

如何使用“日期”打印明天的星期几

在 CentOS 6 Linux 上,我使用date +%a多个 cronjobs 和脚本来生成日志文件名myprog-Tue.txt,多年以来这对我来说效果很好。

但是现在对于一个程序,我需要删除以前的日志文件,即在我的 cronjob 中启动我的程序并将其输出重定向到之前myprog-Tue.txt,我想删除myprog-Wed.txt

这样,我想就可以把旧的日志文件清除掉,但仍然保留 5-6 天的日志文件。

所以我尝试过:

# date -v+1d +%a
date: invalid option -- 'v'
Try `date --help' for more information.

有人知道这里出了什么问题吗?

答案1

你可以这样做:

date -d "+1 days" +%a

其渲染结果为:

星期六

答案2

问题不在于如何使用date来输出您想要的内容……您的问题是:

这边走我想把旧的日志文件清理掉,但仍然有 5-6 天的日志文件

那么,为什么不find删除所有文件而只删除本周的文件呢?

find /path/to/files/ -mtime +7 -exec rm {} \;

此外,date它有许多不同的实现 - 我记得上次使用它时,很难找到flags做我想做的事情的权利......并且让它在 Linux 和 AIX 机器之间以相同的方式工作并不容易......所以,以防万一这条评论可以帮助您做出决定date:)

答案3

使用-d选项指定短语:

date -d '+ 1 day' +%a

答案4

另一篇关于“如何理智地管理您的日志文件”的条目……

你可以看看日志旋转它应该是大多数 Linux 发行版的一部分。它可以管理删除和压缩。许多 Linux 守护进程都使用它,因此您可以查看一些示例配置文件。

更简单一点的是旋转日志它处理旋转部分,但不执行任何删除(您find ... -delete会这样做。

相关内容