我从ssh user@server连接到一台安装了CentOS 6.10的服务器......
而且,我在这个服务器上有一个bash脚本,命名为“jamaica.sh“,代码是......
# !/bin/bash
rm -rf jamaica.sh
很简单,但问题是。我需要找到一个命令来删除jamaica.sh,如果ssh连接下来,当我运行“退出”或当我关闭窗口。
类似的东西...
if $(service sshd status | grep "running") == false
then
rm -rf jamaica.sh
fi
我能找到一个方法来做这件事吗?
2条答案
按热度按时间vfwfrxfs1#
您可以尝试使用bang
!
来否定退出状态,类似于。根据Charles Duffy的评论,不需要grep。
请参阅
help test | grep '^ *!'
个grep --help
brjng4g32#
您可能希望在cron选项卡中实现此功能(运行
crontab -e
):它每五分钟运行一次。使用短路逻辑,
rm
只在systemd系统控制器报告SSH不活动时运行。(我删除了-r
,因为它只需要删除一个目录。)如果您没有运行systemd,请将第一个命令(在
||
之前)更改为service sshd status >/dev/null
。如果您是root用户,您可以尝试先重新启动sshd(在
/etc/crontab
中):(It最好是将较长的命令放在从cron调用的脚本中,而不是直接将逻辑放在其中。第二个示例推动了它,至少对于像我这样坚持80列宽的人来说是这样。)