Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите с BASH -скриптом / 7 сообщений из 7, страница 1 из 1
26.05.2009, 09:50
    #36007057
dundin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с BASH -скриптом
Добрый день!
Заранее скажу что BASH - скриптам я только учусь, так что не пинайте сильно.
Итак нужно:
1. Запустить в MySQL репликацию командой start slave;
2. Пауза 3 часа.
3. Остановить репликацию командой stop slave;
4. Запустить в MySQL оптимизацию таблицы OPTIMIZE TABLE table_name и дождаться выполнения.
5. Запустить индексатор сфинкса(тулза для полнотекстового поиска - проще говоря процесс с параметрами) и дождаться выполнения.
6. Перезапустить службу сфинкса.

Я написал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#!/usr/local/bin/bash
MAILTO=myemail@eka-net.ru
q_start_rep=$(echo "start slave;") #команда запуска репликации
mysql --user=root --password=pass --database=database_name -e "q_start_rep"  #запускаем репликацию
sleep  3  h #пауза  3  часа
q_stop_rep=$(echo "stop slave;") #команда останова репликации
mysql --user=root --password=pass --database=database_name -e "q_stop_rep"  #останавливаем репликацию
q_opt=$(echo "optimize table table_name;") #оптимизируем таблицу 
mysql --user=root --password=pass --database=database_name -e "q_opt"  

# запускаем индексатор
/etc/sphinx1/bin/indexer --config /var/www/dundin/data/sphinx1/sphinx.conf --all --rotate

# перезапускаем службу
/etc/sphinx1/bin/searchd --config /var/www/dundin/data/sphinx1/sphinx.conf --stop
/etc/sphinx1/bin/searchd --config /var/www/dundin/data/sphinx1/sphinx.conf


Назвал night.sh, положил в /etc, дал права на исполнение ( chmod u+rx /etc/night.sh)
Пытаюсь проверить
/etc/night.sh
Пишет
syntax error near unexpected token `c'

Понимаю что синтаксическая ошибка, но не понимаю где?
...
Рейтинг: 0 / 0
26.05.2009, 09:55
    #36007072
dundin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с BASH -скриптом
Ну и вообще - правильно ли написано?
Основные сомнения глажат - будет ли BASH дожидаться выполнения MySQL команд?
...
Рейтинг: 0 / 0
26.05.2009, 10:57
    #36007301
Ося
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с BASH -скриптом
dundinНу и вообще - правильно ли написано?
Основные сомнения глажат - будет ли BASH дожидаться выполнения MySQL команд?

ошибки по одному разу, остальные по-аналогии
-1. bash лежит в другом месте! См вывод команды which bash
0. будет ждать, что бы запустить фоном -- написать в конце &
1. $(echo "start slave;") == "start slave;"
2. -e "q_start_rep" => -e ${q_start_rep}
3. вывод команды надо логировать допишите в конце >> qqq.log 2>> error_qqq.log
или >> qqq.log 2>&1
4. неплохо проверять код возврата ($?) команды, т.к. если первая зафэйлилась, вам стоит отановиться
Код: plaintext
1.
2.
3.
if [ $? -ne 0 ] then
   echo "такая то команда зафэйлилась, смотре логе"
   exit 1
 fi
...
Рейтинг: 0 / 0
26.05.2009, 11:09
    #36007344
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с BASH -скриптом
dundin

Понимаю что синтаксическая ошибка, но не понимаю где?
bash -x /etc/night.sh
...
Рейтинг: 0 / 0
26.05.2009, 15:23
    #36008219
dundin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с BASH -скриптом
Спасибо за ответы.
Потыкался еще чуть чуть - в итоге отказался от переменных вообще. Писал тупо команды в кавчках:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
#!/usr/bin/bash
MAILTO=dundin@eka-net.ru
mysql --user=root --password=pass --database=base_name -e "start slave;"  #запускаем репликацию
sleep  30  m  #пауза  3  часа
mysql --user=root --password=pass --database=base_name -e "stop slave;"  #останавливаем репликацию

#оптимизируем таблицу 
mysql --user=root --password=pass --database=base_name -e "optimize table table_name;" 
/etc/sphinx1/bin/indexer --config /var/www/dundin/data/sphinx1/sphinx.conf --all --rotate
if [ $? -ne  0  ]
then
   echo "ошибка при запуске индексатора"
   exit  1 
fi

Скажите, куда копать если email не о выполнении задачи не приходит? При этом 
cd /etc
vi crontab

показывает
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=myemail@eka-net.ru
HOME=/


/etc/sphinx1/bin/searchd --config /var/www/dundin/data/sphinx1/sphinx.conf --stop
if [ $? -ne  0  ]
then
   echo "ошибка при остановке службы сфинкса"
   exit  1 
fi

sleep  15 

/etc/sphinx1/bin/searchd --config /var/www/dundin/data/sphinx1/sphinx.conf
if [ $? -ne  0  ]
then
   echo "ошибка при запуске службы сфинкса"
   exit  1 
fi
...
Рейтинг: 0 / 0
26.05.2009, 15:25
    #36008228
dundin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с BASH -скриптом
в последнем сообщении лишнее написал:)
...
Рейтинг: 0 / 0
26.05.2009, 15:26
    #36008232
dundin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с BASH -скриптом
не туда вопрос вставил
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите с BASH -скриптом / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]