タイムスタンプのあるファイルにbash_historyを書き込む

タイムスタンプのあるファイルにbash_historyを書き込む

要件は、コマンドの実行中に特定のコマンドの日付と時刻を含むファイルにコマンドライン履歴をキャプチャすることです。

以下のスクリプトは日付と時刻とともに履歴をキャプチャしますが、現在の日付と時刻を前のコマンドに割り当てます。また、履歴出力ファイルの増分バックアップを実行するようにスクリプトを拡張したいと思います。

#!/bin/bash
. ~/.bash_profile
HISTFILE=~/.bash_history
set -o history
history >/home/user/hist_`date "+%d%b%y%T"`

ベストアンサー1

正確には必要ではありませんが、bash履歴のすべての行にタイムスタンプを自動的に追加できます。次の簡単な設定:

HISTTIMEFORMAT="%d%b%y%T "

historyコマンドパラメータなしこれにより、履歴項目が次のように表示されます。

23Jul1515:48:14 ls -ld .

ただし、このhistory -wコマンドは常に履歴ファイルに書き込まれます。内部形式での:

#1437659315
ls -ld .

つまり、2行の最初の行には、#コマンドと混同しないように「起源」(つまり1970年1月1日)以降の時間を秒単位で表示し、前にaを付けます。

おすすめ記事