22 mai 2023

Comment configurer un cron sur un serveur Linux via SSH

Qu'est-ce qu'une tâche planifiée sous Linux et comment configurer un cron via crontab ?

À l'ère numérique d'aujourd'hui, caractérisée par des flux de données ininterrompus et des opérations 24h/24 et XNUMXj/XNUMX, les administrateurs système sont constamment confrontés à la nécessité de gérer des tâches et des processus qui doivent s'exécuter à des moments précis. Dans ce contexte, cron se démarque par son utilité et sa fonctionnalité, un utilitaire de planification de tâches présent dans les systèmes d'exploitation de type Unix, dont le célèbre Linux.

Cron s'avère être un outil d'une puissance et d'une flexibilité incroyables, capable d'automatiser l'exécution de commandes ou de scripts selon un calendrier défini. La gamme de tâches qu'il peut gérer est large et variée, y compris la suppression périodique de fichiers temporaires, la création de sauvegardes de données critiques, la surveillance et la vérification de l'état du système, ainsi qu'une multitude d'autres opérations qui, si elles sont gérées manuellement, peuvent être coûteuses et sujettes aux erreurs. .

L'un des aspects les plus attrayants de cron réside dans sa combinaison unique de polyvalence et de simplicité. Tout en ayant une structure complexe qui permet de définir des plannings d'exécution très précis, sa gestion est incroyablement simple. Avec quelques lignes de code, il est possible de programmer une série d'opérations récurrentes, obtenant un gain de temps considérable et minimisant les erreurs dues à l'intervention humaine. Cela représente un avantage considérable dans un contexte où l'efficacité opérationnelle et la fiabilité du système sont primordiales.

Comment un cron est-il structuré sous Linux ?

Une tâche cron sous Linux est définie par une seule ligne de texte dans la crontab, la "table cron". Cette ligne de texte est divisée en six parties distinctes, chacune représentant un élément différent de la tâche cron.

Ces pièces, dans l'ordre, sont :

  1. Minute: Ce champ peut prendre des valeurs de 0 à 59 et indique la minute de chaque heure pendant laquelle la tâche cron doit être exécutée.
  2. maintenant: Ce champ peut prendre des valeurs de 0 à 23 et indique l'heure de la journée à laquelle la tâche cron doit être exécutée.
  3. Jour du mois: Ce champ peut prendre des valeurs de 1 à 31 et indique le jour du mois où la tâche cron doit être exécutée.
  4. Mese: Ce champ peut prendre des valeurs de 1 à 12 et indique le mois de l'année au cours duquel la tâche cron doit être exécutée.
  5. Giorno della Settimana: Ce champ peut prendre des valeurs de 0 à 7, où 0 et 7 représentent le dimanche. Indique le jour de la semaine où la tâche cron doit s'exécuter.
  6. Commande ou script: Il s'agit de la commande que vous souhaitez exécuter ou du chemin d'accès au fichier de script à exécuter. Il peut inclure n'importe quelle commande que vous exécuteriez normalement à partir de la ligne de commande.

Chaque champ est séparé par un espace. Vous pouvez également utiliser des opérateurs spéciaux comme "", "/", "-", "," Et "/" pour spécifier les tâches cron qui se répètent à intervalles réguliers ou se produisent à des moments précis.

Par exemple, la ligne 0 14 * * * /percorso/allo/script.sh dans la crontab indique une tâche cron qui exécutera le script spécifié tous les jours à 14h00.

Comment configurer un cron via SSH

Avant de commencer, il est important de noter que vous aurez besoin d'un accès SSH à votre serveur. Si vous ne l'avez pas déjà fait, vous devriez l'obtenir, car SSH est un outil essentiel pour gérer un serveur distant.

SSH, abréviation de Secure Shell, est un protocole réseau qui permet une communication sécurisée entre deux systèmes à l'aide d'une architecture client-serveur. Il permet aux utilisateurs de contrôler et de modifier leurs serveurs distants via Internet.

Pour accéder à votre serveur via SSH, vous aurez besoin des informations d'identification de l'utilisateur, qui incluent l'adresse IP, le nom d'utilisateur et le mot de passe du serveur. Si vous ne disposez pas de ces informations, vous devrez les demander à votre administrateur système.

