在Bash脚本中创建一个日志

时间:2014-07-28 08:24:55

标签: linux bash file logging status

有两个shell脚本:A.sh和B.sh

另一个脚本C.sh将创建一个包含以下内容的日志:

  • 主机名
  • 用户名
  • 剧本名称
  • 执行功能的时间
  • 功能描述
  • 状态

Example:

<My hostname>
<My username>

A.sh
12:09:00 p.m "Initialize shell" OK
12:10:00 p.m. "Creating file" OK
12:11:00 p.m. "Creating backup" FAIL

B.sh
01:00:00 p.m "Initialize shell" OK
01:01:00 p.m. "Creating file" FAIL
01:02:00 p.m. "Creating backup" FAIL

重点是获取每个函数的成功/失败状态以及执行的时间并将其全部保存到日志文件中。如何检查shell中每个函数的状态?

1 个答案:

答案 0 :(得分:1)

1最简单的方法是从独立文件中的脚本中刷新输出,然后将此日志文件包含到由C.sh生成的公共文件中。 您可以在A.sh,B.sh中使用tee * nix函数来填充日志文件并仅过滤您需要的记录。 此外,可以通过set +o errexitset +o pipefail在脚本中获取错误,然后在函数后面检查函数执行的状态:

set +o errexit
func.sh param1 param2
if [ $? -ne 0 ] ; then
    echo "FAIL" | tee 1.txt
    exit 1 # if you need interrupt execution
else
    echo "OK" | tee 1.txt
fi