shell脚本怎么生成运行日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本怎么生成运行日志相关的知识,希望对你有一定的参考价值。

麻烦问一下,怎样才能在运行一个shell脚本的同时生成这个脚本的运行日志,且日志名称为脚本运行当天的日期,并且日志内也记录时间,例如几点几分出了问题、脚本的运行情况。求大神传授!!

参考技术A 自己写的脚本调用的日志打印函数,供参考

在脚本开头的工作
定义日志文件LOGFILE
定义日志序列号文件_LOGSEQ

定义日志函数
log()

#检查是否存在日志文件,如果存在,则检查文件是否过大(20M)
#过大时,切换文件,并将目前的日志序列号保存在_LOGSEQ中。
if [ -f $LOGFILE ];then
LogFileLen=`ls -l $LOGFILE | awk 'print $5'`
if [ $LogFileLen -gt 20971520 ]; then
if [ -f $_LOGSEQ ] ; then
_OrgSeq="`cat $_LOGSEQ`"
if [ $_OrgSeq -gt 98 ];then
LogFileSeq=0
else
LogFileSeq=`expr $_OrgSeq + 1`
fi
else
LogFileSeq=0
fi
echo "$LogFileSeq" > $_LOGSEQ
mv $LOGFILE $LOGFILE.$LogFileSeq
fi
fi
_LogInfo=$1
echo `date +20'%y-%m-%d %H:%M:%S'`" $_LogInfo " >> $LOGFILE 2>&1


需要打日志时调用log函数即可本回答被提问者采纳

如何将shell脚本变为可执行文件

方法一、可以使用gzexe命令直接将shell脚本变成可执行文件,命令为gzexe 后面接要处理的shell文件名。

加密后,用file查看文件类型已经为二进制文件了,执行都可以正常执行的。

方法二、可以使用shc命令将shell脚本变为可执行文件。

1、安装shc

2、加密脚本文件CFLAGS=-static shc -r -f t.sh
CFLAGS指明为static静态编译,因为默认生成的是动态库,在不同的系统可能运行不了。-r也是为了生成的脚本二进制可执行程序能在其它的电脑上运行,-f参数用于指明要编译的脚本文件。

3、正常执行加密后的脚本文件。

4、shc常用参数说明
-e date (指定过期日期)
-m message (指定过期提示的信息)
-f script_name(指定要编译的shell的路径及文件名)
-r   Relax security. (可以在相同操作系统的不同系统中执行)
-v   Verbose compilation(编译的详细情况)

参考技术A chmod +x 文件名 参考技术B chmod a+x yourshell
给执行权限就可以了
./yourshell本回答被提问者和网友采纳
参考技术C chmod 777 ./helloworld.sh

以上是关于shell脚本怎么生成运行日志的主要内容,如果未能解决你的问题,请参考以下文章

shell 脚本执行日志怎么才能带有时间戳

shell脚本每天创建带有时间戳的文件夹并推送时间戳生成的日志

Shell脚本切割日志

shell定期删除日志脚本

shell脚本在后台运行以及日志重定向输出

linux脚本时间变量调用