从BASH中的日志测量经过的时间

时间:2012-11-30 09:58:30

标签: bash

我想查看rsnapshot,目录删除过程的经过时间

Rsnapshot日志格式(我用grep过滤了这个):

cat /var/log/rsnapshot | grep -A 1 "/bin/rm"

[21/Nov/2012:07:41:24] /bin/rm -rf /mnt/sdb/rsnapshot/daily.delete/
[21/Nov/2012:09:47:50] WARNING: /usr/local/bin/rsnapshot -v daily: completed, but with some warnings

然后只有时间:

cat /var/log/rsnapshot | grep -A 1 "/bin/rm" | awk '{ print $1 }' | cut -b 14-21 | uniq
07:41:24
09:47:50

但是我不确定如何使用date命令减去时间。

请告诉我是否有更好/更有效的方法在BASH中这样做,因为我还在学习曲线上。

1 个答案:

答案 0 :(得分:2)

使用date命令,语法如下:

NEW=`date --date "$NEW_DATE" +%s`
OLD=`date --date "$OLD_DATE" +%s`
diff=$((NEW-OLD))

这会让你在几秒钟内有所不同...... 然后你可以轻松地取模60来分隔秒,小时,分钟等。