Linuxのシステム時間を相対的に変更する

Linuxのシステム時間を相対的に変更する

xシステム時間を分単位で変更するスクリプトが必要です。次のようなものです:

#時間 = 12:56
#x = 2

time_boolの場合:
  時間 = 時間 + x
  #時間 = 12:58
それ以外:
  時間 = 時間 - x
  #時間 = 12:54

これは Red Hat のテストの一部ですが、別の OS (おそらく Fedora または CentOS) に移行する必要があるかもしれません。

答え1

単に

if $time_bool; then
    date --set="+${x} minutes"
else
    date --set="-${x} minutes"
fi

の日付文字列構文はGNU date非常に緩やかで、多くのことが許可されています。

Ubuntuでテスト済み。

答え2

簡単な方法は次のようになります。

date --set=@$(( $(date +%s) + 120 ))

(未テスト)

date +%sただし、これは拡張機能であるため、OS 間で動作することを保証することはできません。

このスクリプトは、現在の日付 UTC を取得し、これをエポックからの秒数に変換し、120 秒を追加してから、Unix エポック秒数から日付を設定しようとします。

関連情報