powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите с BASH -скриптом
7 сообщений из 7, страница 1 из 1
Помогите с BASH -скриптом
    #36007057
dundin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Заранее скажу что 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
Помогите с BASH -скриптом
    #36007072
dundin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и вообще - правильно ли написано?
Основные сомнения глажат - будет ли BASH дожидаться выполнения MySQL команд?
...
Рейтинг: 0 / 0
Помогите с BASH -скриптом
    #36007301
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Помогите с BASH -скриптом
    #36007344
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dundin

Понимаю что синтаксическая ошибка, но не понимаю где?
bash -x /etc/night.sh
...
Рейтинг: 0 / 0
Помогите с BASH -скриптом
    #36008219
dundin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.
Потыкался еще чуть чуть - в итоге отказался от переменных вообще. Писал тупо команды в кавчках:
Код: 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
Помогите с BASH -скриптом
    #36008228
dundin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в последнем сообщении лишнее написал:)
...
Рейтинг: 0 / 0
Помогите с BASH -скриптом
    #36008232
dundin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не туда вопрос вставил
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите с BASH -скриптом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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