Apprendre Linux

Comment créer des tâches Cron sur Linux

Comment créer des tâches Cron sur Linux

Un travail Cron ou Cron est un planificateur temporel commun dans les systèmes Linux/Unix. Il planifie des tâches utilisateur spécifiées pour qu'elles s'exécutent périodiquement à une date, une heure ou des intervalles fixes. La plupart de ces tâches sont des scripts pour exécuter des fonctions telles que des sauvegardes, etc. Pour créer ces tâches cron, nous utilisons les commandes crontab. Un crontab est une commande/utilitaire UNIX utilisé pour créer et gérer des tâches cron.

Comme vous le verrez ci-dessous, créer et éditer une tâche cron est assez simple. La partie la plus étonnante est que vous n'avez pas besoin de redémarrer cron ou même votre PC après avoir créé ou modifié une tâche cron. Enregistrez simplement le fichier et vous êtes prêt à partir.

Utilisations courantes des tâches Cron

Éléments de base d'une commande cron

La syntaxe standard de la crontab est la suivante :

a b c d e USERNAME /chemin/vers/sortie du script

1.L'heure et la date ainsi que le degré de répétitivité du travail sont spécifiés par les cinq champs :

Remarque : les jours commencent par le lundi. 0 et 7 représentent dimanche

2. NOM D'UTILISATEUR: N'oubliez pas de le remplacer par votre nom d'utilisateur

3. L'emplacement spécifique et le script à exécuter par cron sont spécifiés par le troisième segment :

/chemin/vers/script

4. La dernière section définit la notification à l'utilisateur à la fin du travail comme moyen de garder une trace des tâches :

production

Cependant, votre boîte de réception peut être pleine de tâches mineures qui sont fréquemment canalisées. Pour éviter cela, vous pouvez désactiver la sortie automatique des e-mails en ajoutant la chaîne ci-dessous à votre commande cron :

>/dev/null 2>&1 e.g a b c d e NOM D'UTILISATEUR /chemin/vers/script>/dev/null 2>&1

De plus, cron utilise quatre autres valeurs utilisées pour spécifier plusieurs valeurs dans un champ. Elles sont:

Configuration des tâches cron

Les commandes crontab sont responsables de la création et de la modification des tâches cron car les fichiers cron ne doivent pas être modifiés directement. La crontab définit comment vous pouvez créer, modifier, répertorier, déboguer, installer et désinstaller les tâches cron.

Avant de commencer avec les tâches cron, il est essentiel de vous assurer que votre bureau ou serveur Linux est à jour en exécutant les commandes ci-dessous :

mise à jour sudo apt mise à jour sudo apt

Si vous n'avez pas installé le package cron sur votre système, installez-le avec la commande ci-dessous :

sudo apt-get install cron

Installer cron

Comment modifier le fichier crontab?

Pour terminer le processus, vous devrez configurer la tâche cron. L'utilisateur connecté lors de la création d'une tâche cron en devient automatiquement le propriétaire. Cela peut être changé en créant un propriétaire de tâche qui sera en charge de gérer la tâche cron, comme nous le verrons dans cet article.

Pour ouvrir le fichier de configuration crontab pour l'utilisateur actuellement connecté, exécutez la commande ci-dessous :

crontab -e

Vous serez invité par le système à choisir un éditeur approprié. Dans notre cas, nous choisirons la première option (nano éditeur).

crontab -e

Vous pouvez ajouter une tâche planifiée par ligne selon vos préférences.

fichier crontab

Après avoir ajouté les tâches, terminez en sauvegardant le fichier et quittez. Toutes les instructions fournies seront lues et exécutées par le démon cron. Les modifications seront appliquées même sans redémarrer votre système car le référentiel est mis à jour automatiquement.

Modifier la crontab pour un autre utilisateur

Crontab peut être modifié pour différents utilisateurs à l'aide d'une commande dans la syntaxe ci-dessous :

crontab -u autre_nom_utilisateur -e

Comment utiliser des caractères spéciaux dans les commandes crontab

Les caractères et les opérateurs dictent une plus grande personnalisation de votre système car ils étendent les capacités d'une tâche cron.

0 6* * 1-5 /racine/sauvegarde.sh

Ici, 06 signifie 6 heures du matin 1-5 signifie le nombre de jours (du lundi au vendredi).

35 1-23/2 * * * /chemin/vers/script/script.sh

1-23 spécifie la plage d'heures, /2 définit l'intervalle à toutes les deux heures.

Options de Cron

Vous voudrez peut-être répertorier les tâches cron dans votre système sans déverrouiller le fichier de configuration crontab. Cela peut être fait en lançant votre terminal et en tapant la commande ci-dessous :

crontab -l

lister les tâches cron

Cette commande répertorie toutes les tâches cron présentes dans votre système.

Pour supprimer toutes les commandes crontab, vous pouvez utiliser la commande ci-dessous :

crontab -r
crontab -r -u autre-nom d'utilisateur

