
シェルスクリプト内で、シェルスクリプトが最後に実行された時刻を見つけようとします。私は試した:
ls -laru
ls -lart
ただし、これらのコマンドはすべて、最後の変更時間と最後のアクセス時間を提供します。シェルスクリプトが最後に実行された時間を探しています。
答え1
このコマンドを試してみてくださいdate
。オプションなしで日付を実行すると、次の出力のようにシステムの日付と時刻が出力されます。
date
2001年2月8日木曜日16:47:32 MST
日付出力をファイルに保存し、そのファイルでスクリプトの日付を確認できます。スクリプトの最後の実行時間を確認するには、次のファイルを確認してください。
startTime=$(cat time.start)
//code to check the value of last run time goes here
date > time.start //save the time in default format
ここにはさまざまな日付形式があります。http://man7.org/linux/man-pages/man1/date.1.html
答え2
このコードを使用して問題を解決できました。
inode=$(find /path/ -maxdepth 1 -type f -iname '*error*.log' -printf '%T@ %i\n' | sort -rn | awk '{print $2;exit;}')
newest=$(find /path/ -maxdepth 1 -inum "$inode")