Создание новомодного сервиса для дампа и загрузки mysql базы данных по завершению работы

Я выполняю Сервер Ubuntu 14,04 LTS x64. У меня есть два гостя KVM. Каждый - файловый сервер, и другой выполняет mysql сервер.

У меня есть сценарий, что я работаю на файловом сервере. Сценарий соединяется через ssh с гостем, который выполняет mysql сервер, выводит mysql базу данных и загружает его на другой удаленный сервер. Сценарий работает как ожидалось. Теперь я хочу сделать этот сценарий для выполнения на завершении работы.

Я читал о выскочке и попытался сделать сервис для выполнения этого. Я создал свой init файл (/etc/init/dotproject_backup.conf) с этим содержанием:

# dotproject_backup
# This service makes a dump and rsync of a dotproject mysql database prior to shutdown.

description "dotproject backup"
author "Rodrigo Martinho"

start on startup
stop on runlevel [016]

pre-stop script
exec /home/user/script.sh
end script

В этом примере я также поместил runlevel 6, таким образом, я могу протестировать его на перезагрузке. Я могу изменить это после всех работ. На перезагрузке система не ожидает сценария для выполнения. На самом деле кажется, что сценарий не работает вообще, как я вижу на файле журнала (/var/log/upstart/dotproject_backup).

Я попробовал некоторые другие установки, где сценарий был запущен, но завершение работы, завершенное перед дампом, было загружено:

# dotproject_backup
# This service makes a dump and rsync of a dotproject mysql database prior to shutdown.

description "dotproject backup"
author "Rodrigo Martinho"

start on runlevel [016] or stopping dbus or deconfiguring-networking

script
exec /home/user/script.sh
end script

В этой установке I видят на файле журнала, что сценарий был запущен, но это было уничтожено, когда файл загружался.

Я читал на другом сообщении здесь, что корректный способ выполнить это изменяет условие запуска, таким образом, скрипт запущен, прежде чем процесс перезагрузки запускается:

# dotproject_backup
# This service makes a dump and rsync of a dotproject mysql database prior to shutdown.

description "dotproject backup"
author "Rodrigo Martinho"

start on starting rc RUNLEVEL=[016]

script
exec /home/user/script.sh
end script

Но в этом примере снова завершение работы, завершенное перед сценарием.

Так, мои вопросы:

  • Я должен заставить сервис запуститься или остановиться, когда runlevel изменяется для завершения работы или перезагрузки?
  • Как я должен сделать завершение работы для ожидания, пока сценарий не завершен?
  • Это был бы лучший подход для запущения моего скрипта как предварительной остановки в другом сервисе?

Заранее спасибо за любую справку,

Rodrigo Martinho.

1
задан 22 January 2016 в 06:10

0 ответов

Другие вопросы по тегам:

Похожие вопросы: