ログアウト時にスクリプトを実行する

ログアウト時にスクリプトを実行する

場合によっては、SSHを介してボックスにアクセスし、いくつかのスクリプトを実行してシステムを変更します。セッションの終了時に明示的に(たとえばexit、シェルからログアウトする)、または暗黙的に(たとえば、SSHセッションタイムアウトのため)、この変更をキャンセルしたいと思います。

これを行うために設定できるものはありますか?

Stratmanの例として、ファイルの作成/etc/fooと同時にrm /etc/foosshセッションの終了時に特定の時点で作業を実行するクリーンアップスクリプトを登録したいとします。

答え1

2つの方法:

ワンタイムタスクを実行するにはトラップを設定できますEXIT

trap 'rm /etc/foo' EXIT

現在のシェルが終了すると、与えられたコードが実行されます。トラップはインタラクティブプロンプトで設定したり、$HOME/.bash_profile毎回発生したい場合にも設定できます(トラップ設定に注意してください)。再び以前に設定されたトラップは削除されます。)削除する実行前のトラップtrap - EXIT

別の方法は、必要な場合です。いつも対話型ログインシェルが終了したときに特定の一連のコマンドを実行するには、そのコマンドを に配置します$HOME/.bash_logout

このファイルは、対話型ログインシェルが終了したとき、または非対話型ログインシェルが実行されたときに実行されますexit

関連情報