как можно вас отблагодарить за вашу помощь?
Даже не знаю, что ответить :o
Не корысти ради я вам помогаю wink
Однако, есть у меня WM-кошелёк...
как можно вас отблагодарить за вашу помощь?
Даже не знаю, что ответить :o
Не корысти ради я вам помогаю wink
Однако, есть у меня WM-кошелёк...
Есть ли ситуации, когда /etc/init.d/jboss stop не останавливает сервис?
и еще одно как заставить команду после выполнения ждать определенное количество времени допустим 180 сек
COMMAND_1
sleep 180
COMMAND_2
да кстати даже если все этапы скрипта выполняются нормально то все ровно приходит пустое письмо, не в курсе почему?
Включите в скрипте отладку (set -x), покажите вывод скрипта.
вполне сойдет smileОднако, есть у меня WM-кошелёк...
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]
opryatniyav, я вот что подумал, обязательно ли останавливать и после копирования запускать сервис. Не достаточно ли просто перегрузить? (Ведь в init-скрипте jboss есть такая функция).
в общем как я понимаю он создает пустой лог файл
нет нужно стопарить 100%
Вроде бы понял, почему приходит пустое письмо.
Попробуйте вместо -f указать -s, то есть
[ -s $ERROR_LOG ]да помогло, а можно определение ключей
еще один вопросик
если пишу 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
#!/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 && \
все башка уже не варит я домой к жене
спасибо за помощь smile
удачи Lupo Alberto
еще вопросик если в данной ситуации JBOSS не стопарнулся значит он проигнорирует sleep 180 || а потом будет ли выполняться ssh $REMOTE_IP pkill -9 java 2>> $ERROR_LOG && \
Будет.
а если ps -aux | grep jboss то находит 3 процесса 1 и 2 запускают самый главный JBOSS не подскажите каким образом можно вычислить процесс которуй нужен мне то есть 3
Можно так, но это мне не нравится
ps -aux | grep jboss | grep javaНа удалённом сервере при запущенном jboss покажите вывод команды
find /var/run -name '*.pid' -a -iname 'jboss*'
А так pgrep не найдёт?
[console]
pgrep -f '/opt/j2sdk/bin/java -server -Xms1024m -Xmx1512m -Dprogram.name=run.sh'
[/console]
На удалённом сервере при запущенном jboss покажите вывод команды
find /var/run -name '*.pid' -a -iname 'jboss*'
[console]linuxssh02:~ # find /var/run -name '*.pid' -a -iname 'jboss*'
linuxssh02:~ #[/console]
в этой папке нет пида jbossa
в этой папке нет пида jbossa
А где-нибудь есть?