输出执行操作和打印日志的shell脚本实例
cat/mnt/log_function.sh
#!/bin/bash
#logfunction
####log_correct函数打印正确的输出到日志文件
functionlog_correct(){
DATE=`date“+%Y-%m-%d%H:%M:%S”`####显示打印日志的时间
USER=$(whoami)####那个用户在操作
echo“${DATE}${USER}execute$0[INFO]$@”>>/var/log/log_info.log######($0脚本本身,$@将参数作为整体传输调用)
}
log_error打印shell脚本中错误的输出到日志文件
functionlog_error()
{
DATE=`date“+%Y-%m-%d%H:%M:%S”`
USER=$(whoami)
echo“\${DATE}\${USER}execute\$0[INFO]\$@”>>/var/log/log_error.log
}
###fn_log函数通过if判断执行命令的操作是否正确,并打印出相应的操作输出
functionfn_log()
{
if[$?-eq0]
then
log_correct“$@sucessed!”
echo-e“\033[32m$@sucessed.\033[0m”
else
log_error“$@failed!”
echo-e“\033[41;37m$@failed.\033[0m”
exit
fi
}
知识点:
(1)$?判断执行命令的返回值,命令执行正确返回0,命令执行错误返回1
(2)”$@”将执行命令以一个参数的形式显示出来。
(3)echo-e“\033[32m$@sucessed.\033[0m”成功时以红色形式显示执行命令的内容。
(4)echo-e“\033[41;37m$@failed.\033[0m”失败时以绿色的形式显示执行命令的内容
(5)date“+%Y-%m-%d%H:%M:%S”显示详细的日志时间(年月日时分秒)
调用日志函数脚本的执行脚本(log_correctlog_errorfn_log)
vilog_exec.sh
#!/bin/sh
if[-e/mnt/log_function.sh]
then
source/mnt/log_function.sh
else
echo-e“\033[41;37m/mnt/log_function.shisnotexist.\033[0m”
exit1
fi
USER=`whoami`
if[$USER==root]
then
log_correct“executebyroot”
else
log_error“executeby${USER}”
echo-e“\033[41;37myoumustexecutethisscritpbyroot.\033[0m”
exit1
fi
if[-e/var/log/message]
then
echo0>/var/log/message
fn_log“echo0>/var/log/message”
fi
以上这篇输出执行操作和打印日志的shell脚本实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。