Profitez de la commande crontab Linux pour automatiser diverses tâches banales et répétitives, vous simplifiant ainsi la vie. Cet excellent outil facile à utiliser, combiné à des scripts, peut non seulement automatiser toutes sortes de tâches, mais aussi aider à éviter de simples erreurs humaines ou des oublis.
Ici, vous apprendrez ce qu'est crontab, comment ajouter des tâches automatisées et des exemples concrets.
Qu'est-ce que Crontab?
Crontab est un processus démon qui s'exécute en arrière-plan sur presque toutes les machines Linux, et est utilisé pour planifier et exécuter des tâches automatisées à des intervalles de temps définis. Il est également souvent utilisé par les développeurs de logiciels pour exécuter des tâches chronophages en arrière-plan.
Cela peut être n'importe quoi, y compris, mais sans s'y limiter, l'envoi d'e-mails par lots, la vérification de votre flux Twitter, l'exécution de sauvegardes ou simplement l'exécution d'un rappel.
Commandes de base de Crontab
Chaque utilisateur Linux sur la machine a son propre fichier crontab, qui contient ses travaux crontab actifs. Voici quelques commandes de terminal de base que vous utiliserez pour afficher et modifier le fichier crontab:
- crontab-l Répertoriez toutes les tâches crontab.
- crontab -e Modifiez le fichier crontab.
- crontab -r Supprimez toutes les entrées du fichier crontab.
Les commandes ci-dessus seront pour le Utilisateurs actuels fichier crontab. Si vous devez modifier le fichier crontab d'un autre utilisateur, utilisez simplement le -u option. Par exemple, vous pouvez modifier le jdoe fichier crontab de l'utilisateur avec la commande:
Vous voulez mieux gérer les utilisateurs sur Ubuntu Linux? La réponse est de créer des groupes, puis d'utiliser la fonctionnalité d'ajout d'utilisateur d'Ubuntu.
sudo crontab -ujdoe -e
Format des travaux Crontab
Chaque tâche crontab se compose d'une ligne et est formatée comme ci-dessous:
COMMANDE MINUTE HEURE JOUR MOIS SEMAINE
Le tableau ci-dessous explique les différents éléments du travail crontab:
Élément | Ranage | Description |
---|---|---|
Minute | 0 - 59 | La minute à laquelle exécuter le travail crontab. |
Heure | 0 - 23 | Heure à laquelle exécuter le travail crontab. |
Jour | 1 - 31 | Le jour du mois auquel le travail crontab doit être exécuté. |
Mois | 1 - 12 | Le mois pour exécuter le travail crontab à. |
Jour de la semaine | 0 - 6 | Le jour de la semaine auquel le travail crontab doit être exécuté. |
Commander | Toute commande Linux que vous pouvez exécuter sur le terminal. |
Vous pouvez utiliser un astérisque (*) dans l'un des champs pour désigner un caractère générique, ce qui signifie que le travail crontab s'exécutera indépendamment de cette période. Par exemple, la tâche crontab ci-dessous s'exécutera chaque nuit à exactement 3 h 20:
20 3 * * * /root/backup.sh
Valeurs multiples
Chaque période de temps peut également inclure plusieurs éléments. Vous pouvez spécifier les valeurs exactes en les séparant par une virgule, et la tâche crontab ci-dessous s'exécutera toutes les heures à 20 et 50 minutes après l'heure:
20,50 * * * * /chemin/vers/command.sh
Cependant, si vous souhaitez exécuter la tâche crontab à des intervalles spécifiques dans une période donnée, vous pouvez utiliser */POINT FINAL, et le travail crontab ci-dessous s'exécutera automatiquement 15 minutes après l'heure toutes les trois heures:
15 * / 3 * * * /chemin/vers/command.sh
Garder les tâches Crontab silencieuses
Tout dépendant, vous voudrez peut-être éliminer toutes les sorties des tâches crontab afin qu'elles ne se retrouvent pas dans le dossier de messagerie de votre système. Vous pouvez le faire en ajoutant > / dev / null 2> & 1 à n'importe quel travail crontab. Par exemple:
0 6 15 * * /chemin/to/backup.sh> / dev / null 2> & 1
Ajout de travaux Crontab
En règle générale, la méthode la plus utilisée pour ajouter ou modifier des tâches crontab est la crontab -e commander. Exécutez cette commande dans le terminal:
crontab -e
Cela ouvrira un éditeur de texte tel que nano avec le contenu de votre fichier crontab. Chaque travail crontab réside sur une seule ligne et vous pouvez ajouter, modifier et supprimer des lignes comme vous le souhaitez. Une fois terminé, enregistrez et fermez le fichier en appuyant sur Ctrl + W, suivi du Oui et Entrer clés, qui activeront immédiatement toutes les tâches crontab dans le fichier.
Raccourci pour ajouter des travaux
Au lieu de modifier manuellement le fichier crontab, il existe une simple commande rapide que vous pouvez exécuter pour ajouter une tâche. Par exemple, si vous souhaitez ajouter cette tâche crontab qui s'exécute tous les dimanches à 14h00:
0 14 * * 0 / chemin / vers / commande.sh
Vous pouvez ajouter le travail à votre fichier crontab avec la commande unique:
(crontab -l; echo "0 14 * * 0 /chemin/vers/commande.sh";) | crontab
La commande ci-dessus répertorie simplement tous les travaux actuellement dans votre fichier crontab, imprime le nouveau travail et transfère tout dans crontab remplacer son contenu.
Liste / suppression du fichier Crontab
Vous pouvez lister tous les jobs actuellement actifs dans votre fichier crontab avec la commande:
crontab -l
Vous pouvez également supprimer toutes les tâches crontab et vider le contenu de votre fichier crontab avec la commande:
crontab -r
Exemple: Jouez des sons!
Besoin d'un rappel rapide toutes les deux heures pendant que vous travaillez pour vous faire savoir que le temps est écoulé? Prenez votre clip audio préféré dans presque tous les formats (.wav, .mp4, n'importe quoi), et s'il est enregistré à (par exemple) /home/myuser/myalert.wav faites-le jouer automatiquement avec le travail crontab:
0 * / 2 * * * aplay /home/myuser/myalert.wav
Que diriez-vous de vous donner un bel envoi du travail de la semaine avec votre chanson préférée jouée automatiquement à 17h00 tous les vendredis après-midi? Prenez votre extrait de chanson préféré, et s'il est enregistré par exemple /home/myuser/friday_song.mp4 vous ajouteriez le travail crontab:
0 17 * * 5 aplay /home/myuser/friday_song.mp4
Exemple: sauvegarde de fichiers avec Rsync
L'une des nombreuses excellentes utilisations de crontab est la possibilité de sauvegarder automatiquement vos fichiers sur un serveur distant. Réduisez considérablement votre risque de perdre à nouveau des données importantes avec ce excellent tutoriel rsync.
Exemple: vérifier si les sites sont en ligne
Peut-être souhaitez-vous vérifier automatiquement toutes les cinq minutes si différents sites sont en ligne ou non, et être averti par e-mail si l'un d'entre eux est en panne. Voici un petit script PHP astucieux qui fera exactement cela.
php
// Adresse e-mail pour notifier les sites en panne
$ email = '[email protected]';
// Définir les URL à vérifier
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Parcourir les URL
$ down = [];
foreach ($ urls as $ url) {
// Vérifier l'URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Envoyer un e-mail si nous avons des sites en panne
if (count ($ down)> 0) {
mail ($ email, "Urgent - Sites down!", "Votre bot a détecté que les sites suivants sont actuellement en panne:
". implode ("
", $ down));
}
// Quitter
exit (0);
/ **
* Vérifier l'URL < br /> * /
function check_url (string $ url): int
{
// Envoyer via cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Obtenir le statut et fermer la connexion
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Retour
return $ status;
}
Modifiez simplement l'adresse e-mail et les URL souhaitées à vérifier en haut du fichier, et enregistrez il quelque part comme /home/myuser/check_sites.php . Pour que ce script s'exécute toutes les cinq minutes et vous avertisse par e-mail de tout site en panne, ajoutez le travail crontab:
* / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1
Automatisez votre vie!
Avec cet article, vous J'espère avoir compris la puissance d'automatisation de crontab et comment il peut être utilisé pour automatiser de nombreuses tâches banales et répétitives de votre la vie.
Vous avez appris ce qu'est crontab, le fichier crontab, comment les tâches crontab sont formatées, et quelques exemples concrets de la façon dont il peut être utilisé.
Vous voulez gagner du temps et éviter les tâches répétitives? La réponse est l'automatisation! Voici quelques applications d'automatisation de bureau Linux utiles à essayer.
- Programmation
- Linux
Abonnez-vous à notre Newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!
Encore une étape…!
Veuillez confirmer votre adresse e-mail dans le e-mail que nous venons de vous envoyer.