上一篇是个简单的可以执行并且写入日志的脚本,但是如果放到生产环境上就显得太粗糙了,所以需要进一步的优化:
#! /bin/bash
if [ -d "/opt/bmc" ] ; then
if [ -f "/opt/bmc/usysfault.log" ] ; then
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault #要执行的命令的绝对路径
} > /opt/bmc/usysfault.log #要存放日志文件的绝对路径
else
touch /opt/bmc/usysfault.log
chmod 755 /opt/bmc/usysfault.log
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault
} > /opt/bmc/usysfault.log
fi
else
if [ -f "/tmp/usysfault.log" ] ; then
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault
} > /tmp/usysfault.log
else
touch /tmp/usysfault.log
chmod 755 /tmp/usysfault.log
{
date +"%Y-%m-%d %H:%M:%S"
/usr/lpp/diagnostics/bin/usysfault
} > /tmp/usysfault.log
fi
fi注释:
特别注意:
最后,这个是单词执行的脚本,如果要循环执行的话加上上一篇写的while true即可。不过我采用的是类unix系统的计划任务管理器crontab来添加计划任务,让系统按指定的计划时间来执行脚本。
执行系统命令并且将输出写到指定日志文件的shell脚本(2)
原文:http://blog.csdn.net/kmust20093211/article/details/44805083