crontab 使用日期时间命名重定向文件

linux crontab命令可以实现定时执行任务,最小的执行周期是1分钟

关于crontab的使用可以查看《Linux crontab定时执行任务 命令格式与详细例子》


例:每天12点执行test.php,执行的输出会追加到test.log文件

0 12 * * * php /Users/fdipzone/test.php >> /Users/fdipzone/test.log 2>&1

2>&1 表示把标准错误输出重定向到与标准输出一致,即test.log


每天12点都执行一次,当天的输出就会追加到test.log文件。如果运行了一段很长的时间(如1年),test.log文件的内容则会很大。 这样不方便查看对应日期的输出记录。

因此我们需要一个方法,可以按不同时段写入不同的日志文件,例如每日,每周,每月使用一个日志文件(具体根据不同的需求定义)这样就可以方便搜寻。


例:每天12点执行,使用当天日期来命名重定向文件

0 12 * * * php /Users/fdipzone/test.php >> "/Users/fdipzone/$(date +"\%Y-\%m-\%d").log" 2>&1

2016-06-06 执行的,会追加入/Users/fdipzone/2016-06-06.log
2016-06-07 执行的,会追加入/Users/fdipzone/2016-06-07.log

这样可以很方便找到对应日期的定时任务执行日志


如果每天创建的日志内容不多,我们可以使用月份/周为日志命名。如果日志内容很多也可以按小时来命名,以下提供不同时段的命名重定向文件实例

使用月份命名

0 12 * * * php /Users/fdipzone/test.php >> "/Users/fdipzone/$(date +"\%Y-\%m").log" 2>&1

使用周命名

0 12 * * * php /Users/fdipzone/test.php >> "/Users/fdipzone/$(date +"\%Y-W\%W").log" 2>&1

使用小时命名

* * * * * php /Users/fdipzone/test.php >> "/Users/fdipzone/$(date +"\%Y-\%m-\%d_\%H").log" 2>&1
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值