- На "зеркальном" сервере zmirror имеем запущенный процесс создания полной копии каталога. (live_syncd) == скрипт 1
- В системе запущен процесс по расписанию cron каждые 10 минут создающий дубликат сетевой конфигурации "live" сервера. (runbackup) == скрипт 2
Задача:
Необходимо проверять эти каждые 10 минут запуска скрипта 2 работу скрипта 1, если скрипт запущен то записать сообщение о выполнении работы, если скрипт 1 не выполняется то записать в лог скрипта 2 сообщение о остановке скрипта 1.
Если скрипт 1 не работает то запустить его:
- Под root: /home/vv/ipconf/./live_sync_start
- Под zimbra: /opt/zimbra/live_sync/./live_syncd
Алгоритм:
- Если процесс запущен --> запись в лог (+)
- Если процесс не запущен --> запись в лог (-)
- ?? Если не запущен --> запускаем --> проверяем --> запись в лог (+)
Выполнение:
Скрипт live_syncd запускает 2 процесса: (исходя из тела скрипта)
- redo_log_live_sync
- ldap_live_sync
ps aux | grep "redo_log_live_sync"
ps aux | grep "ldap_live_sync"Тело скрипта показало что при запущенных этих процессах создаются файлы с указанием номера процесса в папке ../live_sync/pid/
При выключенном процессе папка пуста.
PID файлы при запущенном процессе 1 (live_syncd)
- ldap_live_sync.pid
- redo_log_live_sync.pid
#!/bin/bash
FILE="/home/other/testfile"
echo "start testing file $FILE"
if ! [ -e "$FILE" ]
then echo "Файл не найден"
else echo "Файл найден"
fi
Итого на моем случае получилось:
#Test live_syncd for workableЭпилог:
PID1="/opt/zimbra/live_sync/pid/ldap_live_sync.pid"
PID2="/opt/zimbra/live_sync/pid/redo_log_live_sync.pid"
if ! [ -e "$PID1" ]
then echo "WARNING! Live_syncd LDAP is not runing" >> $LOG
su root /home/vv/ipconf/./live_sync_start
else echo "Live_syncd LDAP is runing" >> $LOG
fi
#
if ! [ -e "$PID2" ]
then echo "WARNING! Live_syncd REDOLOG is not runing" >> $LOG
su root /home/vv/ipconf/./live_sync_start
else echo "Live_syncd REDOLOG is runing" >> $LOG
fi
#
echo " " >> $LOG
#
"Начали за здравие, закончили за упокой".
Первоначальная проверка запущенности процесса не должна была закончиться проверкой наличия файла в заданной директории, на его наличие или отсутствие..
Но будем считать что с поставленной задачей я справился.
Скрипт срабатывает каждые 10 минут проверяет конфигурацию основного сервера и его зеркала, сохраняет их в заданные директории (что в данном посте не показано), параллельно проверяет ведется ли бэкап данных с основного (скрипт1) + в случае не работоспособности скрипта запускает его. (su root /home/vv/ipconf/./live_sync_start)
Криво, погано, но какбэ работает...
Комментариев нет:
Отправить комментарий