Попробуйте заменить «ждать» на «спать»
команда wait игнорируется или не работает, когда скрипт оболочки вызывается через cron
318
RameshMathur Mulagaleti
у нас есть требование контролировать состояние агента oem, скрипт работает нормально, когда выполняется sh .sh для получения статуса агента oem, требуется 55 секунд, чтобы получить вывод, записанный в файл, я использовал эту команду для выполнения backend и дождался ее завершения, но он не работает, когда сценарий запланирован через cron, он не ожидает завершения этой команды
Ценю любую помощь в этом отношении
ниже находятся записи crontab
########################OEM Script Monitoring################################# 0,10,20,30,40,50 * * * * /export/home/oraoem/scripts/emck.sh > /dev/null 2>&1 -- cat emck.sh #!/bin/bash cd /export/home/oraoem/scripts DBALIST="ramesh.mathur@zap.com"; export DBALIST rm -f agent.exist ps -ef | grep emagent | grep -v grep > agent.exist if [ -s agent.exist ] then cd $MY_AGENT_HOME/bin ./emctl status agent > /export/home/oraoem/scripts/agent.txt & echo $! wait $! grep "Number of XML files pending upload" /export/home/oraoem/scripts/agent.txt > /export/home/oraoem/scripts/agent6.txt a=$(awk '' /export/home/oraoem/scripts/agent6.txt) b=$(grep "Agent is Running and Ready" /export/home/oraoem/scripts/agent.txt) d=("Agent is Running and Ready") if [ "$b" != "$d" ] then echo "OEM Agent is Not running ... .. " | mail -s "OEM Agent down on `hostname`" $DBALIST elif [[ $a -gt 3 ]] then echo "Number of XML files pending upload : $a" | mail -s "OEM Agent upload problem on `hostname`" $DBALIST fi else echo "OEM Agent down on `hostname`." | mail -s " OEM Agent down on `hostname`" $DBALIST fi ##echo "OEM Agent is up and running on `hostname`." | mail -s " OEM Agent up and running on `hostname`" $DBALIST
1 ответ на вопрос
-1
sebastienvg
Это не будет работать, как ожидалось. `wait $!` означает ожидание завершения последней фоновой задачи. `sleep $!` означает ожидание в течение количества секунд, равного PID последней фоновой задачи. Учитывая, что PID может быть очень высоким (выше 20 КБ), вы действительно * не * хотите запускать эту команду.
Nathan.Eilisha Shiraini 8 лет назад
1
да, это занимает больше времени, и то, что я наблюдатель, находится ниже команды, агенту состояния emctl понадобится 50 секунд, чтобы сгенерировать вывод из cron, он не ждет, пока вывод будет записан в файл agent.txt, но тот же скрипт будет работать нормально, когда я выполню вручную sh emck.sh любая идея на этот счет
RameshMathur Mulagaleti 8 лет назад
0
Похожие вопросы
-
3
Покупка OEM Windows для MacBook
-
1
Как мне отформатировать и переустановить Vista, не имея оригинального OEM диска?
-
2
Могу ли я использовать 32-разрядную OEM-лицензию Windows 7 Professional для установки 64-разрядной в...
-
-
4
Стоит ли покупать пакет обновления до Windows 7 или мне следует купить OEM-копию?
-
4
Законность использования записанного компакт-диска с легальным CD-ключом?
-
3
Будет ли форматирование HD и установка моей собственной ОС аннулировать гарантию на ноутбуки?
-
3
Законно ли устанавливать OEM-лицензию Windows 7 в VMWare Fusion?
-
5
Установка XP без оригинального диска восстановления XP, возможно с OEM-диском?
-
1
Где я могу найти установочный пакет OEM Dell для Windows 7?
-
1
Нужна лицензия на продажу компьютеров, изготовленных из комплектующих OEM и комплектующих для Window...