forum.bitel.ru http://forum.bitel.ru/ |
|
[6.0] Работа update.sh во время обновления http://forum.bitel.ru/viewtopic.php?f=22&t=10089 |
Страница 1 из 1 |
Автор: | abu [ 19 янв 2015, 12:52 ] |
Заголовок сообщения: | [6.0] Работа update.sh во время обновления |
Давно не обновлял биллинг, решил повспоминать, что и как. Запустил update.sh на биллинге в виртуальной машине. Получил в итоге запись в конце установочного лога: Код: ./update.sh: 35: LOADER}: not found # Starting DataLoader ./update.sh: 38: Syntax error: "fi" unexpected root@virtualtest:/usr/local/BGBillingServer# При обновлении старый update.sh поменялся новым, запись об ошибке относится к новому скрипту, ругается на эти строки: Код: if [ -e ${DATALOADER} ]; then echo "# Starting DataLoader" ${DATALOADER} start fi При этом у меня был не запущен dataloader, в инструкции указано, что если он не нужен, то его можно не запускать. После этого я попробовал запустить новый update.sh, получил сообщение: Код: Actual snapshot not found! после чего сделал снапшот, повторный запуск update.sh обновлений не обнаружил, клиент обновился нормально. Вопрос - это нормальное поведение скрипта обновления или нужно на что-то обратить внимание перед обновлением либо после него? Версия биллинга после обновления: Клиент: вер. 6.0 сборка 1366 от 15.01.2015 20:18:16 os: Linux; java: Java HotSpot(TM) Server VM, v.1.7.0_55 ВНИМАНИЕ: Спецификация версии 1.7 не рекомендуется Сервер: вер. 6.0 сборка 1822 от 15.01.2015 20:18:19 os: Linux; java: Java HotSpot(TM) Client VM, v.1.7.0_55 |
Автор: | zavndw [ 19 янв 2015, 13:05 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
перво на перво поставить jdk 1.6 скрипт не меняли до обновления? Есть такой файл в системе? DATALOADER=/etc/init.d/bgdataloader |
Автор: | dimOn [ 19 янв 2015, 14:51 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
Это в целом нормальное поведение. Все эти скрипты написаны под определённые окружения и в общем случае могут не работать. В новых линуксах (на systemd итп) они не будут работать 100%. |
Автор: | abu [ 19 янв 2015, 15:13 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
zavndw писал(а): перво на перво поставить jdk 1.6 скрипт не меняли до обновления? Есть такой файл в системе? DATALOADER=/etc/init.d/bgdataloader Файл есть, с лета прошлого года, после общения с разработчиками и недолгих раздумий, работаю на java 1.7, без замечаний. Скрипт не менял - просто запустил то, что было, обновление виртуальной машины делал летом. dimOn писал(а): Это в целом нормальное поведение. Все эти скрипты написаны под определённые окружения и в общем случае могут не работать. В новых линуксах (на systemd итп) они не будут работать 100%. Новых линуксов у меня нет, мне нужна лишь уверенность, что несмотря на эту ошибку, биллинг все же обновится корректно. На рабочем биллинге dataloader крутится. А принудительное создание снапшотов - это теперь по умолчанию прописано при обновлении? |
Автор: | dimOn [ 19 янв 2015, 15:20 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
update.sh это всего лишь скрипт-обёртка, которая стопает сервисы (имея в виду совершенно определённые init-окружение) делает снапшот обновляет и запускает их обратно. можете всё это сделать руками. или подправить его под свою ситуацию. |
Автор: | zavndw [ 19 янв 2015, 15:58 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
dimOn писал(а): Это в целом нормальное поведение. Все эти скрипты написаны под определённые окружения и в общем случае могут не работать. В новых линуксах (на systemd итп) они не будут работать 100%. у нас на systemd без нареканий все работает |
Автор: | dimOn [ 19 янв 2015, 16:28 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
zavndw писал(а): dimOn писал(а): Это в целом нормальное поведение. Все эти скрипты написаны под определённые окружения и в общем случае могут не работать. В новых линуксах (на systemd итп) они не будут работать 100%. у нас на systemd без нареканий все работает И как интересно у вас на systemd работают /etc/init.d/bgdataloader ? Через костыли inittab-systemd? |
Автор: | zavndw [ 19 янв 2015, 16:58 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
нет, у нас бородатый господин все "перепилил":) |
Автор: | dimOn [ 19 янв 2015, 17:15 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
zavndw писал(а): нет, у нас бородатый господин все "перепилил":) ну про то и речь) |
Автор: | abu [ 19 янв 2015, 18:34 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
dimOn писал(а): update.sh это всего лишь скрипт-обёртка, которая стопает сервисы (имея в виду совершенно определённые init-окружение) делает снапшот обновляет и запускает их обратно. можете всё это сделать руками. или подправить его под свою ситуацию. Старый файл и новый различаются только строками про снапшоты. Все остальные строки работали прежде без изменений и ошибок. Старый файл update.sh : Код: #!/bin/sh cd ${0%${0##*/}}. SERVER=/etc/init.d/bgbilling SCHEDULER=/etc/init.d/bgscheduler DATALOADER=/etc/init.d/bgdataloader TEE=/usr/bin/tee DATE=/bin/date time=`${DATE} +%d_%H:%M:%S` if [ -e ${DATALOADER} ]; then echo "# Stopping DataLoader" ${DATALOADER} stop fi echo "# Stopping Scheduler" ${SCHEDULER} stop echo "# Stopping Server" ${SERVER} stop echo "# Start Updating" ./bg_installer.sh update | ${TEE} ./log_update_${time} echo "# Starting Server" ${SERVER} start echo "# Starting Scheduler" ${SCHEDULER} start if [ -e ${DATALOADER} ]; then echo "# Starting DataLoader" ${DATALOADER} start fi if [ -e .bgclient_keystore_user -o -e .bgclient_keystore ]; then ./bgclient_javawebstart.sh fi Новый файл update.sh : Код: #!/bin/sh cd ${0%${0##*/}}. SERVER=/etc/init.d/bgbilling SCHEDULER=/etc/init.d/bgscheduler DATALOADER=/etc/init.d/bgdataloader TEE=/usr/bin/tee DATE=/bin/date snapshot=`find ./snapshots -type f -mtime 0 | tail -1` if [ -z $snapshot ]; then echo "Actual snapshot not found!" exit 0 fi echo "Found actual snapshot: $snapshot" time=`${DATE} +%d_%H:%M:%S` if [ -e ${DATALOADER} ]; then echo "# Stopping DataLoader" ${DATALOADER} stop fi echo "# Stopping Scheduler" ${SCHEDULER} stop echo "# Stopping Server" ${SERVER} stop echo "# Start Updating" ./bg_installer.sh update | ${TEE} ./log_update_${time} echo "# Starting Server" ${SERVER} start echo "# Starting Scheduler" ${SCHEDULER} start if [ -e ${DATALOADER} ]; then echo "# Starting DataLoader" ${DATALOADER} start fi if [ -e .bgclient_keystore_user -o -e .bgclient_keystore ]; then ./bgclient_javawebstart.sh fi Впечатление такое (но я тут совсем не разбираюсь - как работают запущенные скрипты bash в таких ситуациях), будто бы после подмены на диске старого файла новым, происходит выполнение строк из нового файла, по-крайней мере ошибка ссылается на строки именно из нового файла. |
Автор: | dimOn [ 19 янв 2015, 18:37 ] |
Заголовок сообщения: | Re: [6.0] Работа update.sh во время обновления |
А... вы про это.. тут вообще неизвестно как поведёт себя bash, как мне кажется. Случай "при обновлении изменился update.sh" считаем исключительным. Лучше ещё раз запустить после обновления. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |