shell脚本打印日志方法
来源:互联网 发布:家庭网限制80端口吗 编辑:程序博客网 时间:2024/05/29 14:07
作者:【吴业亮】云计算开发工程师
博客:http://blog.csdn.net/wylfengyujiancheng
在shell脚本执行过程中如果没有日志记录,特别是脚本比较长的情况下在执行完再定位问题很难发现问题原因,因此在脚本中增加日志显得十分重要。如何在日志中记录是哪个用户什么时间执行的哪个脚本,执行结果又是什么呢?下面介绍日志打印方法
example 1
调用log_info函数,如果希望只记录相关信息,不对命令执行结果进行判断
判断/etc/passwd是否存在,如果存在就记录一条日志“/etc/passwd is exist.”
if [ -f /etc/passwd ]then echo -e "\033[32m /etc/passwd is exit \033[0m" log_info "/etc/passwd is exist." fi
example 2
调用fn_log函数,如果命令执行成功就回显绿色信息,失败回显红色信息。并在日志中记录成功或失败信息。
rm -f /tmp/messages && cp -a /var/log/messages /tmpfn_log "rm -rf /tmp/message && cp -a /var/log/message /tmp"ping -c 3 10.10.10.10 fn_log "ping -c 3 10.10.10.10 "
example 3
如果脚本在执行过程中用户按了CTR+C 终止脚本执行,回显“DO NOT SEND CTR + C WHEN EXECUTE SCRIPT !!!!”,并在日志中记录。
记录日志函数代码如下:
#!/bin/bash#log path is /var/log/openstack-kilo#if commod execute sucessed,it will return 0 else return 1# Copyright 2014 Intel Corporation, All Rights Reserved.function log_info (){if [ -d /var/log ]then mkdir -p /var/log fiDATE_N=`date "+%Y-%m-%d %H:%M:%S"`USER_N=`whoami`echo "${DATE_N} ${USER_N} execute $0 [INFO] $@" >>/var/log/openstack-kilo #执行成功日志打印路径}function log_error (){DATE_N=`date "+%Y-%m-%d %H:%M:%S"`USER_N=`whoami`echo -e "\033[41;37m ${DATE_N} ${USER_N} execute $0 [ERROR] $@ \033[0m" >>/var/log/openstack-kilo #执行失败日志打印路径}function fn_log () {if [ $? -eq 0 ]then log_info "$@ sucessed." echo -e "\033[32m $@ sucessed. \033[0m"else log_error "$@ failed." echo -e "\033[41;37m $@ failed. \033[0m" exit 1fi}trap 'fn_log "DO NOT SEND CTR + C WHEN EXECUTE SCRIPT !!!! "' 2
0 0
- shell脚本打印日志方法
- shell脚本打印日志方法
- shell脚本打印日志方法
- 输出执行操作和打印日志的shell脚本
- Shell脚本:打印九九乘法表
- 日志压缩shell脚本
- shell脚本学习日志
- shell脚本颜色打印输出
- shell脚本打印日期时间
- shell脚本颜色打印输出
- shell脚本初学-打印helloword
- QT-窗口打印debug信息,本地日志保存,以及执行shell脚本并且把信息打印在窗口
- C++ 打印日志方法
- 日志分析的shell脚本
- shell 脚本nginx日志分割
- shell脚本备份nginx日志
- shell脚本日志统计笔记
- 删除日志的shell脚本
- js中对按键的监听
- #include“头文件“的相对路径是相对谁的路径
- 调百度接口,根据地质获取经纬度
- JFinal中的AOP
- ajax与HTML5 history pushState/replaceState实例
- shell脚本打印日志方法
- 线性布局上的一个小错误
- 动态规划(dynamic programming)初步入门
- android UI进阶之实现listview的分页加载
- Oracle 的自治事务 AUTONOMOUS TRANSACTION
- Robot Framework 自动化测试框架安装
- 基于c++11设计一个定时器timer
- PCM data flow - part 2: ASoC data structure
- android中的内外部存储