GNU/Linux >> Tutoriels Linux >  >> Debian

Qu'est-ce qu'un travail Cron sous Linux

Cron est un démon qui exécute les tâches en arrière-plan du système. Les tâches planifiées pour une exécution ultérieure sont appelées "Cron Jobs “. Les tâches cron sont considérées comme idéales pour les tâches récurrentes telles que la création régulière de sauvegardes du système. Les utilisateurs de Linux peuvent automatiser leurs tâches habituelles toutes les heures, tous les jours, toutes les semaines, tous les mois ou tous les ans en utilisant Cron Jobs. Pour garder une trace des tâches Cron, "fichiers Crontab ” sont utilisés, qui peuvent être spécifiques à l'utilisateur ou avoir des tâches Cron à l'échelle du système.

Cet article vous guidera sur les tâches Cron et leurs types. De plus, nous vous montrerons également quelques exemples de tâches Cron et la procédure pour répertorier et supprimer les tâches Cron du fichier crontab. Alors, commençons !

Qu'est-ce qu'une tâche Cron sous Linux

Cron La fonctionnalité de démon sous Linux est similaire à ce que font les services sous Windows, et les deux sont utilisés pour planifier des tâches qui s'exécuteront à un moment précis en arrière-plan du système. Tâches Cron sont principalement utilisés pour nettoyer régulièrement votre cache système ou créer une sauvegarde des fichiers journaux et des bases de données. Tandis que le fichier crontab comprend tous les travaux Cron du système, et il a également une syntaxe spécifique pour écrire les commandes.

Syntaxe de la commande crontab sous Linux

La syntaxe à suivre lors de l'écriture d'une commande crontab est donnée ci-dessous :

* * * * * [Command or Script]

Ici :

  • Le premier astérisque * représente "Minute
  • Le deuxième astérisque * représente "Heure
  • Le troisième astérisque * représente "Jour du mois
  • Le quatrième astérisque * représente "Mois
  • Le cinquième et dernier astérisque * représente "Jour de la semaine

Maintenant, vérifiez les valeurs des champs mentionnés ci-dessus :

Commandes Cron Job sous Linux

Voici quelques-unes des commandes Cron Jobs que vous pouvez utiliser dans votre terminal Linux :

Commande Description
crontab -a Le "crontab -a " La commande est utilisée pour créer un fichier crontab spécifique à l'utilisateur. Vous devez spécifier le "filename » dans cette commande après avoir ajouté le « -a ".
crontab -r Le "crontab -r ” La commande est utilisée pour supprimer le fichier crontab.
crontab -e Le "crontab -e " La commande est utilisée pour éditer le fichier crontab déjà créé.
crontab -v Le "crontab -v " La commande est utilisée pour afficher l'heure de modification du fichier crontab.
crontab -l Le "crontab -l " La commande est utilisée pour afficher le contenu du fichier crontab.

Comment vérifier le service Cron sous Linux

Avant de démarrer le travail Crob, assurez-vous que le "cron.service ” est actuellement actif sur votre système Linux. À cette fin, exécutez le ci-dessous "systemctl ” commande :

$ sudo systemctl status cron.service

La sortie ci-dessous déclare que cron.service est "actif ” et s'exécutant sur notre système :

Au cas où, si le "cron.service " est inactif sur votre système Linux, puis exécutez la commande suivante pour le démarrer :

$ sudo systemctl start cron.service

Types de tâches Cron sous Linux

Les tâches Cron se composent principalement de deux types :à l'échelle du système Tâches cron et spécifiques à l'utilisateur Tâches Cron. Dans la section suivante, nous expliquerons la différence entre les deux types et leurs fichiers Cron Job associés.

Que sont les tâches Cron à l'échelle du système sous Linux

Les tâches cron ne sont accessibles que par l'administrateur système et sont appelées tâches cron à l'échelle du système. Ces tâches Cron peuvent être trouvées dans le fichier "/etc/cron.d ” et “/etc/crontab " dossier. Ces fichiers crontab sont exécutés via "/etc/cron.daily », « /etc/horaire », « /etc/cron.monthly », et « /etc/cron.weekly ”.

Si vous êtes un administrateur système, vous pouvez modifier le fichier "/etc/crontab ” dans votre éditeur nano pour définir les Cron Jobs :

$ sudo nano /etc/crontab

Que sont les tâches Cron spécifiques à l'utilisateur sous Linux

Les tâches Cron spécifiques à l'utilisateur sont les types de tâches Cron définis pour un utilisateur particulier. Ces types de tâches Cron existent dans le répertoire "/var/spool/cron/crontabs/ ” répertoire. Vous pouvez modifier manuellement les fichiers Cron Job spécifiés ; cependant, il est recommandé d'utiliser le "crontab -e ” commande pour effectuer l'opération d'édition :

$ crontab -e

L'exécution du "crontab ” avec la commande “-e ” vous montrera trois options pour éditer le fichier Cron Job. Nous avons sélectionné "1 ” car il est facile d'éditer des fichiers dans l'éditeur nano :

Votre fichier Crontab spécifié par l'utilisateur ressemblera en quelque sorte à ceci :

Exemples de tâches Cron sous Linux

Dans cette section, nous allons vous montrer quelques-uns des exemples de tâches Cron qui peuvent vous aider à comprendre la formation des tâches Cron.

Remarque : Tous les scripts utilisés dans les exemples ci-dessous sont créés manuellement.

Exemple 1 : La commande crontab suivante est ajoutée dans le fichier crontab pour exécuter le fichier "/root/backup.sh ” script après chaque 40 minutes :

40 * * * * /root/backup.sh

Après avoir tapé la commande crontab, appuyez sur "CTRL + O ” pour enregistrer les modifications ajoutées :

Exemple 2 : Dans le deuxième exemple, nous allons écrire une commande crontab qui exécutera le "filescript.sh ” à toutes les 17h00 les 10 mai, août, septembre et octobre :

00 05 10 5,8,9,10 * /usr/local/bin/filescript.sh

Exemple 3 : La commande crontab suivante exécutera le "filescript.sh ” script à 22h00 tous les samedis :

0 10 * * sat  /scripts/filescript.sh

Exemple 4 : Vous pouvez également spécifier plusieurs jours dans la commande crontab. Par exemple, pour exécuter notre "filescript.sh ” à 16h00 tous les dimanches et vendredis, nous écrirons cette commande crontab :

0 04 * * sun,fri  /script/filescript.sh

Exemple 5 : Dans l'exemple suivant, nous avons ajouté une condition qui aide à exécuter le "/scripts/filescript.sh ” fichier toutes les 30 secondes :

* * * * * /scripts/filescript.sh
* * * * *  sleep 30; /scripts/filescript.sh

Exemple 6 : Vous pouvez également utiliser des chaînes Cron Job spéciales pour planifier des tâches. Par exemple, "@daily " est ajouté au début de la commande crontab pour planifier une tâche Cron, qui s'exécutera chaque jour :

@daily /scriptdir/filescript.sh

Spécifier "@annuel » dans la commande suivante exécutera le « filescript.sh ” script sur une base annuelle :

@yearly /scriptdir/filescript.sh

Pour planifier une tâche Cron qui exécutera le "filescript.sh " fichier de script une fois par semaine, ajoutez le "@hebdomadaire ” chaîne au début de la commande crontab :

@weekly /scriptdir/filescript.sh

De même, vous pouvez utiliser "@hourly " et " @mensuel ” pour programmer les tâches Cron pour qu'elles s'exécutent respectivement une fois par heure et une fois par mois.

Exemple 7 : Vous pouvez également définir des tâches Cron pour un utilisateur particulier dans le fichier ouvert. Pour ce faire, consultez la syntaxe ci-dessous :

*****  [Username] [Script_name]

Ici, nous allons créer un Cron Job qui exécutera le "scriptfile » présent dans notre répertoire personnel pour le « linuxfoss ” utilisateur toutes les 20 minutes :

20 * * * * linuxfoss scriptfile

Exemple 8 : Vous souhaitez exécuter une sauvegarde de tous vos comptes d'utilisateurs ? À l'aide de la commande crontab, vous pouvez planifier une sauvegarde du système. Par exemple, la commande crontab ci-dessous créera une tâche Cron pour sauvegarder les comptes d'utilisateurs à 6 h 00 chaque semaine :

 0 6 * * 1 tar -zcf /var/backups/home.tgz /home/

Appuyez sur "CTRL + O ” pour écrire les commandes dans le fichier crontab puis quitter l'éditeur nano :

Comment répertorier les tâches Cron sous Linux

La liste des tâches Cron dans le terminal est utile lors de la visualisation de toutes les tâches Cron à la fois. A cet effet, vous pouvez ajouter le "-l " dans l'option "crontab ” puis exécutez-la sur votre terminal Linux comme suit :

$ crontab -l

Dans notre fichier crontab, nous avons uniquement enregistré la tâche Cron pour créer une sauvegarde pour tous les comptes d'utilisateurs, et cela peut également être vu dans la sortie :

Comment créer une sauvegarde des tâches Cron sous Linux

Nous vous avons montré la liste des tâches Cron en utilisant le "crontab " commande. Vous pouvez également rediriger la sortie de "crontab -l ” dans un fichier spécifique pour créer une sauvegarde des tâches Cron ajoutées. Le STDOUT ou l'opérateur de redirection "> ” peut être utilisé pour effectuer l'opération spécifiée :

$ crontab -l > backupfile.txt

Maintenant, tapez le "chat ” commande avec le nom du fichier de sauvegarde de votre tâche Cron pour afficher son contenu :

$ cat backupfile.txt

Comment supprimer des tâches Cron sous Linux

Le "-r ” L'option est ajoutée dans la commande crontab pour supprimer les tâches Cron du fichier crontab. De plus, vous pouvez ajouter le "-i ” pour inviter l'utilisateur à supprimer les tâches Cron :

$ crontab -i -r

Pour supprimer les tâches Cron sans invite, exécutez le simple "crontab -r ", et vous avez terminé !

$ crontab -r

Conclusion

La planification et l'automatisation des processus répétitifs augmentent la productivité dans un système basé sur Linux tout en réduisant la surveillance manuelle et l'interruption des utilisateurs. Il existe d'énormes programmes qui aident à planifier les tâches; cependant, le "Cron » est le plus largement utilisé. Dans le fichier crontab, nous ajoutons nos tâches Cron en utilisant le "Cron ” démon. Cet article explique la syntaxe de Cron Job, les commandes associées et les types de Cron Job. De plus, nous avons également présenté des exemples de tâches Cron qui peuvent vous aider à comprendre la structure de commande Crontab.


Debian
  1. 4 alternatives à cron sous Linux

  2. Comment j'utilise cron sous Linux

  3. Qu'est-ce qu'un utilisateur Linux ?

  4. Qu'est-ce que Rootkit Hunter ?

  5. Linux :exécuter la tâche cron au premier plan

Tâches Cron planifiées

Qu'est-ce que le shell de connexion sous Linux ?

Qu'est-ce que la moyenne de charge sous Linux ?

Qu'est-ce qu'un fichier .bashrc sous Linux ?

Linux Crontab :15 exemples de tâches Cron impressionnants

Cron Vs Anacron :Comment configurer Anacron sous Linux (avec un exemple)