LinuxForum.Fans
Тема

Удаленное управление демонами

Автор: opryatniyav 195 сообщений 20489 просмотров
#195930
opryatniyav написал:
как можно вас отблагодарить за вашу помощь?

Даже не знаю, что ответить :o
Не корысти ради я вам помогаю wink
Однако, есть у меня WM-кошелёк...

#195933

Есть ли ситуации, когда /etc/init.d/jboss stop не останавливает сервис?

opryatniyav написал:
и еще одно как заставить команду после выполнения ждать определенное количество времени допустим 180 сек
text

COMMAND_1
sleep 180
COMMAND_2
#195934
opryatniyav написал:
да кстати даже если все этапы скрипта выполняются нормально то все ровно приходит пустое письмо, не в курсе почему?

Включите в скрипте отладку (set -x), покажите вывод скрипта.

#195937

Lupo Alberto написал:
Однако, есть у меня WM-кошелёк...
вполне сойдет smile
#195943
text
linuxssh01:/bash # cat -A ./ssh_02.sh
#!/bin/bash$
set -x$
REMOTE_IP=${1}$
ERROR_LOG=${REMOTE_IP}_error.log$
#ssh $REMOTE_IP /etc/init.d/jboss stop 2>> $ERROR_LOG || \$  - заремил потому что видает постоянно ошибки но это не связано со скриптом
ssh $REMOTE_IP pkill -9 java 2>> $ERROR_LOG && \$
#ssh $REMOTE_IP pgrep java 2>> $ERROR_LOG && \$                - а это в надежде на чудо smile 
scp /opt/test $REMOTE_IP:/opt/test 2>> $ERROR_LOG && \$
#ssh $REMOTE_IP /etc/init.d/jboss start 2>> $ERROR_LOG$         - заремил потому что видает постоянно ошибки но это не связано со скриптом
[ -f $ERROR_LOG ] && cat $ERROR_LOG | mail -s "Error log on $REMOTE_IP" aleksandr.opryatniy@co.ksoe.com.ua && rm -f $ERROR_LOG$
set +x$

[console]linuxssh01:/bash # ./ssh_02.sh 10.77.11.37
+ REMOTE_IP=10.77.11.37
+ ERROR_LOG=10.77.11.37_error.log
+ ssh 10.77.11.37 pkill -9 java
+ scp /opt/test 10.77.11.37:/opt/test
+ '[' -f 10.77.11.37_error.log ']'
+ cat 10.77.11.37_error.log
+ mail -s 'Error log on 10.77.11.37' aleksandr.opryatniy@co.ksoe.com.ua
+ rm -f 10.77.11.37_error.log
+ set +x[/console]

#195944

opryatniyav, я вот что подумал, обязательно ли останавливать и после копирования запускать сервис. Не достаточно ли просто перегрузить? (Ведь в init-скрипте jboss есть такая функция).

#195945

в общем как я понимаю он создает пустой лог файл

#195946

нет нужно стопарить 100%

#195949

Вроде бы понял, почему приходит пустое письмо.
Попробуйте вместо -f указать -s, то есть

text
[ -s $ERROR_LOG ]
#195955

да помогло, а можно определение ключей

#195958
opryatniyav написал:
а можно определение ключей

Опция -f — файл существует и это обычный файл;
опция -s — файл существует и его размер больше нуля.
Конструкция [ ... ] — это аналог команды test, и, следовательно, man test

#195966

еще один вопросик
если пишу pgrep jboss то он не находит процесс по имени

а если ps -aux | grep jboss то находит 3 процесса 1 и 2 запускают самый главный JBOSS не подскажите каким образом можно вычислить процесс которуй нужен мне то есть 3
просто убивать по java запретил начальник сказал что java может использовать другой процесс не относящийся к JBOSS

Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root 13065 0.0 0.1 2888 1020 ? S 20:59 0:00 su root -s /bin/bash -c /opt/jboss/bin/run.sh -c default
root 13067 0.0 0.2 2572 1180 ? S 20:59 0:00 /bin/sh /opt/jboss/bin/run.sh -c default
root 13073 5.8 79.1 1840704 407796 ? Sl 20:59 0:40 /opt/j2sdk/bin/java -server -Xms1024m -Xmx1512m -Dprogram.name=run.sh -Djava.awt.headless=true -Djava.endorsed.dirs=/opt/jboss/lib/endorsed -classpath /opt/jboss/bin/run.jar:/opt/j2sdk/lib/tools.jar org.jboss.Main -c default
root 13141 0.0 0.1 1712 656 pts/1 S+ 21:10 0:00 grep jboss

#195971

#!/bin/bash
#set -x
REMOTE_IP=$1
ERROR_LOG=${REMOTE_IP}_error.log
ssh $REMOTE_IP /etc/init.d/jboss stop 2>> $ERROR_LOG && \
sleep 180 || \
ssh $REMOTE_IP pkill -9 java 2>> $ERROR_LOG && \
scp /opt/test $REMOTE_IP:/opt/test 2>> $ERROR_LOG && \
ssh $REMOTE_IP /etc/init.d/jboss start 2>> $ERROR_LOG
[ -f $ERROR_LOG ] && cat $ERROR_LOG | mail -s "Error log on $REMOTE_IP" aleksandr.opryatniy@co.ksoe.com.ua && rm -f $ERROR_LOG
#set +x

еще вопросик если в данной ситуации JBOSS не стопарнулся значит он проигнорирует sleep 180 || а потом будет ли выполняться ssh $REMOTE_IP pkill -9 java 2>> $ERROR_LOG && \

#195973

все башка уже не варит я домой к жене
спасибо за помощь smile
удачи Lupo Alberto

#195974
opryatniyav написал:
еще вопросик если в данной ситуации JBOSS не стопарнулся значит он проигнорирует sleep 180 || а потом будет ли выполняться ssh $REMOTE_IP pkill -9 java 2>> $ERROR_LOG && \

Будет.

#195977
opryatniyav написал:
а если ps -aux | grep jboss то находит 3 процесса 1 и 2 запускают самый главный JBOSS не подскажите каким образом можно вычислить процесс которуй нужен мне то есть 3

Можно так, но это мне не нравится

text
ps -aux | grep jboss | grep java
#195978

На удалённом сервере при запущенном jboss покажите вывод команды
find /var/run -name '*.pid' -a -iname 'jboss*'

#195979

А так pgrep не найдёт?
[console]
pgrep -f '/opt/j2sdk/bin/java -server -Xms1024m -Xmx1512m -Dprogram.name=run.sh'
[/console]

#196050
Lupo Alberto написал:
На удалённом сервере при запущенном jboss покажите вывод команды
find /var/run -name '*.pid' -a -iname 'jboss*'

[console]linuxssh02:~ # find /var/run -name '*.pid' -a -iname 'jboss*'
linuxssh02:~ #[/console]
в этой папке нет пида jbossa

#196052
opryatniyav написал:
в этой папке нет пида jbossa

А где-нибудь есть?

Войдите или зарегистрируйтесь, чтобы ответить.