-1

Linuxスクリプトを初めて使用する場合、サーバーにインストールされているプロセスをチェックして1つのスクリプトを作成するのに助けが必要です。これらのサービスの1つが実行されていない場合は再起動し、それらのサービスを再チェックし、エラーがある場合は以下のようにエコーで出力します:

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

上記のサービスのいずれかが停止した場合、再起動コマンドを実行するスクリプト。

このスクリプトを開始するのに役立つ人がいる場合は感謝します

よろしく、

4

2 に答える 2

1
#!/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を使っていると仮定して楽しんでください。

于 2015-05-26T14:32:25.400 に答える
1

簡単なスクリプトを作成しました。これが役立つことを願っています。このスクリプトをルートとして実行し、宣言配列内にサービスまたはデーモンを追加してください。

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
于 2015-05-27T13:08:31.777 に答える