crontab 重定向错误日志 加上时间

http://blog.csdn.net/wang350/article/details/51558016


在开发中,我们避免不了写crontab脚本来异步执行一些东西,一般设置crontab用下面的方法


  1. */1 * * * * commond > /tmp/t.log 2>&1  



后面的 2>&1 代表把标准错误输出指向标准输出,意思是当commond异常退出时,把异常退出时的日志也写到 /tmp/t.log 下面,这时记录的日志是没有时间信息的,就是说日志里的数据没有办法知道是什么时候打印出来的。
下面通过一个shell来解决这件事,代码如下
  1. #!/bin/bash  
  2.   
  3.   
  4. if [ $# -gt 1 ]; then  
  5.     istring=''  
  6.     #去掉回车  
  7.     date=`date | tr -s ["\n"]`  
  8.     for (( i = 2; i <= $#; i++ ))  
  9.     do  
  10.         string=$string" "${!i}  
  11.     done      
  12.     c=$date": "$string  
  13.     echo "" >> $1  
  14.     echo $c >> $1  
  15. fi  




把上面的代码放到根目录下,保存为 datecrontalog.sh


然后在crontab -e用下面的脚本代替
  1. */1 * * * *  commond 2>&1 | xargs $HOME/datecrontalog.sh /tmp/t.log 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值