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
Toute la documentation est sous licence Creative Commons Attribution 3.0 Unported license — Traduction : Cédric Corazza.