Comment planifier les tâches en utilisant à la commande sur Linux

Comment planifier les tâches en utilisant à la commande sur Linux

Apprendre comment planifier et gérer les tâches en utilisant le programme AT

Exigences

  • Autorisations racinaires pour démarrer le démon ATD
  • Le programme AT a installé

Difficulté

FACILE

Conventions

  • # - nécessite que les commandes Linux soient exécutées avec des privilèges racine
    directement en tant qu'utilisateur racine ou en utilisant Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Introduction

Pendant l'administration d'un système, pouvoir planifier une tâche pour une exécution ultérieure, c'est une capacité cruciale: effectuer une sauvegarde d'une base de données par exemple, ou peut-être pour exécuter un script de maintenance. Moins connu que cron ou anacron, le à Programme, faisons cela d'une manière assez facile: dans ce tutoriel, nous apprendrons à l'utiliser et en quoi il est différent des programmes mentionnés ci-dessus.

Qu'est-ce que?

Contrairement à Cron, qui nous a permis d'exécuter une tâche régulière, à nous donne la possibilité d'exécuter une commande ou un script à une date et une heure spécifiées, ou après un intervalle de temps donné. Les minutes, les heures, les jours ou les semaines peuvent être utilisées comme unités. Il est même possible d'utiliser certains «mots clés» comme minuit ou l'heure du thé (qui correspond à 16h).



Installer à

Si non installé par défaut, à devrait être disponible dans presque tous les référentiels de distribution.

Pour l'installer sur Fedora, il suffit d'exécuter:

# DNF Installer à

Sur Rhel ou Centos Yum est toujours le gestionnaire de package par défaut:

# Yum Installer à

Sur Debian ou Ubuntu:

# APT-GET INSTALLATION À

Sur Archlinux:

# Pacman -s à

Commencer le démon

Une fois le programme qu'il est installé, nous devons démarrer le ATD démon et finalement l'activer si nous voulons qu'il soit lancé automatiquement au démarrage. Je suppose ici l'utilisation de Systemd comme système d'initial. La commande doit être exécutée avec des privilèges racine:

# SystemCTL Active --now ATD.service

Planifier un emploi à partir de l'invite AT

Avec tout en place, nous pouvons maintenant utiliser à. Supposons que nous voulons exécuter une commande à 1 minute à partir de maintenant. La syntaxe correcte serait:

$ à maintenant + 1 minute

Pour exécuter la même commande à 16h, dans trois jours, nous courions plutôt:

$ à 16h + 3 jours

Une fois la ligne ci-dessus exécutée, le à L'invite apparaîtra, attendant que nous entrions la commande à exécuter après l'intervalle de temps spécifié:



$ à maintenant + 1 minutes à> Echo "Hello World"> Test.txt à> Job 4 à mar 19 décembre 11:29:00 2017 

Pour quitter le à invite, nous devons appuyer sur le Ctrl + d combinaison clé. À ce stade, nous présenterons un résumé de la tâche planifiée, qui nous montrera le ID de travail (4 dans ce cas) et la date à laquelle il sera exécuté.

À titre d'exemple, nous avons entré une commande triviale pour montrer comment à travaux. Dans une minute, la chaîne «Hello World» sera écrite au test de fichier.txt, qui sera automatiquement créé s'il n'existe pas déjà.

Planifiez l'exécution d'un script

Au lieu de spécifier la commande à exécuter, de manière interactive, à partir de l'invite, nous pouvons instruire à Pour exécuter un script ou un programme existant simplement en le faisant passer comme un argument au -F drapeau ou, alternativement, en utilisant le < opérateur de redirection. Par conséquent, en supposant que nous voulons exécuter un script qui est présent dans notre répertoire de travail actuel, nous exécuterons:

# Utilisation du drapeau -f dédié $ au script maintenant + 1 minute -f.shot

# En utilisant le < redirection operator $ at now + 1 minute < script.sh

Gérer les travaux programmés

Pour faire la queue, examiner ou supprimer des travaux prévus avec AT, nous pouvons soit utiliser des commandes dédiées comme ATRM et ATQ ou courir à Avec des drapeaux spécifiques, ce dernier étant juste des alias pour le premier. Par exemple, disons que nous voulons obtenir une liste de tous les travaux en instance prévus par notre utilisateur:

 $ ATQ 4 TUe 19 décembre 11:29:00 2017 Un Egdoc 

La commande ci-dessus, si elle est lancée comme racine, affichera la tâche planifiée par tous les utilisateurs du système.

Pour supprimer un travail en file d'attente, nous pourrions utiliser ATRM ou courir à avec les drapeaux équivalents: -r ou -d. Le travail à supprimer doit être référencé par son numéro. Dans le cas ci-dessus, nous courions donc:

 $ ATRM 4

Conclusions

Bien que plus simple que cron ou anacron, le à Le programme peut être très utile dans certaines situations: pour exécuter un programme avec un retard spécifique ou lorsque vous connaissez exactement le temps où la tâche doit être exécutée. Référez le manuel pour plus d'informations et ajoutez ce petit outil à votre boîte à outils, il sera sûrement utile.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Commandes Linux de base
  • Tutoriel SQLite Linux pour les débutants
  • Ubuntu 22.04 Sauvegarde et restauration du système
  • Comment imprimer l'arbre du répertoire à l'aide de Linux
  • Fichiers de configuration Linux: 30 premiers
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…