如果sshd关闭/失败,则自动启动sshd

时间:2015-07-11 08:17:50

标签: linux bash ssh cron

我正在尝试为启动OpenSSH服务器的cronjob创建一个Bash .sh脚本,如果它已关闭或失败。

昨晚SSH服务器已关闭,当我今天尝试访问它(从工作中)时,连接被拒绝了。 / var / log / messages中没有跟踪失败的痕迹。

所以问题是 - 如何判断sshd正在运行,如果不是“sudo service ssh start”呢?

提前致谢!

3 个答案:

答案 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)

正如其他人所说的那样,在没有找到导致这个问题的原因的情况下启动它是不正确的,但我为你想要的脚本写了一些帮助

  1. 首先应检查openssh服务器的状态,例如:
  2.   

    ps -aux | grep ssh

    1. 然后写一个if来检查它是否已关闭

      您可以使用上一步的结果进行检查。

    2. 如果失败,请启动它

    3.   

      sudo service ssh start