Я планирую использовать inosync для синхронизации данных с главного сервера на несколько клиентских серверов. Я создал пользователя с именем rsyncuser как на главном, так и на ведомом устройствах с правами доступа и без парольного доступа по ssh от главного к подчиненным серверам.
Inosync работает, когда я использую его из командной строки как rsyncuser.
Далее я хочу, чтобы это запускалось автоматически при включении сервера. Я понял, что выскочка - это способ заставить это работать.
Я не могу найти правильную команду upstart, чтобы заставить это работать.
Вот мой выскочивший файл conf. Кажется, проблема заключается в запуске «inosync -d -c /etc/inosync/inosync_rsyncuser.py» от имени данного пользователя.
Как видите, я пробовал несколько различных вариантов!
description "start inosync to sync data to other CDN Servers as rsyncuser" console output #start on startup #stop on shutdown start on (net-device-up and local-filesystems) stop on runlevel [016] #start on runlevel [2345] #stop on runlevel [!2345] #kill timeout 30 env RUN_AS_USER=rsyncuser expect fork script echo "Inosync updtart job seems to have started" >> /tmp/upstart.log # exec sudo -u rsyncuser -c "ls -la" >> /tmp/upstart.log 2>&1 # LOGFILE=/var/log/logfile.`date +%Y-%m-%d`.log # exec su - $RUN_AS_USER -c "inosync -d -c /etc/inosync/inosync_rsyncuser.py" >> $LOGFILE 2>&1 # exec su -c "ls -la" >> /tmp/upstart.log 2>&1 # emit inosync_running end script
Я думаю, что это должно сделать это:
exec su -c command_to_execute - $RUN_AS_USER
start on (net-device-up IFACE!=lo and local-filesystems)
stop on runlevel [016]
respawn
exec su -c '/usr/bin/inosync -c /etc/inosync/inosync_rsyncuser.py | logger -p daemon.notice -t inosync' rsyncuser
Это должно начаться, как только сеть подключится и локальные файловые системы станут доступны, и остановится только при выключении / перезагрузке. нет причин для использования «ожидаемого ветвления» с inosync, так как он не развивается, если вы не используете -d, в идеале именно так будут работать все управляемые сервисы upstart.
Кроме того, связь с регистратором позволит вам использовать настройки системного журнала вместо создания другого файла журнала. daemon.notice должен заканчиваться в /var/log/daemon.log.