Définition des tâches d’arrière-plan¶
Un système comme ownCloud nécessite parfois que des tâches soient réalisées régulièrement sans l’intervention de l’utilisateur et sans affecter les performances d’ownCloud. À cette fin, en tant qu’administrateur système, vous pouvez définir des tâches d’arrière-plan (par exemple le nettoyage de la base de données) qui seront exécutées sans intervention de l’utilisateur.
Ces tâches sont appelées tâches cron. Les tâches cron sont des commandes ou des scripts shell programmés pour s’exécuter périodiquement à des heures, dates ou intervalles définis. cron.php est un processus interne d’ownCloud qui exécute ce type de tâches d’arrière-plan à la demande.
Les plugins applicatifs d’ownCloud enregistrent des actions dans cron.php automatiquement pour gérer les opérations de maintenance classique comme la suppression de fichiers temporaires ou la vérification de nouvelles mises à jour de fichiers en utilisant filescan() pour les montages de systèmes de fichiers externes.
Paramètres¶
Dans la page d’administration, vous pouvez configurer comment ces tâches seront exécutées. Vous avez le choix entre les options suivantes :
- AJAX
- Webcron
- Cron
Tâches Cron¶
Vous pouvez programmer les tâches cron de trois manières – en utilisant AJAX, Webcron ou cron. La méthode par défaut est d’utiliser AJAX. Cependant, la méthode recommandée est d’utiliser cron. Les sections suivantes décrivent les différences entre chaque méthode.
AJAX¶
La méthode de programmation AJAX est l’option par défaut. Malheureusement, c’est aussi la moins fiable. Chaque fois qu’un utilisateur visite la page ownCloud, une tâche d’arrière-plan est exécutée. L’avantage de ce mécanisme est que cela ne nécessite pas d’accéder au système ni de s’enregistrer sur un service tiers. L’inconvénient de ce mécanisme, comparé au service Webcron, est qu’il nécessite de visiter régulièrement la page pour être déclenché.
Note
Particulièrement lors de l’utilisation de l’application Activité ou de stockages externes, où de nouveaux fichiers sont ajoutés, mis à jour ou supprimés, il est préférable d’utiliser l’une des deux méthodes suivantes.
Webcron¶
En enregistrant l’adresse de votre script cron.php owncloud sur un service de webcron externe (par exemple easyCron), vous vous assurez que les tâches d’arrière-plan soient exécutées régulièrement. Pour utiliser ce type de service, votre serveur doit être accessible d’Internet. Par exemple:
URL à appeler : http[s]://<domaine-de-votre-serveur>/owncloud/cron.php
Cron¶
L’utilisation de la fonctionnalité cron du système d’exploitation est la méthode préférée pour l’exécution de tâches régulières. Cette méthode active l’exécution des tâches d’arrière-plan sans les limitations inhérentes au serveur Web.
Pour exécuter une tâche cron sur un système de type Unix, toutes les 15 minutes, avec le compte par défaut du serveur Web (souvent www-data ou wwwrun), vous devez paramétrer la tâche cron suivante pour appeler le script cron.php:
# crontab -u www-data -e
*/15 * * * * php -f /var/www/owncloud/cron.php
Vous pouvez vérifier que la tâche cron a bien été ajoutée et programmée en exécutant la commande suivante
# crontab -u www-data -l
*/15 * * * * php -f /var/www/owncloud/cron.php
Note
Vous devez remplacer le chemin /var/www/owncloud/cron.php par celui de votre installation ownCloud.
Note
Sur certain systèmes, il pourrait être nécessaire d’appeler php-cli au lieu de php.
Note
Veuillez consulter la page man de crontab pour connaître la syntaxe exacte.
Tâches d’arrière-plan disponibles¶
Un certain nombre de tâches sont disponibles pour être exécutées pour des actions spécifiques.
Note
Ces tâches ne sont généralement nécessaires que pour de grosses instances et peuvent être exécutées en arrière-plan. Si le nombre d’utilisateurs de votre installation se situe entre 1000 et 3000, ou si vous utilisez LDAP et que cela devient un goulet d’étranglement, les administrateurs peuvent supprimer plusieurs entrées dans la table oc_jobs et les remplacer par les commandes occ correspondantes, comme ci-dessous :
- OCA\Files_Trashbin\BackgroundJob\ExpireTrash -> occ trashbin:expire
- OCA\Files_Versions\BackgroundJob\ExpireVersions -> occ versions:expire
- OCA\DAVCardDAV\SyncJob -> occ dav:sync-system-addressbook
- OCA\Federation\SyncJob -> occ federation:sync-addressbooks
Si elles sont utilisées, elles doivent être programmées quotidiennement.
En voici une liste non exhaustive :
ExpireTrash¶
Cette tâche, contenue dans OCA\Files_Trashbin\BackgroundJob\ExpireTrash, supprimera tous les fichiers dans la corbeille d’ownCloud dont l’âge est supérieur à la durée maximale de rétention. Elle peut être lancée en utilisant la commande occ suivante
occ trashbin:expire
ExpireVersions¶
Cette tâche, contenue dans OCA\Files_Versions\BackgroundJob\ExpireVersions, fera expirer les versions de fichiers dont l’âge est supérieur à la durée maximale de rétention. Elle peut être lancée en utilisant la commande occ suivante
occ versions:expire
SyncJob (CardDAV)¶
Cette tâche, contenue dans OCA\DAV\CardDAV\SyncJob, synchronise le carnet d’adresses local du système, en mettant à jour les contacts existants et en supprimant les contacts obsolètes. Elle peut être lancée en utilisant la commande occ suivante
occ dav:sync-system-addressbook
SyncJob (Federation)¶
OCAFederationSyncJob
Elle peut être lancée en utilisant la commande occ suivante
occ federation:sync-addressbooks