Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中创建每日日志脚本_Linux_Logging_Scripting - Fatal编程技术网

在linux中创建每日日志脚本

在linux中创建每日日志脚本,linux,logging,scripting,Linux,Logging,Scripting,我试图编写一个脚本,生成一个每日日志文件,但目前,日志文件将所有日志附加到一个文件中,即test.log。我可以生成带有日期扩展名的test.log,但它只是更改了日期,test.log中的日志包含所有日期日志。我如何编写脚本,以提供带有日期扩展名的每日日志生成 NOW=$(date +"%F") LOG_DIR=$OO_LOCAL{log-dir} #CONSOLE_LOG="$OO_LOCAL{console-log}-$NOW.log" CONSOL

我试图编写一个脚本,生成一个每日日志文件,但目前,日志文件将所有日志附加到一个文件中,即test.log。我可以生成带有日期扩展名的test.log,但它只是更改了日期,test.log中的日志包含所有日期日志。我如何编写脚本,以提供带有日期扩展名的每日日志生成

NOW=$(date +"%F")
LOG_DIR=$OO_LOCAL{log-dir}
#CONSOLE_LOG="$OO_LOCAL{console-log}-$NOW.log"
CONSOLE_LOG="/log/springboot/test-$NOW.log"
TMP_DIR=$DIR/tmp
JAR_FILE="/app/$OO_LOCAL{artifact-id}/current/$OO_LOCAL{artifact-id}-$OO_LOCAL{artifact-version}.jar"

CMD="java $JAVA_OPTS $DISABLE_JIT -Djava.io.tmpdir=$TMP_DIR -jar $JAR_FILE 2>&1 >> $CONSOLE_LOG & echo \$! >$PIDFILE"
输出 -rw-r--r--1根根根8453324 Jun 30 11:38 test-2020-06-29.log -rw-r--r--1根根根11864615 Jul 2 15:36 test-2020-06-30.log
-rw-r--r--1根根1179215 Jul 3 12:25 test-2020-07-02。log

首先,如果您提供了一个完整的示例,它会有所帮助,因为有一些变量的定义并不明显。在CMD行中,您使用的是append操作符而不是overwrite操作符(请参阅),但这只是问题的一部分。您应该首先查看cron作业的创建和测试,以了解您希望重现的任何事件。看,还有一个cron作业

以下是过去我是如何记录档案日期的。这些行属于一个文件,该文件是cron作业每晚运行的脚本的一部分

# get current directory name
ABSDIR=`pwd`
DIR=`basename $ABSDIR`
# form the name of the tarball from the directory name and the date
TBNAME="$DIR"-`date +"%F.%H.%M.%S"`.tgz
当我想要创建带有时间戳的tarball时,我经常使用脚本本身

有些人可能不喜欢这种格式,在这种情况下,您可以将背面记号转换为$(),例如:


NOW=$(date+%F)LOG_DIR=$OO_LOCAL{LOG DIR}}CONSOLE_LOG=“$OO_LOCAL{CONSOLE LOG}-$NOW.LOG”CONSOLE_LOG=“/LOG/springboot/intl-e2e-sc-visibility-kpi-$NOW.LOG”TMP_DIR=$DIR/TMP JAR_FILE=“/app/$OO LOCAL{artifact id}/current/$OO LOCAL{artifact id}-$OO LOCAL{artifact id}-$OO LOCAL}-$OO artifact version}.JAR=“$progpidu LOCAL}-$pid}}我不知道如何设置cron作业。我有输出文件,但它每天都被追加,但我想每天创建一个新文件,上面有日期。你知道怎么做到吗?这是现有的脚本
# get current directory name
ABSDIR=$(pwd)
DIR=$(basename $ABSDIR)
# form the name of the tarball from the directory name and the date
TBNAME="$DIR"-$(date +"%F.%H.%M.%S").tgz