求助,aix中,能否用shell命令,每次执行的时候,自动将crontab作业前天出错的日志保存到另一个文本中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助,aix中,能否用shell命令,每次执行的时候,自动将crontab作业前天出错的日志保存到另一个文本中相关的知识,希望对你有一定的参考价值。

在aix中,可以通过tail -100 /var/adm/cron/log查看crontab的执行情况,如下:
。。。。。
oracle2 : CMD ( /u33/admin/autofree.sh ) : PID ( 229730 ) : Tue Sep 5 15:23:00 2011
Cron Job with pid: 229730 Successful
root : CMD ( /usr/run_ssa_encl_healthcheck) : PID ( 327904 ) : Tue Sep 5 15:30:00 2011
root : CMD ( /u33/admin/check_icmrm.sh ) : PID ( 303494 ) : Tue Sep 5 15:30:00 2011
Cron Job with pid: 327904 Successful
Cron Job with pid: 303494 Failed
oracle2 : CMD ( /u33/admin/bkarch.sh ) : PID ( 606448 ) : Tue Sep 5 15:31:00 2011
Cron Job with pid: 606448 Successful
oracle2 : CMD ( /u33/admin/autofree.sh ) : PID ( 512120 ) : Tue Sep 5 15:33:00 2011
Cron Job with pid: 512120 Successful
请问,能否用shell命令,每次执行的时候,自动将log里面前一天crontab失败的记录导出来到另一个文本,类似这样:
root : CMD ( /u33/admin/check_icmrm.sh ) : PID ( 303494 ) : Tue Sep 6 15:30:00 2011
Cron Job with pid: 303494 Failed
注意,CMD那行和Failed那行由于有些批量作业做得比较久,不一定挨在一起
还有,我要的是每次执行的时候,系统时间的前一天

参考技术A 可以 如果你AIX里装了你熟悉的shell的话。 参考技术B 可以实现,代码如下:
today=`date "+%b %e %Y"`
yesterday=`TZ=aaa16 date "+%b %e %Y"`

awk -F'[ :()]+' '
BEGINflag=0;n=0
if($2=="CMD")if($0 ~today||$0 ~yesterday)n=n+1;flag=1;a[n]=$0;continue;
if(flag==1 && $1=="Cron")for(i=1;i<=n;i++)
if(index(a[i],$5)) if(index($0,"Failed"))print a[i];print $0;
n=n-1;
for(j=i;j<=n;j++)
a[j]=a[j+1];
break;


'log本回答被提问者采纳
参考技术C 这个……

以上是关于求助,aix中,能否用shell命令,每次执行的时候,自动将crontab作业前天出错的日志保存到另一个文本中的主要内容,如果未能解决你的问题,请参考以下文章

关于在shell脚本中修改mysql初始密码的求助

在 AIX 上运行 Linux Shell

Linux中shell命令相关问题求助大佬

Unix(AIX) set命令

shell脚本中cd 命令怎么用

aix查看历史命令