Voici les étapes pour configurer un cron via crontab :

  1. Accès au serveur: Tout d'abord, connectez-vous à votre serveur en utilisant SSH. Vous pouvez le faire depuis votre terminal en utilisant la commande ssh username@your_server_ip.
  2. Ouverture de la Crontab: Une fois connecté, vous pouvez accéder à la crontab, la table utilisée par cron pour suivre les tâches planifiées, à l'aide de la commande crontab -e. Si c'est la première fois que vous utilisez crontab, vous serez invité à choisir l'éditeur de texte de votre choix. Vous pouvez choisir parmi des options telles que nano, vi ou emacs.
  3. Rédaction d'emploi: Maintenant, vous pouvez publier votre annonce. Chaque ligne crontab représente un travail et se compose de six parties : minute (0-59), heure (0-23), jour du mois (1-31), mois (1-12), jour de la semaine (0-7, où 0 et 7 représentent tous deux dimanche), et la commande ou le script à exécuter.
  4. Enregistrement du travail: Après avoir entré votre travail, enregistrez et fermez l'éditeur. Si vous utilisez nano, par exemple, vous pouvez le faire en appuyant sur CTRL+X, puis Y pour confirmer l'enregistrement et enfin Enter pour confirmer le nom du fichier.

Exemples de Chron

Pour vous aider à mieux comprendre comment mettre en place des crons, voici quelques exemples pratiques :

  1. Exécutez une commande toutes les minutes: Pour ce faire, vous entreriez * * * * * comando dans le crontab. La commande s'exécutera toutes les minutes.
  2. Exécutez un script tous les jours à 2h: Insérer 0 14 * * * /percorso/allo/script.sh dans le crontab. Le script s'exécutera tous les jours à 14h00.
  3. Exécuter une commande le premier jour de chaque mois: Insérer 0 0 1 * * comando dans le crontab. La commande sera exécutée à 00h00 le premier jour de chaque mois.
  4. Exécutez une commande tous les lundis à 6h du matin: Insérer 0 6 * * 1 comando dans le crontab. La commande s'exécutera tous les lundis à 6h00.
  5. Exécuter un script toutes les 15 minutes: Insérer */15 * * * * /percorso/allo/script.sh dans le crontab. Le script s'exécutera toutes les 15 minutes.
  6. Exécuter une commande toutes les heures: Insérer 0 * * * * comando dans le crontab. La commande s'exécutera toutes les heures.
  7. Exécutez une commande toutes les demi-heures: Insérer */30 * * * * comando dans le crontab. La commande s'exécutera toutes les demi-heures.
  8. Exécuter un script toutes les deux heures: Insérer 0 */2 * * * /percorso/allo/script.sh dans le crontab. Le script s'exécutera toutes les deux heures.
  9. Exécutez une commande tous les jours à 8h du matin et 8h du soir: Insérer 0 8,20 * * * comando dans le crontab. La commande s'exécutera tous les jours à 8h00 et 20h00.
  10. Exécuter un script le premier lundi de chaque mois: Insérer 0 0 * * 1 [ "$(date +\%m)" != "$(date +\%m -d '1 week')" ] && /percorso/allo/script.sh dans le crontab. Le script s'exécutera le premier lundi de chaque mois.
  11. Exécutez une commande à 10.30hXNUMX tous les jours: Insérer 30 10 * * * comando dans le crontab. La commande s'exécutera tous les jours à 10h30.
  12. Exécutez un script toutes les 5 minutes pendant les heures ouvrables (9-17): Insérer */5 9-17 * * * /percorso/allo/script.sh dans le crontab. Le script s'exécutera toutes les 5 minutes pendant les heures ouvrables.
  13. Exécutez une commande chaque année: Insérer 0 0 1 1 * comando dans le crontab. La commande sera exécutée une fois par an, précisément à 00h00 le 1er janvier.
  14. Exécutez un script toutes les 10 minutes le week-end: Insérer */10 * * * 6,7 /percorso/allo/script.sh dans le crontab. Le script s'exécutera toutes les 10 minutes le samedi et le dimanche.
  15. Exécutez une commande tous les quarts d'heure du lundi au vendredi: Insérer */15 * * * 1-5 comando dans le crontab. La commande s'exécutera toutes les 15 minutes du lundi au vendredi.
  16. Exécuter un script à 3 h 21 le premier jour du printemps (XNUMX mars): Insérer 0 15 21 3 * /percorso/allo/script.sh dans le crontab. Le script sera exécuté à 15 heures le 00 mars.
  17. Exécuter une commande toutes les 5 heures: Insérer 0 */5 * * * comando dans le crontab. La commande s'exécutera toutes les 5 heures.
  18. Exécuter un script tous les jours à 2h, sauf le week-end: Insérer 0 14 * * 1-5 /percorso/allo/script.sh dans le crontab. Le script sera exécuté à 14 heures du lundi au vendredi.
  19. Exécutez une commande tous les jours à 22h30: Insérer 30 22 * * * comando dans le crontab. La commande s'exécutera tous les jours à 22h30.
  20. Exécuter un script le 15 de chaque mois: Insérer 0 0 15 * * /percorso/allo/script.sh dans le crontab. Le script s'exécutera le 15 de chaque mois à 00h00.

