開発環境で時間経過によって動きが変わる機能の動作確認をするために意図的にサーバ内時間をずらす機会があったので、方法をメモしておきます。 対象となる実行環境はCentOS6、CentOS7、AmazonLinux、AmazonLinux2です。

※ 注意
サーバの時間のずらすことによってどんな悪影響が起こるかわからないため、実施する場合は自己責任でお願いします。

CentOS6、AmazonLinuxの場合

CentOS6及び、AmazonLinuxではntpdが動いていると思います。 ntpdが動いたままでは時刻を変更してもすぐに戻されてしまうので予め、ntpdを止めた後時刻の変更を行う。 時刻の変更はdateコマンドを用いて行う。

# コマンドはrootユーザで実行する
# ntpdを停止
service ntpd stop

# 2019/06/15 20:00:にセットする
date -s "06/15 20:00 2019"

# 確認が終了したら時間を元に戻す
service ntpd start

CentOS7、AmazonLinux2の場合

CentOS7、AmazonLinux2では標準でntpdの代わりにchronydがインストールされている。 CentOS6のntpd同様chronydが時刻を同期しないよう、予めデーモンを停止する。 時刻の変更はdateコマンドを用いて行う。

# コマンドはrootユーザで実行する
# chronydを停止
systemctl stop chronyd

# 2019/06/15 20:00:にセットする
date -s "06/15 20:00 2019"

# 確認が終了したら時間を元に戻す
systemctl start chronyd

まとめ

dateコマンドを使ってLinuxサーバの時刻を変更してみました。
このメモが誰かの役に立てば幸いです。