您的位置:首页 > 运维架构 > Shell

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

2016-06-01 18:17 519 查看
(原文链接 http://ivhong.com/crontab-%E9%87%8D%E5%AE%9A%E5%90%91%E9%94%99%E8%AF%AF%E6%97%A5%E5%BF%97-%E5%8A%A0%E4%B8%8A%E6%97%B6%E9%97%B4/)
在开发中,我们避免不了写crontab脚本来异步执行一些东西,一般设置crontab用下面的方法

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


后面的 2>&1 代表把标准错误输出指向标准输出,意思是当commond异常退出时,把异常退出时的日志也写到 /tmp/t.log 下面,这时记录的日志是没有时间信息的,就是说日志里的数据没有办法知道是什么时候打印出来的。

下面通过一个shell来解决这件事,代码如下
#!/bin/bash

if [ $# -gt 1 ]; then
istring=''
#去掉回车
date=`date | tr -s ["\n"]`
for (( i = 2; i <= $#; i++ ))
do
string=$string" "${!i}
done
c=$date": "$string
echo "" >> $1
echo $c >> $1
fi


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

然后在crontab -e用下面的脚本代替
*/1 * * * *  commond 2>&1 | xargs $HOME/datecrontalog.sh /tmp/t.log
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Shell