首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在远程服务器终止连接之前执行远程命令

在远程服务器终止连接之前执行远程命令
EN

Unix & Linux用户
提问于 2018-05-18 22:20:30
回答 2查看 205关注 0票数 0

所以我搜索了这个,但是我没有找到任何能解决这个问题的东西。我经常通过ssh连接到远程服务器,在ssh上我没有sudo权限。

假设由于不活动或其他原因,远程服务器终止/重置了连接。现在,我想要的是,在远程服务器终止我的连接之前,它应该运行一个pwd。我知道有一些方法可以延长/阻止远程服务器终止连接,但我希望它在终止之前运行我选择的自定义命令。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-05-18 23:11:46

在Bash中,您可以为EXIT设置一个陷阱,以便在shell退出时运行一个命令:

代码语言:javascript
复制
trap 'do something here' EXIT

它适用于由于输入结束(^D)而退出的shell、通过TMOUT超时、使用SIGTERMSIGHUP拍摄的shell以及在SSH客户端死亡的情况下的远程shell。

但是,当在SSH (或其他网络连接)上运行时,外壳在真正关闭之前无法对连接关闭作出反应,因此它打印的任何内容都不会到达另一端。您可以运行一个命令来修改远程终端上的内容,但是像pwd这样的东西只会打印一些内容,但不会做任何有用的事情。

如果您确实希望显示最后一个工作目录,可以在提示符上使用\w转义将外壳打印出来。

票数 0
EN

Unix & Linux用户

发布于 2018-07-26 10:33:26

伊尔卡丘的回答类似,您可以使用一组命令创建~/.bash_logout,以便在bash登录外壳退出时运行。类似于他的回答中的问题,如果SSH连接被终止,这将不会运行。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/444719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档