将带有时间戳的每个命令的输出存储在Linux中的文件中

时间:2018-04-26 06:48:53

标签: linux bash

有没有办法将每个命令的输出存储在带有时间戳的日志文件中? 我尝试过这个脚本,但它没有做任何事情。

mkdir /home/my_name/demo |&  tee /home/my_name/My_log.log

2 个答案:

答案 0 :(得分:2)

mkdir没有输出,因此您不会看到任何输出。此外,您需要使用ts来获取时间戳。

echo hello | ts '[%Y-%m-%d %H:%M:%S]' | tee ~/my_name/My_log.log

ts可能未安装在您的系统上,但可以在包moreutils中找到。

如果您要记录多个命令,可以将它们放在脚本中,然后通过上面的管道输出脚本的输出:

myscript | ts '[%Y-%m-%d %H:%M:%S]' | tee ~/my_name/My_log.log

答案 1 :(得分:1)

使用>>运算符将输出写入file.You也可以使用tee命令。唯一的区别是>>不会将输出写入STDOUT。

让您的脚本或命令执行如下所示:

customScript | ts -r '[%Y-%m-%d %H:%M:%S]' | tee -a /home/my_name/My_log.log

customScript | ts -r '[%Y-%m-%d %H:%M:%S]' >> /home/my_name/My_log.log