Ich plane, inosync zu verwenden, um Daten vom Master-Server mit mehreren Client-Servern zu synchronisieren. Ich habe einen Benutzer mit dem Namen rsyncuser sowohl im Master- als auch im Slave-Modus mit Zugriffsberechtigungen und passwortlosem SSH-Zugriff vom Master- zum Slave-Server erstellt.
Inosync funktioniert, wenn ich es über die Befehlszeile als rsyncuser verwende.
Als nächstes möchte ich, dass dies automatisch startet, wenn der Server eingeschaltet wird. Ich dachte, Emporkömmling ist der Weg, um dies zum Laufen zu bringen.
Ich kann den richtigen Startbefehl nicht finden, um dies zum Laufen zu bringen.
Hier ist meine upstart conf-Datei. Das Problem scheint darin zu liegen, "inosync -d -c /etc/inosync/inosync_rsyncuser.py" als bestimmten Benutzer auszuführen.
Wie Sie sehen, habe ich verschiedene Möglichkeiten ausprobiert!
Beschreibung "Inosync starten, um Daten mit anderen CDN-Servern als rsyncuser zu synchronisieren" Konsolenausgabe # Start beim Start # Stopp beim Herunterfahren Start on (Net-Device-Up und lokale Dateisysteme) stop on runlevel [016] # start on runlevel [2345] # stop on runlevel [ ! 2345] # Kill timeout 30 Env RUN_AS_USER = rsyncuser Erwarten Fork Script Echo "Der Inosync-Updtart-Job scheint gestartet zu sein" >> /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 Skript beenden
Ich denke das sollte es tun:
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
Dies sollte gestartet werden, sobald das Netzwerk aktiv ist und die lokalen Dateisysteme verfügbar sind, und erst dann beendet werden, wenn Sie herunterfahren/neu starten. Es gibt no einen Grund, 'expect fork' mit inosync zu verwenden, da es keine Verzweigung gibt, es sei denn, Sie verwenden -d. Dies ist idealerweise die Funktionsweise aller verwalteten Upstart-Dienste.
Durch die Weiterleitung an den Logger können Sie Ihr Syslog-Setup nutzen, anstatt irgendwo eine andere Logdatei zu erstellen. daemon.notice sollte in /var/log/daemon.log landen.