注销时运行脚本

注销时运行脚本

有时我会通过 ssh 进入一个盒子,然后运行一些脚本来更改系统。我想在会话结束时显式(例如,通过exit注销 shell)或隐式(例如,因为我的 ssh 会话超时)撤消此更改。

我可以设置一些东西来完成这个任务吗?

作为一个稻草人的例子,假设我创建了一个文件/etc/foo,同时我想注册一个清理脚本,该脚本rm /etc/foo在 ssh 会话结束时的某个时刻执行操作。

答案1

两种方式:

如果你想做一次性的事情,你可以设置一个EXIT陷阱:

trap 'rm /etc/foo' EXIT

当当前 shell 退出时,这将运行给定的代码。可以在交互式提示符下设置陷阱,或者$HOME/.bash_profile如果您想让它每次都发生(请注意,设置陷阱再次将移除之前设置的陷阱)。您可以消除执行之前的陷阱trap - EXIT

另一种方法是如果你想总是当交互式登录 shell 退出时运行一组特定的命令,您可以将这些命令放在$HOME/.bash_logout.

当交互式登录 shell 退出或非交互式登录 shell 执行时,将执行此文件exit

相关内容