誰かがシステムにログインしようとするたびに、ウェブカメラで写真を撮りたいと思います。私はこれができることを知っています:
mplayer -vo png -frames 1 tv://
誰かがログインに失敗したときにこのコマンドをどのように実行できますか?
答え1
lastb
ログアウトした場合はログイン失敗を記録します/var/log/wtmp
。このファイルの変更を監視したり、または/var/log/wtmp
を使用して出力を取得したりできますinotify-tools
。失敗したログインメッセージが見つかった場合は、いつエラーが発生したのかがわかり、必要なコマンドを実行する条件を生成できます。last
lastb
もっと詳しく:
ファイルを監視するためにファイルが変更されたときにトリガーされます。
while inotifywait -e close_write /var/log/wtmp; do <myscrip>.sh; done
lastb | grep -q "failed login"
その文字列があると、0が出力され、他の出力なしで終了し、これはログイン失敗の状況になります。
次のように、Bashで条件付きifステートメントを作成できます。
if lastb | grep -q "failed login";
then <ascript>.sh;
fi;
/var/log/wtmp
次のように作成する必要があります。touch /var/log/wtmp