Comment planifier les tâches en utilisant à la commande sur Linux
- 2342
- 313
- Mohamed Brunet
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 utilisantSudo
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…
- « Tutoriel sur la façon d'écrire des règles de base UDEV dans Linux
- Guide de base pour chiffrer les partitions Linux avec LUKS »