Ssh
在遠端伺服器終止連接之前執行遠端命令
所以我已經搜尋了這個,但我沒有找到任何可以解決這個問題的東西。我經常通過 ssh 連接到我沒有 sudo 權限的遠端伺服器。
假設連接因不活動或其他原因被遠端伺服器終止/重置。現在我想要的是在遠端伺服器終止我的連接之前它應該執行一個pwd。我知道有一些方法可以延長/防止遠端伺服器終止您的連接,但我希望它在終止之前執行我選擇的自定義命令
在 Bash 中,您可以設置一個陷阱,
EXIT
讓 shell 在退出時執行命令:trap 'do something here' EXIT
這適用於由於輸入結束(
^D
)、超時而退出的 shell 、被 a或TMOUT
拍攝的shell 以及 SSH 客戶端死亡的 SSH 上的遠端 shell。SIGTERM``SIGHUP
但是,當通過 SSH(或其他網路連接)執行時,shell 在連接真正關閉之前無法對連接關閉做出反應,因此它列印的任何內容都不會到達另一端。你可以執行一個命令來修改遠端端的東西,但是像’ 之類的
pwd
東西,它只是列印東西,不會做任何有用的事情。如果您確實想要顯示最後一個工作目錄,您可以讓 shell 在提示符上列印它,並帶有
\w
轉義符。