我正在尝试为启动OpenSSH服务器的cronjob创建一个Bash .sh脚本,如果它已关闭或失败。
昨晚SSH服务器已关闭,当我今天尝试访问它(从工作中)时,连接被拒绝了。 / var / log / messages中没有跟踪失败的痕迹。
所以问题是 - 如何判断sshd正在运行,如果不是“sudo service ssh start”呢?
提前致谢!
答案 0 :(得分:2)
#!/bin/bash
service="ssh"
if (( ! $(sudo service ssh status | cut -d" " -f 3 | cut -d"." -f 1) == "running" ))
then
sudo /etc/init.d/ssh restart
fi
我已将LogLevel更改为Verbose,我希望下次我能跟踪有关sshd失败的更多线索。
答案 1 :(得分:2)
我实施以下内容:
[ $(sudo service ssh status | grep running | grep -v grep | wc -l) == 0 ] && sudo /etc/init.d/ssh restart
答案 2 :(得分:0)
正如其他人所说的那样,在没有找到导致这个问题的原因的情况下启动它是不正确的,但我为你想要的脚本写了一些帮助
ps -aux | grep ssh
然后写一个if来检查它是否已关闭
您可以使用上一步的结果进行检查。
如果失败,请启动它
sudo service ssh start