導入
RHELやAmazonLinuxなどのLinuxサーバのメンテナンス作業を行う際に、事前に仕込んでおくだけでトラブル対応力が大きく変わる設定があります。今回はその中でも、地味ながら効果の大きい
「コマンド履歴にタイムスタンプ(年月日時分秒)を残す設定」を整理しました。
設定内容
コマンド履歴の年月日時分秒がわかるようにする。
概要
メンテナンス中に障害が発生した場合、調査で最も重要なのは以下です。
- 「いつ」何をしたのか
- 「どの操作」がトリガーになったのか
しかしデフォルトのBash履歴(history)は、時刻情報を持たないため、「このコマンド、いつ実行したっけ?」という状況に陥りがちです。
そこで、Bashの履歴機能(.bash_history)に対して設定を追加し、実行日時を記録するようにします。
これにより、ログ(/var/log系)との突き合わせや時系列分析が一気に楽になります。
設定手順
- viコマンドで「.bashrc」を編集
- vi ~/.bashrc
- 以下の設定を記述
- export HISTSIZE=500000
- export HISTFILESIZE=500000
- export HISTCONTROL=””
- shopt -s histappend
- export HISTTIMEFORMAT=’%F %T ‘
- sourceコマンドで「.bashrc」を読み込む。
- source ~/.bashrc
- viコマンドで「.bash_logout」を編集
- vi ~/.bash_logout
- 以下の設定を記述
- history -a
確認手順
- 「history」コマンドを実行し、実行コマンドの履歴を時系列で出力
- history
実運用でのメリット
この設定が効いてくるのは、以下のような場面です。
- 障害発生時の原因調査(ログとの突き合わせ)
- 複数人運用時の操作トレース
- 作業証跡の簡易ログ代替
- 「あの時何やった?」問題の解消
特に本番環境では、「ログ × コマンド履歴(時刻付き)」の組み合わせが、調査速度を大きく左右します。
まとめ
事前に設定しておくことで、安心のメンテナンス作業を行いましょう。
