Linux自愈脚本检查一些进程

Linux自愈脚本检查一些进程,linux,self-healing,Linux,Self Healing,我是Linux脚本的新手,我需要帮助创建一个脚本,检查服务器上已安装的一些进程,如果其中一个服务未运行,请重新启动它,然后再次检查这些服务,如果有任何错误,请使用echo打印,如下所示: dsisrv (DSI service) (7384) Running midaemon (measurement interface) (1412) Running

我是Linux脚本的新手,我需要帮助创建一个脚本,检查服务器上已安装的一些进程,如果其中一个服务未运行,请重新启动它,然后再次检查这些服务,如果有任何错误,请使用echo打印,如下所示:

dsisrv        (DSI service)                                  (7384)   Running
midaemon      (measurement interface)                        (1412)   Running
misrv         (measurement interface service)                (1384)   Running
perfalarm     (Alarm generator)                                       Stopped
perfalarmsrv  (Alarm generator service)                               Stopped
scopent       (data collector)                                        Stopped
scopesrv      (collector service)                                     Stopped
perfd         (Real Time Metric Access Daemon)               (7888)   Running
perfdsrv      (Real Time Metric Access Service)              (9020)   Running
ttd           (transaction tracking)                         (1808)   Running
如果上述任何服务被停止,脚本将运行restart命令

如果有人能帮我开始写这个脚本,我将不胜感激

问候,

#!/bin/sh
 SERVICE='httpd'
 if ps ax | grep -v grep | grep $SERVICE > /dev/null 
then
 echo "$SERVICE service running, everything is fine"
 else 
echo "$SERVICE is not running" echo "$SERVICE is not running!" | mail -s "$SERVICE down" root 
fi

只需添加您需要的服务,如果服务失败,这将给您发送邮件。我假设您使用bash非常愉快。

我编写了一个简单的脚本,希望这会有所帮助。请以root用户身份运行此脚本,并在声明数组中添加您的服务或守护进程

declare -a service=(vsftpd sshd) 
全文

#!/bin/bash
declare -a service=(vsftpd sshd) ##declaration array
for x in ${service[@]} ##array with 
do
process=` ps -A | grep $x | awk '{print $4}' ` ### all process output
all_services=`echo $x`
line_no=` ps -A | sed -n '/'$all_services'/=' `
if ` ps -A | grep ${process[@]} > 0 ` ## condition to check if service available or not
then
echo "status running", " `ps -A | sed -n ''$line_no''p | awk ' {print $1 $4}'` "  ## service up running
else
service $all_services start ### start the daemon again
fi
done

您没有告诉我们脚本调用了什么,也没有显示代码。您也没有提到应该在其上运行的linux操作系统。这使得你的问题总体上非常模糊;你需要更详细地了解你到底想要什么,你已经做了什么,以及你被困在哪里。我需要启动一个脚本来检查一个进程,如果它正在运行或没有,如果进程没有运行,重新启动它,重新启动后,如果出现任何错误消息,请使用Echor打印它。您已经尝试了什么?可能重复