毎日cronjobとして実行し、すべての終了と再起動を記録するスクリプトを作成しようとしています。私はこれを見つけましたが、grepは無視されているようで、スクリプトの出力はlast -x shutdown reboot
。
set ydate = $(date --date yesterday “+%b %d”)
last -x shutdown reboot | grep "$ydate" >>/var/log/down
前日の再起動とシャットダウンのみをキャプチャするにはどうすればよいですか?
答え1
これが解決策かもしれません:
#!/bin/bash
YEST=$(date "--date=${today} -1 day" +%Y%m%d235959)
YEST_ONLY=$(date "--date=${today} -1 day" +"%b %e")
last -t $YEST -x shutdown reboot | grep "$YEST_ONLY"
- 1行目:昨日の日付をフォーマットで出力します
YYYYMMDDHHMMSS
。これは、Expectがパラメータ形式で指定されるlast
方法です。-t
- 行2:
Mon DD
昨日の形式を作成します。なぜ?なぜなら、-t
fromはlast
特定の日付を検索しないからです。時間を取得してその時間を検索します。そして以前のリンク項目です。 - 最後に、昨日
last
と前のコンテンツとshutdown
ログreboot
を表示し、昨日をフィルタとしてgrepします。
はい。last
特定の日付の日付パラメータを持つことが可能であることに同意します。