Archiv für Juli 2014

BtSync auf Synology NAS unter anderem User laufen lassen

Donnerstag, 3. Juli 2014

Das btsync-Community Package läuft wunderbar, nur gibt es Probleme, wenn gleichzeitig zum Beispiel über Samba mit einem anderen User auf die Dateien zugegriffen wird. btsync läuft unter User „btsync“, entsprechend gehören einmal von btsync „berührte“ Dateien diesem User. Umgekehrt kann btsync eventuell einem anderen lokalen User gehörende Files nicht synchronisieren. Im Endeffekt schließt der Sync dann niemals ab.

Einzige sinnvolle Abhilfe: btsync als der User laufen lassen, über den auf ein Share zugegriffen wird. Angenommen dieser heißt „sambauser“.

btsync-Package-Dateien sollen diesem User gehören:

chown -R sambauser /usr/local/btsync/*

Außerdem anpassen des Package-Scripts: /var/packages/btsync/scripts/start-stop-status

Auszug aus Beginn der Datei:

#!/bin/sh

# Package
PACKAGE=“btsync“
DNAME=“BitTorrent Sync“

# Others
INSTALL_DIR=“/usr/local/${PACKAGE}“
PATH=“${INSTALL_DIR}/bin:${PATH}“
USER=“btsync“
RUNASUSER=“sambauser“
BTSYNC=“${INSTALL_DIR}/bin/btsync“
CFG_FILE=“${INSTALL_DIR}/var/sync.conf“
PID_FILE=“${INSTALL_DIR}/var/syncapp.pid“

start_daemon ()
{
su – ${RUNASUSER} -s „/bin/sh“ -c „PATH=${PATH} ${BTSYNC} –config ${CFG_FILE}“
}

Geänderte Zeilen sind in rot dargestellt.

Wichtig: Unter Systemsteuerung -> Benutzer -> Erweitert sollte zusätzlich der „Benutzer-Home-Dienst“ aktiviert werden. (Danke an Lukas für den Hinweis). Ansonsten funktioniert die Anleitung nur mit einem Admin-Benutzer.

Daraufhin läuft btsync nach einem restart als der gewünschte User.

Rsync als Cron, Host key verification failed

Donnerstag, 3. Juli 2014

Neben vielen anderen Hürden, wenn ein Cronjob nicht läuft wie er soll, kann bei Rsync als Cronjob folgendes auftreten:

Nach Transfer des Public Key auf das Backup-Ziel, sollte ein Rsync über einen Custom-ssh-Command ohne Authentifizierung laufen. Direkt auf der Shell kein Problem, aus der crontab heraus schon. Grund: Obwohl crond den Job als der spezifizierte User startet, war es zunächst nötig einmalig als Root den Zielserver in die known_hosts aufzunehmen, sprich einmalig: „ssh zielserver“, „yes“…