Owncloud Dateien nach einem Backup neu einlesen

Werden per rsync die Dateien und Ordner in die Accounts auf den Server wieder zurückspielt, müssen diese von der Festplatte in die Datenbank von Owncloud eingelesen werden. Geschieht dies nicht würden sie dem Benutzer nicht zugeordnet und für Ihn nicht sichtbar sein.

zwerchVor dem Einlesen müssen die Daten noch dem Benutzer, unter welchen der Webserver läuft,  rekursiv übergeben werden. Das Einlesen würde zwar ohne Herausforderungen funktionieren, aber die Lese- und Schreibberechtigungen sind nicht vorhanden und es kann hier zu einigen Irritationen kommen. Bei CentOS ist dies der Benutzer apache, bei Debian ist es der Benutzer www-data.

Mit den Benutzern apache bzw. www-data muss das PHPscript für das Einlesen der Dateien und Ordner angestossen werden. Da der Benutzer apache, berechtigterweise, keine Shell besitzt (/sbin/nologin) , muss durch den Befehl su (substitude user ) diese mit angegeben werden:

su - apache -s /bin/bash

Die Dateien aller Benutzer einlesen:

php /var/www/html/owncloud/console.php files:scan --all

oder auch nur benutzerbasiertes Einlesen mit der user_id

php /var/www/html/owncloud/console.php files:scan christianmgrube

Siehe dazu auch:

php /var/www/html/owncloud/console.php files:scan --help
 Usage:
 files:scan [-p|--path="..."] [-q|--quiet] [--all] [user_id1] ... [user_idN]
Arguments:
 user_id               will rescan all files of the given user(s)
Options:
 --path (-p)           limit rescan to this path, eg. --path="/alice/files/Music", the user_id is determined by the path and the user_id parameter and --all are ignored
 --quiet (-q)          Do not output any message.
 --all                 will rescan all files of all known users
 --help (-h)           Display this help message.
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug.
 --version (-V)        Display this application version.
 --ansi                Force ANSI output.
 --no-ansi             Disable ANSI output.
 --no-interaction (-n) Do not ask any interactive question.

Somit können die Daten nun auch per sftp in die eigene Owncloudinstanz übertragen werden. Mit Hilfe eines Cronjobs, welcher ein bestimmtes Verzeichnis im turnus per rsync mit dem Verzeichnis data abgleicht und neu in die Datenbank von owncloud einliest hat man einen kleinen Automatismus. Es ist damit nun möglich auch die momentane Unsicherheiten in Bezug der Webserversicherheit und dem hauseigenen Owncloudclient ein wenig zur Seite zu schieben. Anstelle von cron kann natürlich auch mit inotify der Trigger gesetzt werden.