shell脚本打印日志

#!/bin/bash

LOG_FILE="/var/log/test.log"
>"${LOG_FILE}"
exec &>>${LOG_FILE}
set -x

第一行是定义日志绝对路径
第二行是先清空日志文件内容
第三行是把当前脚本的标准输出,标准错误输出都重定向到文件LOG_FILE中
第四行是打印每一行shell命令执行
exec是用被执行的命令行替换掉当前的shell进程,且exec命令后的其他命令将不再执行。例如在当前shell中执行exec ls表示执行ls这条命令来替换当前的shell即为执行完后会退出当前shell。但是当exec命令对文件描述符操作的时候,就不会替换shell,而是操作完成后还会继续执行后面的命令。例如第三行,在这里&>>LOG_FILE意思是把标准输出,标准错误输出都重定向到文件LOG_FILE中。
一般只需要在脚本前面加上这几行就可以了,日志内容就是脚本执行命令的全部过程和标准输出,标准错误输出内容。我们也可以自定义自己的打印函数:

#!/bin/bash

LOG_FILE="/var/log/test.log"
exec 2>>${LOG_FILE}

function my_log()
{
    local curtime=`date "+%Y-%m-%d %H:%M:%S"`
    echo "$curtime $*">> ${LOG_FILE}
}

main()
{
    my_log "hello world"
}

main "$@"

可以看到我们开始先把标准错误输出都重定向到文件LOG_FILE中,我们自定义的打印函数前面会带上当前时间戳。

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值