如何在日志中的每一行之前记录时间戳?
How to log timestamp before every line in log?
我想每 5 秒记录一次内存使用情况,因此我正在使用 free -s 5 -m> memory.log
如何在此日志中的每个谎言之前添加时间戳?
预期输出:
Tue Jan 21 06:50:44 UTC 2020
total used free shared buffers cached
Mem: 7809 6268 1540 0 57 3497
-/+ buffers/cache: 2713 5095
Swap: 0 0 0
Tue Jan 21 06:50:49 UTC 2020
total used free shared buffers cached
Mem: 7809 6268 1540 0 57 3497
-/+ buffers/cache: 2713 5095
Swap: 0 0 0
我发现没有单行命令可以做到这一点,这可以通过编写和执行脚本来实现。
所以 shell 脚本是:
#!/bin/bash -e
echo " date time $(free -m | grep total | sed -E 's/^ (.*)//g')" >> /var/log/memory_utilisation.log
while true; do
echo "$(date '+%Y-%m-%d %H:%M:%S') $(free -m | grep Mem: | sed 's/Mem://g')" >> /var/log/memory_utilisation.log
sleep 5
done
我想每 5 秒记录一次内存使用情况,因此我正在使用 free -s 5 -m> memory.log
如何在此日志中的每个谎言之前添加时间戳?
预期输出:
Tue Jan 21 06:50:44 UTC 2020
total used free shared buffers cached
Mem: 7809 6268 1540 0 57 3497
-/+ buffers/cache: 2713 5095
Swap: 0 0 0
Tue Jan 21 06:50:49 UTC 2020
total used free shared buffers cached
Mem: 7809 6268 1540 0 57 3497
-/+ buffers/cache: 2713 5095
Swap: 0 0 0
我发现没有单行命令可以做到这一点,这可以通过编写和执行脚本来实现。
所以 shell 脚本是:
#!/bin/bash -e
echo " date time $(free -m | grep total | sed -E 's/^ (.*)//g')" >> /var/log/memory_utilisation.log
while true; do
echo "$(date '+%Y-%m-%d %H:%M:%S') $(free -m | grep Mem: | sed 's/Mem://g')" >> /var/log/memory_utilisation.log
sleep 5
done