Я выполняю Сервер 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
Но в этом примере снова завершение работы, завершенное перед сценарием.
Так, мои вопросы:
Заранее спасибо за любую справку,
Rodrigo Martinho.