Bashスクリプトの履歴コマンド

Bashスクリプトの履歴コマンド

履歴はシェル組み込みなので、BASHスクリプトでは使用できません。それでは、BASHスクリプトを使用してこれを達成する方法はありますか?
私があなたのために準備したスクリプトは次のとおりです。

#!/bin/bash
history |  tail -100 > /tmp/history.log
cd /tmp
uuencode history.log history.txt  | mail -s "History log of server" [email protected]

ベストアンサー1

デフォルトでは、Bashは非対話型シェルで履歴を無効にしますが、オンにすることができます。

#!/bin/bash
HISTFILE=~/.bash_history
set -o history
history | tail …

ただし、そのサーバーのアクティビティを監視しようとすると、シェル履歴は役に立ちません(記録に表示されないコマンドを実行するのは簡単ではありません)。バラよりLinuxですべてのプロセス開始を記録する方法

スクリプトをデバッグする場合、シェル履歴は有用な情報を得る最善の方法ではありません。より良いツールは、set -xスクリプトの上部近くに配置されたデバッグトレースツールです。トレースは標準エラーに記録されます。

おすすめ記事