N'oubliez pas que cron est un outil puissant, mais un grand pouvoir s'accompagne également d'une grande responsabilité. Il est important de toujours revérifier les paramètres de la tâche cron pour éviter les problèmes potentiels.

Cron pour obtenir des URL via curl ou wget

Si vous êtes un webmaster ou gérez un serveur Web, vous devrez peut-être effectuer des tâches planifiées en appelant des URL spécifiques. Cela peut être particulièrement utile pour automatiser des processus tels que l'interrogation des données d'une API, le déclenchement d'opérations de maintenance, le déclenchement de sauvegardes ou le nettoyage de bases de données. La manière la plus courante d'y parvenir est d'utiliser les utilitaires `curl` ou `wget`.

boucle contre wget

`Curl` et `wget` sont deux commandes de ligne de commande très populaires dans les systèmes de type Unix, utilisées pour transférer des données vers ou depuis un serveur à l'aide de divers protocoles réseau, notamment HTTP, HTTPS, FTP et bien d'autres.. Alors que `curl` est plus puissant et flexible, `wget` est connu pour sa robustesse et sa facilité d'utilisation, en particulier lorsqu'il s'agit de téléchargements récursifs.

Voici cinq exemples de tâches cron qu'ils utilisent curl o wget:

  1. Appeler une URL tous les jours à 6h du matin avec curl: Insérer 0 6 * * * curl http://miosito.com/operazione dans le crontab. Cette tâche cron appellera l'URL spécifiée tous les jours à 6h00.
  2. Télécharger un fichier tous les soirs à 2 heures avec wget: Insérer 0 2 * * * wget -O /percorso/al/file http://miosito.com/file.zip dans le crontab. Cette tâche cron téléchargera le fichier spécifié et l'enregistrera à l'emplacement spécifié tous les soirs à 2h00.
  3. Appelez l'API d'un service toutes les heures avec curl: Insérer 0 * * * * curl https://api.mioservizio.com/update dans le crontab. Cette tâche cron appellera l'API spécifiée toutes les heures.
  4. Appelez WordPress wp-cron.php toutes les 15 minutes avec wget: Insérer */15 * * * * wget -q -O - http://miosito.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1 dans le crontab. Cette tâche cron appellera le fichier wp-cron.php de votre site WordPress toutes les 15 minutes. La sortie sera ignorée pour éviter de remplir les journaux avec des informations inutiles.
  5. Téléchargez une liste de fichiers tous les jours à 5h avec wget: Insérer 0 17 * * * wget -i http://miosito.com/lista-di-file.txt dans le crontab. Cette tâche cron téléchargera une liste de fichiers à partir d'un fichier texte spécifié tous les jours à 17h00.

N'oubliez pas que c'est curl que wget ils ont de nombreuses options et fonctionnalités ; par conséquent, il peut être utile de consulter les pages de manuel associées pour savoir comment personnaliser au mieux vos tâches cron.

 

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

Managed Server Srl est un acteur italien leader dans la fourniture de solutions système GNU/Linux avancées orientées vers la haute performance. Avec un modèle d'abonnement peu coûteux et prévisible, nous garantissons que nos clients ont accès à des technologies avancées en matière d'hébergement, de serveurs dédiés et de services cloud. En plus de cela, nous proposons des conseils système sur les systèmes Linux et une maintenance spécialisée en SGBD, sécurité informatique, Cloud et bien plus encore. Nous nous distinguons par notre expertise dans l'hébergement de CMS Open Source de premier plan tels que WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart et Magento, soutenus par un service d'assistance et de conseil de haut niveau adapté aux administrations publiques, aux PME et à toutes tailles.

Red Hat, Inc. détient les droits de Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale d'AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de The FreeBSD Foundation ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt. Oracle Corporation détient les droits sur Oracle®, MySQL® et MyRocks® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; REDIS® est une marque déposée de Redis Labs Ltd. F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB. Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited. Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal®. Amazon Web Services, Inc. détient les droits sur AWS® ; Google LLC détient les droits sur Google Cloud™ et Chrome™ ; Microsoft Corporation détient les droits sur Microsoft®, Azure® et Internet Explorer® ; La Fondation Mozilla détient les droits sur Firefox®. Apache® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée du groupe PHP. CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV. Hetzner Online GmbH détient les droits sur Hetzner® ; OVHcloud est une marque déposée d'OVH Groupe SAS ; cPanel®, LLC détient les droits sur cPanel® ; Plesk® est une marque déposée de Plesk International GmbH ; Facebook, Inc. détient les droits sur Facebook®. Ce site n'est affilié, sponsorisé ou autrement associé à aucune des entités mentionnées ci-dessus et ne représente en aucune manière aucune de ces entités. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées appartiennent à leurs titulaires. MANAGED SERVER® est une marque déposée au niveau européen par MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italie.

Retour en haut de page