向日志文件添加时间戳?

向日志文件添加时间戳?

我正在运行一个脚本文件。我在脚本中编写了一个 while 循环,在其中管道化了多个命令,例如awksed最后我使用运算符将​​输出写入文件>。我试图在文件的起始行添加时间戳(我没有附加文件)。

每次运行脚本时,它都应该将时间戳写入文件中,如下所示:

时间戳

文件数据

答案1

我说创建第二个脚本,如下所示:

#!/bin/bash
echo -e "$(date)\n" # of course format date to your needs
cat <&0
exit $?

这将像这样工作:(... all your commands & pipes...) | new_script >output.file

解释:

首先回显日期和换行符,然后连接 STDIN,最后使用最后一个(猫的)退出代码退出。

答案2

最简单的方法可能是简单地将时间通过日期写入文件,然后将数据附加到文件中,如下所示:

date > file
your_code >> file

查看日期的联机帮助页,找到适合您的用例的正确格式

答案3

在您的行之后或之前添加此内容`date "+%Y-%m-%d"`,例如 2016-04-26

在你的代码中printf "this is the output\t`date "+%Y-%m-%d"`"

将读作:

这是输出 2016-04-26

echo你也可以使用这个

你可以做其他类似的事情:

`date "+%b%d"`例如 4 月 26 日

对于其他格式检查man date

附加信息:

`(反引号):命令替换

` 字符(位于带 ~ 的键上)在 shell 命令中使用时非常重要。这个 ` 表示无论在哪里使用它都需要命令替换。因此,每当使用 ` 时,这些反引号标记包含的命令的任何部分都将被执行(就好像它是唯一的命令一样),然后该命令的结果将被替换为您键入的原始 shell 命令。下面解释得很清楚

来源:http://www.codecoffee.com/tipsforlinux/articles/26-2.html

答案4

“记录器”

您可能还想看看logger,这是一个有点被忽视的命令,用于以系统的标准日志输出格式将消息写入系统日志(或日志)。如果您的应用程序维护自己的日志文件,这对您没有帮助,但根据具体情况,使用标准系统日志记录工具可能有良好的设计原理。只是为了以防万一,因为logger为您添加了时间戳。

相关内容