ownCloud aktualisiert regelmäßig Daten im Hintergrund mittels eines Cronjobs. So werden z.B. neue Artikel aus RSS-Feeds bezogen, wenn die App News installiert ist. Während der Cronjob durchgeführt wird, legt ownCloud eine Datei mit dem Namen cron.lock im data-Verzeichnis der ownCloud Installation an. Unter Umständen kann es passieren das der Cronjob nicht zu einem ordentliche Abschluss kommt und die cron.lock-Datei damit bestehen bleibt. Dies führt dazu das ownCloud keine Aktualisierungen mehr vornehmen kann. Als Workaround kann die Sperrdatei mit einem Cronjob regelmäßig entfernt werden. Dazu muss die Crontab bearbeitet werden:
crontab -e
In die sich öffnende Crontab-Datei wird nun folgendes eingetragen:
4 0 * * * rm /var/www/example/owncloud/data/cron.lock
Damit wird die cron.lock-Datei jeden Tag um 0:04 Uhr gelöscht, falls sie vorhanden sein sollte. Wichtig ist es dabei die Crontab-Datei mit einer Leerzeile abzuschließen und den Pfad an die eigene Installation anzupassen.
Ich habe damit auch hin und wieder zu kämpfen und habe mir ein kleines Skript geschrieben welches alle 15 Minuten per cron ausgeführt wird.
#!/bin/bash
if [ -f /var/www/owncloud/data/cron.lock ]; then
TIME=$(date +%s)
TIMESTAMP=$(date +%s -r /var/www/owncloud/data/cron.lock)
DIFF=$(expr $TIME – $TIMESTAMP)
if (($DIFF >= 900 )); then
rm /var/www/owncloud/data/cron.lock
fi
fi
php -f /var/www/owncloud/cron.php