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
Vous devez vous assurer que php soit trouvé par cron. La bonne pratique est d’ajouter le chemin absolu, comme par exemple /usr/bin/php.
Note
Sur certains systèmes, il pourrait être nécessaire d’appeler php-cli au lieu de php.
Tâches d’arrière-plan disponibles¶
Il existe un certain nombre de tâches disponibles pour être exécutées pour des travaux spécifiques.
Note
Ces tâches ne sont généralement nécessaires que sur 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 indiqué 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 ceci est utilisé, cela doit l’être sur une base quotidienne.
La liste qui suit n’est pas exhaustive :
ExpireTrash¶
La tâche ExpireTrash, contenue dans OCA\Files_Trashbin\BackgroundJob\ExpireTrash, supprimera tout fichier de la corbeille d’ownCloud plus âgé que le temps maximal de rétention spécifié. Elle peut être lancée en utilisant la commande OCC
occ trashbin:expire
ExpireVersions¶
La tâche ExpireVersions, contenue dans OCA\Files_Versions\BackgroundJob\ExpireVersions, fera expirer les versions de fichiers plus âgées que le temps maximal de rétention spécifié. Elle peut être lancée en utilisant la commande OCC
occ versions:expire
SyncJob (CardDAV)¶
La tâche SyncJob, contenue dans OCA\DAV\CardDAV\SyncJob, synchronise le carnet d’adresses local en mettant à jour les contacts existants et en supprimant ceux périmés. Elle peut être lancée en utilisant la commande OCC
occ dav:sync-system-addressbook
SyncJob (Fédération)¶
OCAFederationSyncJob
Elle peut être lancée en utilisant la commande OCC
occ federation:sync-addressbooks