2013-10-14 2 views
0

У меня есть серверное приложение, которое содержит 1500 идентификаторов процессов, мне нужен сценарий оболочки, который проверяет каждый час, будет ли процесс вставлен, если не запускается процесс, используя «dsmc -u xxxx -p * * "Если он не запущен, отправьте письмо на мой gmail ([email protected]). вот код, как я могу отправить почту в свою учетную запись gmail.Linux-скрипт для проверки процесса вверх или нет

if pidof -s vsftpd = /dev/null; then 
     echo 'ftp is stopped' 

     sudo /etc/init.d/vsftpd restart 
    else 
     echo "The FTP server is Down" | mail -s "Ftp Server is Down" [email protected] 
    fi 

Я не получаю почту на свою учетную запись Gmail. Ссылка: http://rtcamp.com/wordpress-nginx/tutorials/linux/ubuntu-postfix-gmail-smtp/

ответ

0

, чтобы написать скрипт, который вы, вероятно, хотите, чтобы исследовать следующие функции и связанные с ними страницы человека

пс pgrep Ptree почта

0

Сценарий часть легко сделать. Устранение неполадок почты, однако, нет. Я бы рекомендовал запустить сценарий на экране (screen -d -m/bin/bash «test.sh»), отсоединив экран (ctrl -a + d), а затем убив процесс (/etc/init.d/vsftp stop) , ожидание 1 минута и повторное подключение экрана (экран -r). Это предоставит вам сообщение об ошибке с помощью почты, которую вы можете устранить.

Следующий скрипт будет отслеживать ваши услуги для вас.

#!/bin/bash 

process="vsftp" 

while true ; do 

    until [ ! $(pgrep $process) ]; do 
     sleep 1 #The number or minutes to wait until next check 
    done 

    #If process is not found do the following 
    /etc/init.d/$process start > /dev/null #Run as root because sudo requires password 
    if [ $? != 1 ]; then 
    echo "The FTP server was restarted" | mail -s "Ftp Server $process was restarted" [email protected] 
    else 
    echo "The FTP server could not restart" | mail -s "Ftp Server $process is down" [email protected] 
    sleep 1 
    exit 0; 
    fi 

done 

Надеюсь, это поможет и удачи.

0

Мы можем сделать скрипт с псом -ef

попытки,

# cat vsftpd.sh 
#!/bin/bash 
/bin/ps -ef | grep vsftpd > /dev/null 2>&1 
if [ $? -ne 0 ] 
then 
/etc/init.d/vsftpd restart > /dev/null 2>&1 
/bin/mail -s "FTP service is RESTARTED now" [email protected] 
else 
sleep 0 
fi 

хроны:

* * * * * /bin/sh /path/to/vsftpd.sh > /dev/null 2>&1 
Смежные вопросы