输出执行操作和打印日志的shell脚本实例

 更新时间:2017年03月17日 09:57:44   投稿:jingxian  
下面小编就为大家带来一篇输出执行操作和打印日志的shell脚本实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
cat /mnt/log_function.sh 
#!/bin/bash 
#log function

####log_correct函数打印正确的输出到日志文件 
function log_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脚本中错误的输出到日志文件

function log_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判断执行命令的操作是否正确,并打印出相应的操作输出

function fn_log () 
{ 
if [ $? -eq 0 ] 
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_correct log_error fn_log)

vi log_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.sh is not exist. \033[0m” 
exit 1 
fi

USER=`whoami` 
if [ $USER == root ] 
then 
log_correct “execute by root” 
else 
log_error “execute by ${USER}” 
echo -e “\033[41;37m you must execute this scritp by root. \033[0m” 
exit 1 
fi

if [ -e /var/log/message ] 
then 
echo 0 > /var/log/message 
fn_log “echo 0 > /var/log/message” 
fi

以上这篇输出执行操作和打印日志的shell脚本实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Bash中分支控制Case语句的实现

    Bash中分支控制Case语句的实现

    case语句通常用于简化具有多种不同选择的复杂条件语句,使 Bash 脚本更具可读性,在本文中我们将深入探讨case语句的使用方法和一些实用的例子,感兴趣的可以了解一下
    2024-01-01
  • linux下怎么解压.tar.gz .tar.bz2命令

    linux下怎么解压.tar.gz .tar.bz2命令

    这篇文章主要介绍了linux下解压.tar.gz .tar.bz2命令的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • Shell脚本查看网卡实时流量

    Shell脚本查看网卡实时流量

    这篇文章主要介绍了Shell脚本查看网卡实时流量,本文直接给出实现代码,需要的朋友可以参考下
    2014-12-12
  • Shell编程条件测试的实现

    Shell编程条件测试的实现

    Shell脚本的条件测试可以用于测试字符串、文件状态和数字。本文就详细的介绍一下Shell编程条件测试,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • shell脚本打印日期时间的实现示例

    shell脚本打印日期时间的实现示例

    在shell 中,可以使用 `date` 命令打印系统时间,本文主要介绍了shell脚本打印日期时间的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Linux常用命令与命令缩写整理

    Linux常用命令与命令缩写整理

    这篇文章介绍了Linux的常用命令与命令缩写,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Shell脚本实现温和方式重启Centos系统

    Shell脚本实现温和方式重启Centos系统

    这篇文章主要介绍了Shell脚本实现温和方式重启Centos系统,本文脚本主要目的是用于重启后台比较重要的进程,需要的朋友可以参考下
    2014-12-12
  • shell 编写一个带有进度条的程序安装脚本

    shell 编写一个带有进度条的程序安装脚本

    这篇文章主要介绍了shell 编写一个带有进度条的程序安装脚本,通过使用Shell脚本,我们可以轻松地实现命令行中的进度条功能,从而提高工作效率,感兴趣的可以了解一下
    2023-08-08
  • Shell脚本实现判断IP地址是否在一个ip段内代码分享

    Shell脚本实现判断IP地址是否在一个ip段内代码分享

    这篇文章主要介绍了Shell脚本实现判断IP地址是否在一个ip段内代码分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-06-06
  • shell传参并将参数传递给sql文件的方法

    shell传参并将参数传递给sql文件的方法

    今天小编就为大家分享一篇shell传参并将参数传递给sql文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06

最新评论