crontab

Exécuter une tâche Cron toutes les minutes

Exécuter une tâche Cron toutes les minutes
Si vous souhaitez exécuter un programme ou un script en arrière-plan sur Linux, le travail cron est très important. Avec l'aide de tâches cron, vous pouvez exécuter un programme ou un script en arrière-plan après un intervalle de temps donné.

Jetons un coup d'œil à quelques exemples concrets de tâches cron.

Il existe de nombreuses autres utilisations des tâches cron sous Linux.

Dans cet article, je vais vous montrer comment exécuter des tâches cron toutes les minutes sous Linux. J'utiliserai Debian 9 Stretch pour la démonstration. Mais vous pouvez utiliser n'importe quelle distribution Linux moderne de votre choix. Commençons.

Les bases de Crontab :

Sous Linux, vous n'avez pas besoin d'être racine afin d'exécuter des tâches cron. Vous pouvez exécuter des tâches cron en tant qu'utilisateur. Chaque utilisateur sous Linux peut utiliser un crontab fichier pour exécuter leur propre ensemble de tâches cron.

Par défaut, un utilisateur n'a pas de crontab fichier sous Linux. Vous pouvez créer un crontab fichier avec la commande suivante :

$ crontab -e

Si vous exécutez cette commande pour la première fois, vous devriez alors être invité à choisir un éditeur de texte dans la liste. je vais choisir nano, celui par défaut. Vous pouvez choisir celui que vous aimez. Une fois que vous avez terminé, appuyez sur .

le crontab le fichier doit être créé (s'il n'est pas déjà disponible) et ouvert avec votre éditeur de texte préféré.  Maintenant, vous pouvez ajouter vos propres tâches cron à la fin de ce fichier et une fois que vous êtes satisfait, enregistrez-le et quittez l'éditeur de texte.

Syntaxe d'exécution d'une commande toutes les minutes :

La syntaxe de crontab fichier est le suivant :

minute heure dayOfMonth mois dayOfWeek commandToRun

Ici,

Pour exécuter un commandToRun commande toutes les minutes, vous devez l'écrire dans le crontab fichier comme suit :

* * * * * commandToRun

Exécuter une tâche Crob toutes les minutes :

Maintenant que nous connaissons les théories, ajoutons un script simple minuteur.sh au crontab fichier et voir comment le gérer.

Dans le minuteur.sh script, je n'ai que les lignes de codes suivantes. Tout ce qu'il fait est de créer un nouveau fichier /home/shovon/bin/timer.Journal (s'il n'existe pas déjà) et lui ajoute la sortie de la commande date.

Ajoutons maintenant le script à notre crontab et laissez-le s'exécuter toutes les minutes avec la ligne suivante :

* * * * * /home/shovon/bin/timer.sh

Une fois que vous enregistrez le crontab et quittez l'éditeur de texte, le nouveau crontab le fichier doit être installé.

Après une minute, un nouveau fichier est minuteur.Journal est créé dans le répertoire souhaité comme vous pouvez le voir dans la section marquée de la capture d'écran ci-dessous.

Du minuteur.Journal log, il est évident que le script minuteur.sh fonctionne toutes les minutes.

Récupérer les erreurs des tâches Cron :

Pour détecter les erreurs d'une tâche cron, vous pouvez envoyer les erreurs à un Erreur.Journal fichier et sorties normales vers accès.Journal fichier par exemple. Bien sûr, vous pouvez nommer les fichiers comme vous le souhaitez.

Pour le démontrer, j'ai modifié mon script minuteur.sh un peu. Maintenant, les erreurs sont envoyées à Erreur.Journal fichier dans le /accueil/shovon/bin répertoire et les sorties sont envoyées à accès.Journal dans le /accueil/shovon/bin annuaire.

Au début le /tmp/je_doit_être_ici n'existe pas, j'obtiens donc l'erreur dans le Erreur.Journal fichier comme vous pouvez le voir.

le accès.Journal le fichier est vide pour le moment.

Maintenant je vais créer le fichier /tmp/je_doit_être_ici

Et comme vous pouvez le voir, la sortie est dans le accès.Journal fichier maintenant.

Si vous le souhaitez, vous pouvez rediriger la sortie et les erreurs dans le même fichier comme suit :

Comme vous pouvez le voir, les sorties STDIN et STDERR sont envoyées au en dehors.Journal déposer.

S'assurer que la dernière tâche est terminée avant de réexécuter la tâche :

Pour que cela fonctionne, vous pouvez créer un fichier temporaire juste après le début du travail et le supprimer juste avant qu'il ne se termine. Ensuite, vous pouvez vérifier si le fichier temporaire existe avant de commencer le travail. Si tel est le cas, vous pouvez quitter le travail et exécuter le travail uniquement lorsque le fichier temporaire n'est pas disponible.

Ce script simple fait exactement cela.

Comme vous pouvez le voir, le minuteur.pid le fichier est créé.

Lire le accès.Journal le fichier prouve que la tâche cron ne s'exécute pas avant la fin de l'exécution de la tâche cron précédente. Comme vous pouvez le voir, il a fonctionné à 01:32:01 et la prochaine fois il aurait dû fonctionner à 01:33:01, mais ce n'est pas le cas. Au lieu de cela, il a fonctionné à 01:35:01, environ 3 minutes plus tard.

Organisation des sorties de tâche Cron pour un débogage facile :

Vous pouvez bien formater les sorties pour rendre votre travail cron plus facile à déboguer.

Un exemple de la façon dont cela peut être fait est donné dans le script suivant.

Comme vous pouvez le voir, les sorties, les erreurs et les messages de réussite sont bien imprimés dans le fichier journal.

Vous pouvez faire des choses incroyables avec les tâches cron et les scripts shell. J'ai démontré certaines des idées ici. Mais le ciel est ta limite. N'hésitez pas à expérimenter avec toutes les idées que vous avez. Merci d'avoir lu cet article.

Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...
Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...