1

bash スクリプトを使用して、ファイルの変更間隔が 15 秒であることを確認しようとしています。私が持っている場合:

-rw-rw-r--  1 root      root           2739 Jun 05 00:43 1370392620.log
-rw-rw-r--  1 root      root           2739 Jun 05 00:37 1370392623.log
-rw-rw-r--  1 root      root           2739 Jun 05 00:37 1370392626.log
-rw-rw-r--  1 root      root           2739 Jun 05 00:37 1370392630.log

これらのタイムスタンプの秒差を取得し、それらが 15 秒離れていることを確認できるようにする必要があります。

4

1 に答える 1

0
last=0
ls -rt *.log |
while read fname 
do
  epoch_seconds=$(date -r $fname +%s)
  if [ $last -gt 0 ]; then
    printf "%20s   diff: %10d   %13d\n" "$fname"  $(( $epoch_seconds - $last )) $epoch_seconds
    [  $(( $epoch_seconds - $last )) -ne 15 ]  && echo "file mtime difference error"
    last=$epoch_seconds     
  else
    printf "%20s   start %10d   %13d\n" "$fname" 0  $epoch_seconds
    last=$epoch_seconds
  fi

done

コマンド (GNU)はdate -f filenamemtime (最後に書き込まれた時間、つまり終了時間) を返して、+%s与えられたエポック秒としてフォーマットされます。次のファイルから最初のファイルの mtime を減算ls -rtし、逆の mtime でファイルを並べ替えます。

于 2013-06-07T02:55:59.567 に答える