gpt4 book ai didi

linux - bash脚本: Apache Server is running or not

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:56 25 4
gpt4 key购买 nike

我尝试使用 bash 脚本实现以下步骤:

1) 检查Apache服务器的状态。

2) 如果它已启动并正在运行,则无需执行任何操作。如果不是,则转到步骤 3。

3)如果服务器没有运行,则先发送失败邮件并重新启动服务器

4)重启后,再次检查状态,并发送确认邮件

这是我的代码:

#checking if Apache is running or not
ps auxw | grep apache2 | grep -v grep > /dev/null

if [ $? != 0 ]
then
mailx -s "Apache web server is down, Trying auto-restart" -$

# web server down, restart the server
sudo /etc/init.d/apache2 restart > /dev/null
sleep 10

#checking if apache restarted or not -- This is not working
ps auxw | grep apache2 | grep -v grep > /dev/null
if [ $? = 0 ]
then
mailx -s "Apache restarted succesfully" -r "$SENDEREMAIL" "$NOTIFYEMAIL" < /$
else
mailx -s "Restart Failed, try restarting manually" -r "$SENDEREMAIL" "$NOTIFYEMAIL" <$
fi
fi

代码在步骤 3 之前工作正常,在步骤 4 时失败/无法工作,即脚本在重新启动并发送确认电子邮件后无法检查服务器的状态。有人可以告诉我哪里出了问题吗?

最佳答案

试试这个:

#checking if Apache is running or not

if ! pidof apache2 > /dev/null
then
mailx -s "Apache web server is down, Trying auto-restart"

# web server down, restart the server
sudo /etc/init.d/apache2 restart > /dev/null
sleep 10

#checking if apache restarted or not
if pidof apache2 > /dev/null
then
message="Apache restarted successfully"
else
message="Restart Failed, try restarting manually"
fi
mailx -s "$message" -r "$SENDEREMAIL" "$NOTIFYEMAIL"
fi

注意:每个 mailx 行都有一个尾随 -$ , < /$ ,或<$ ——这些看起来像是拼写错误,被删除了。

关于linux - bash脚本: Apache Server is running or not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36685209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com