場合によっては、SSHを介してボックスにアクセスし、いくつかのスクリプトを実行してシステムを変更します。セッションの終了時に明示的に(たとえばexit
、シェルからログアウトする)、または暗黙的に(たとえば、SSHセッションタイムアウトのため)、この変更をキャンセルしたいと思います。
これを行うために設定できるものはありますか?
Stratmanの例として、ファイルの作成/etc/foo
と同時にrm /etc/foo
sshセッションの終了時に特定の時点で作業を実行するクリーンアップスクリプトを登録したいとします。
ベストアンサー1
2つの方法:
ワンタイムタスクを実行するにはトラップを設定できますEXIT
。
trap 'rm /etc/foo' EXIT
現在のシェルが終了すると、与えられたコードが実行されます。トラップはインタラクティブプロンプトで設定したり、$HOME/.bash_profile
毎回発生したい場合にも設定できます(トラップ設定に注意してください)。再び以前に設定されたトラップは削除されます。)削除する実行前のトラップtrap - EXIT
。
別の方法は、必要な場合です。いつも対話型ログインシェルが終了したときに特定の一連のコマンドを実行するには、そのコマンドを に配置します$HOME/.bash_logout
。
このファイルは、対話型ログインシェルが終了したとき、または非対話型ログインシェルが実行されたときに実行されますexit
。