Utiliser des chaînes dans Crontab

Les chaînes sont des outils extrêmement utiles pour les développeurs car elles évitent l'écriture répétitive de segments de code. Heureusement, les crontabs prennent en charge diverses valeurs de chaînes. Ils incluent:

@ toutes les heures : -identique à - " 0 * * * * " ( s'exécute une fois tous les heure)
@minuit:  -identique à - " 0 0 * * * " ( s'exécute une fois tous les journée)
@du quotidien: comme minuit
@hebdomadaire:  -identique à - " 0 0 * * 0 " ( s'exécute une fois tous les semaine)
@mensuel: -identique à - " 0 0 1 * * " ( s'exécute une fois tous les mois)
@annuellement: -identique à - " 0 0 1 1 * " ( s'exécute une fois tous les an)
@annuel: similaire à @annuellement
@reboot : Exécuté une fois après chaque redémarrage/redémarrage/démarrage.

Un bon exemple; si vous avez un script de sauvegarde que vous souhaitez exécuter tous les jours, utilisez la commande ci-dessous :

@daily /chemin/vers/script_de_sauvegarde.sh

Exemples de tâches cron

Voici une liste des tâches cron de base qui peuvent être utilisées pour commencer :

    1. Pour exécuter un script toutes les minutes :
      * * * * * /votre/script/chemin.sh
    2. Pour exécuter un script toutes les 40 minutes :
      40 * * * * /votre/script/chemin.sh
    3. Pour exécuter un script toutes les heures :
      0 * * * * /votre/script/chemin.sh
    4. Pour exécuter un script chaque minuit :
      0 0 * * * /votre/script/chemin.sh
    5. Pour exécuter un script toutes les 23 minutes après minuit, 2 h 00 et 4 h 00 tous les jours :
      23 0-23/2 * * * /votre/script/chemin.sh
    6. Pour exécuter un script à 4.05 tous les dimanches.
      5 4 * * soleil /votre/script/chemin.sh
    7. Pour exécuter un script à 22h en semaine.
      0 22 * ​​* 1-5 /votre/script/chemin.sh
    8. Pour exécuter un script le 1er décembre - minuit.
      0 0 0 12 * /votre/script/chemin.sh
    9. Pour exécuter un script le samedi à minuit.
      0 0 * * 6 /votre/script/chemin.sh
    10. Pour exécuter un script toutes les heures.
      0 * * * * /votre/script/chemin.sh

Avec ces exemples de base, vous comprendrez mieux la séquence et comment elle peut être modifiée.

Limiter l'accès à Cron

Nous voyons que les tâches cron peuvent être très utiles, surtout lorsque vous souhaitez automatiser vos tâches. Cependant, cela peut aussi être risqué si le système permet à n'importe quel utilisateur de créer une tâche cron. Même si cela n'a pas d'impact sur les données personnelles, certaines tâches cron peuvent prendre une quantité assez importante de ressources système, retardant ainsi le PC. Pour éviter de tels scénarios, l'administrateur système (utilisateur root) peut créer un /etc/cron.Autoriser  ou alors /etc/cron.Nier le fichier qui contient uniquement les utilisateurs qui peuvent 'créer/ne pas créer' un travail de cron.

le /etc/cron.Autoriser le fichier contient des utilisateurs qui peuvent créer, modifier, afficher ou supprimer des fichiers crontab. Si ce fichier n'existe pas, tous les utilisateurs peuvent créer et gérer des tâches cron autres que celles du /etc/cron.Nier déposer. Si aucun de ces fichiers n'est présent, des privilèges de superutilisateur sont requis pour exécuter la commande crontab.

cron autoriser le fichier

Maintenant que vous avez empêché les utilisateurs non root de créer des tâches cron s'ils en avaient déjà, vous pouvez envisager d'ajouter leurs tâches cron dans le fichier crontab racine. Mais voici un casse-tête - En ajoutant leurs tâches cron à la crontab racine, cela n'exécute-t-il pas leurs tâches cron en tant que root? Eh bien, voici l'importance du champ USERNAME dont nous avons parlé ci-dessus dans la syntaxe de la commande cron. Par exemple, la commande ci-dessous :

0 * * * * fosslinux /chemin/vers/script.sh

S'exécutera en tant qu'utilisateur "fosslinux" tâche cron et non en tant qu'utilisateur root.

Conclusion

Vous disposez désormais d'un guide clair sur l'utilisation des tâches Cron pour automatiser diverses tâches sur votre système. Cela ne devrait pas vous confondre avec les applications de démarrage. Utilisez les exemples ci-dessus pour essayer d'automatiser des scripts simples. Avec le temps, vous pouvez combiner des caractères spéciaux et des caractères génériques pour effectuer des tâches beaucoup plus banales. Si vous ne faites que commencer, ce serait formidable de lire notre article sur le didacticiel de script bash avec des exemples qui vous aideront à créer votre premier script.

Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...