バッシュファイルの履歴

バッシュファイルの履歴

実行中のシステムプロセス(例:netstat、syslog、arpなど)のデータを取得するためにbashファイルを実行しています。歴史を除いて、すべてがうまくいった。履歴をテキストファイルとして保存しようとしています。

cp ~/. bash_history $path/filename.txt   

残念ながら、これは私に完全な歴史を提供しません。コマンドを手動で入力する場合

history > /media/root/usb/filename 

私は全く異なる結果を得ました。私の目標は、1つのbashファイルからプロセス全体を自動化することです。これを行う方法はありますか?そして、記録の日時も知りたいです。

答え1

@Jesse_bが述べたように、.bash_history現在のセッションを除くすべての以前のシェルセッションを含む履歴は、コマンドで確認できますhistory。したがって、まず次のように現在の履歴を更新する必要があります。

history -a

その後、別のファイルにコピーできます。

cp ~/.bash_history $path/filename.txt   

各履歴項目の前にタイムスタンプを追加するには、$ HISTTIMEFORMAT変数を設定してください。

HISTTIMEFORMAT="%F %T: "

答え2

履歴の日付と時刻を取得するには、次のコマンドを実行します。

HISTTIMEFORMAT="%d/%m/%y %T "
echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
source ~/.bashrc
history

Bash レコードでタイムスタンプを表示する方法

これが私に完全な記録を提供しないのはなぜですか?

回答を見る@マイケルホーマー

常にすぐに書き込むようにするには、PROMPT_COMMAND変数にコマンドを配置できます。

export PROMPT_COMMAND='history -a'

関連情報