Linux shell脚本输出日志
#### log_correct函数打印正确的输出到日志文件
function log_correct () {
DATE=`date "+%Y-%m-%d %H:%M:%S"` ####显示打印日志的时间
USER=$(whoami) ####那个用户在操作
echo "${DATE} ${USER} execute $0 [INFO] $@ >> home/username/successLog.txt" ######($0脚本本身,$@将参数作为整体传输调用, >> 将输出结果以追加的方式添加重定向到本地文件中)
}
#### log_error函数打印错误的输出到日志文件
function log_error ()
{
DATE=`date "+%Y-%m-%d %H:%M:%S"`
USER=$(whoami)
echo "${DATE} ${USER} execute $0 [ERROR] $@ >> home/username/errorLog.txt" # 跟上面相同,只是将错误的消息进行重定向
}
使用时通过函数调用的方式即可:
log_correct 传入的参数
或
log_error 传入的参数
shell脚本案例如下:
#!/bin/bash
2 startDate=$1
3 endDate=$2
4
5 ####log_correct函数打印正确的输出到日志文件
6 function log_correct () {
7 DATE=`date "+%Y-%m-%d %H:%M:%S"` ####显示打印日志的时间
8 USER=$(whoami) ####那个用户在操作
9 echo "${DATE} ${USER} execute $0 [INFO] $@" >> /home/***/successLog.log ######($0脚本
本身,$@将参数作为整体传输调用, >>将输出结果以追加的方式添加重定向到本地文件中(地址采用绝对
路径))
10 }
11
12
13 function log_error ()
14 {
15 DATE=`date "+%Y-%m-%d %H:%M:%S"`
16 USER=$(whoami)
17 echo "${DATE} ${USER} execute $1 [ERROR] $@" >> /home/***/errorLog.log
18 }
19
20 if [ $# -eq 2 ];
21 then
22 log_correct "执行的开始日期为: ${startDate} 结束日期为: ${endDate}"
23 else
24 log_error "请输入执行的开始时间和结束时间,输入的两个日期参数格式必须是yyyy-MM-dd"
25 fi
创建一个.sh的脚本进行执行,结果为:
-
当不输入日期参数时:
[webedit@bigdata-client-m220-106 ~]$ sh shelllog2.sh 2021-12-20 16:41:50 webedit execute shelllog2.sh [ERROR] 请输入执行的开始时间和结束时间,输入的两个日期参数格式必须是yyyy-MM-dd
-
当输入两个日期参数时
[webedit@bigdata-client-m220-106 ~]$ sh shelllog2.sh 2021-12-19 2021-12-20 2021-12-20 16:43:42 webedit execute shelllog2.sh [INFO] 执行的开始日期为: 2021-12-19 结束日期为: 2021-12-20
同时查看输出重定向的文本文件,也可以查看到对应的输出文件内容:
可以以此来模拟日志输出的方式。