Рейтинг:0

Неправильный статус отображается даже после успешного выполнения скрипта

флаг cn
#!/бин/ш
serverStatus=$(ps aux | grep server1 -c)
serverStop='/сервер/myscripts/stopServer.sh сервер1'
serverStart='/сервер/myscripts/startServer.sh сервер1'

$серверСтоп
спать 60

эхо "$ serverStatus"  

если [$serverStatus -ne 2]
тогда
        echo 'Предупреждение: App Server1 не работает'
        
                $серверстарт

еще
        echo 'Предупреждение: App Server1 запущен и работает'
        
фи

Вывод:

ADMU0116I: Информация об инструменте записывается в файл
           /server/myscripts/logs/server1/stopServer.log
ADMU0128I: Запуск утилиты с профилем сервера
ADMU3100I: Чтение конфигурации для сервера: server1
ADMU3201I: Выдан запрос на остановку сервера. Ожидание состояния остановки.
ADMU4000I: Остановка сервера server1 завершена.

2

Предупреждение: App Server1 запущен и работает

Вывод должен быть:

ADMU0116I: Информация об инструменте записывается в файл
           /server/myscripts/logs/server1/stopServer.log
ADMU0128I: Запуск утилиты с профилем сервера
ADMU3100I: Чтение конфигурации для сервера: server1
ADMU3201I: Выдан запрос на остановку сервера. Ожидание состояния остановки.
ADMU4000I: Остановка сервера server1 завершена.

1

Предупреждение: App Server1 не работает
Nmath avatar
флаг ng
Непонятно, что вы спрашиваете. Если вы хотите, чтобы мы проверили какой-либо сценарий, вам необходимо предоставить этот сценарий. Пожалуйста, используйте [форматирование с ограждением кода](https://askubuntu.com/editing-help#code), чтобы мы могли точно анализировать информацию. Если вы не можете понять форматирование уценки, пожалуйста, скопируйте и вставьте как есть, и мы можем помочь вам с редактированием через модерацию. Помимо предоставления сценария, вы должны предоставить больше контекста и деталей. Расскажите нам, что вы пытаетесь сделать. Вы также должны указать версию и версию Ubuntu, которую вы используете.
Preeti Rajgariya avatar
флаг cn
$серверСтоп спать 60 эхо "$ serverStatus" - Эхо не печатает правильный статус, даже если сервер остановлен. Я поставил sleep 60 также, чтобы увеличить время чтения вывода, но это не сработало. -Я вижу, что сервер успешно остановлен, но он все еще дает мне статус, поскольку сервер все еще работает.
Preeti Rajgariya avatar
флаг cn
Итак, мое условие if не соответствует правильно.
Preeti Rajgariya avatar
флаг cn
Ниже мой скрипт. я автоматизирую перезагрузку сервера с помощью этого сценария и вызываю сценарий остановки и запуска сервера внутри него.
bac0n avatar
флаг cn
Если у вас есть зависшие процессы или ваш сервер порождает `grep -c`, это может дать вам 2. возможно, лучше использовать `pgrep` с параметром pidfile или единицей systemd.
Preeti Rajgariya avatar
флаг cn
serverStop='/сервер/myscripts/stopServer.sh сервер1 serverStart='/сервер/myscripts/startServer.sh сервер1' $серверСтоп спать 60 эхо "$ serverStatus" если [$serverStatus -ne 2] тогда echo 'Предупреждение: App Server1 не работает' $серверстарт еще echo 'Предупреждение: App Server1 запущен и работает' фи
Preeti Rajgariya avatar
флаг cn
Выход: ADMU0116I: Информация об инструменте записывается в файл /server/myscripts/logs/server1/stopServer.log ADMU0128I: Запуск утилиты с профилем сервера ADMU3100I: Чтение конфигурации для сервера: server1 ADMU3201I: Выдан запрос на остановку сервера. Ожидание состояния остановки. ADMU4000I: Остановка сервера server1 завершена. 2 Предупреждение: App Server1 запущен и работает
Preeti Rajgariya avatar
флаг cn
Вывод должен быть: вывод: ADMU0116I: Информация об инструменте записывается в файл /server/myscripts/logs/server1/stopServer.log ADMU0128I: Запуск утилиты с профилем сервера ADMU3100I: Чтение конфигурации для сервера: server1 ADMU3201I: Выдан запрос на остановку сервера. Ожидание состояния остановки. ADMU4000I: Остановка сервера server1 завершена. 1 Предупреждение: App Server1 не работает и вызов команды запуска сервера
bac0n avatar
флаг cn
Как я уже сказал, `grep server1 -c` считает все, что содержит *server1*, например, если вы используете полный путь к вашему сценарию или редактору, который содержит *server1*. Он даже будет считать сам себя (чего можно избежать с помощью `grep -c '[s]server1'`)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.