关闭

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

标签: Shell
1975人阅读 评论(0) 收藏 举报
分类:

(原文链接 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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:90783次
    • 积分:2009
    • 等级:
    • 排名:第19451名
    • 原创:109篇
    • 转载:28篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论