cron
毎日実行(作業)し、システムの稼働時間(日のみ)を計算し、数値が定義された値(30など)より大きい場合は、電子メール(uname -a
)を介してシステム情報を送信するスクリプトを生成する必要があります。特定の住所(たとえば)までの日数です[email protected]
。
私は計算を実行し、アクションを取ることができる日付に変換しようとしました。使い始める
uptime | grep -o "up.*day"
命令を下げて詰まった。 CentOS 7.8を使用してください。
助けてくれてありがとう!
答え1
文書はman uptime
この部分を提供します
-s, --since
- システム起動後のyyyy-mm-dd HH:MM:SS
フォーマット
これにより、カウントが開始された絶対日時を取得できます。
uptime -s
2020-02-12 12:37:16
現在の日付/時刻からこの値を減算すると、日数が表示されます。 (日付計算は通常秒単位なので少し複雑です。)
# Seconds at boot
secSince=$(date --date "$(uptime -s)" +%s)
# Seconds now
secNow=$(date +%s)
# Difference
secInterval=$((secNow - secSince))
# Convert to days
daysInterval=$((secInterval / (60*60*24)))
echo "$daysInterval day(s) uptime"
計算された間隔にうるう秒が追加されると、報告された日付は地元の深夜1秒で異なる可能性があります。