Ssh

在遠端伺服器終止連接之前執行遠端命令

  • July 26, 2018

所以我已經搜尋了這個,但我沒有找到任何可以解決這個問題的東西。我經常通過 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轉義符。

引用自:https://unix.stackexchange.com/questions/444719