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.

 

Informations sur l'auteur

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 la 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ℱ ; Facebook, Inc. dĂ©tient les droits sur FacebookÂź ; 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. Ce site n'est affiliĂ©, sponsorisĂ© ou autrement associĂ© Ă  aucune des entitĂ©s mentionnĂ©es ci-dessus et ne reprĂ©sente aucune de ces entitĂ©s de quelque maniĂšre que ce soit. 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