GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment utiliser Linux à la commande

Présentation

Le at La commande est un utilitaire de ligne de commande Linux utilisé pour planifier une tâche pour une exécution ultérieure. L'utilitaire lit les commandes à partir de l'entrée standard et les regroupe dans un at tâche, qui ne s'exécute qu'une seule fois.

L'alternative à at est une tâche cron. Cependant, alors que at les tâches ne s'exécutent qu'une seule fois, les tâches cron sont des événements récurrents.

Dans ce didacticiel, vous apprendrez à utiliser le at commande et voir des exemples utiles pour la planification des commandes.

Prérequis

  • Un système exécutant Linux.
  • Un compte utilisateur avec des privilèges sudo.

Installer la commande at

Selon la distribution Linux que vous utilisez, le at la commande n'est peut-être pas préinstallée.

Vérifiez si at est installé en saisissant le nom de la commande dans le terminal :

Si l'utilitaire n'est pas préinstallé, le message de sortie indique Command 'at' not found .

Installer sur Ubuntu et Debian

Suivez les étapes ci-dessous pour installer at sur Ubuntu ou Debian :

1. Mettez à jour le référentiel de packages :

sudo apt update

2. Installez le at commande en lançant :

sudo apt install at

Installer sur CentOS et Fedora

Suivez les étapes ci-dessous pour installer at sur CentOS ou Fedora :

1. Mettez à jour le référentiel de packages :

sudo yum -y update

2. Exécutez la commande suivante pour installer at :

sudo yum install at

Activer le démon de planification

Le démon de planification s'exécute en arrière-plan et exécute les tâches planifiées à temps.

Exécutez la commande suivante après avoir installé le at package pour activer le atd démon de planification et configurez-le pour qu'il démarre au démarrage du système.

sudo systemctl enable --now atd

Linux au niveau de la syntaxe et des options de commande

La syntaxe du at la commande est :

at [option] runtime

Les options vous permettent d'afficher ou de supprimer des tâches planifiées et de personnaliser at planification des travaux de commande. Les options disponibles sont :

Option Description
-V Imprime le numéro de version du programme sur la sortie standard.
-q [queue] Utilise le [queue] spécifié composé d'une seule lettre, allant de a -z et A -Z . Le a la file d'attente est la valeur par défaut pour at et le b la file d'attente est la valeur par défaut pour batch . Les files d'attente avec des lettres plus élevées fonctionnent avec une gentillesse accrue.
La soumission d'un travail à une file d'attente avec une lettre majuscule traite le travail comme soumis à batch . Le batch les règles de charge moyenne s'appliquent une fois qu'il est temps d'exécuter le travail. Nommer une file d'attente pour atq l'amène à afficher uniquement les travaux en attente dans cette file d'attente.
-m Envoie un e-mail à l'utilisateur une fois le travail terminé, même s'il n'y a pas eu de sortie. Nécessite une adresse e-mail configurée pour l'utilisateur qui a planifié la tâche.
-f [file] Lit le travail à partir du [file] spécifié plutôt qu'à partir de l'entrée standard.
-b Un alias pour batch . Planifie les travaux et les exécute dans un batch file d'attente lorsque la moyenne du niveau de charge du système est inférieure à 1,5.
-l Un alias pour atq . Répertorie les travaux en attente de l'utilisateur. Si l'utilisateur est un superutilisateur, répertorie tous les travaux en attente des utilisateurs.
-d Un alias pour atrm . Supprime les tâches planifiées, identifiées par leur numéro de tâche.
-v Affiche le temps d'exécution du travail avant de lire le travail. Le format de l'heure est Thu Feb 20 14:50:00 1997 .
-c Cats le travail spécifié, montrant son contenu dans la sortie de ligne de commande standard.
-t [time_arg] Planifie une tâche pour l'heure spécifiée par le [time_arg] argument. Le format d'heure accepté est [[CC]YY]MMDDhhmm .

[runtime] Expressions temporelles

Planifiez une tâche à l'aide d'expressions temporelles absolues ou d'expressions temporelles relatives à l'heure de définition de la tâche.

Les expressions de temps absolu disponibles sont :

  • YYMMDDhhmm[.ss] . Spécifiez une année, un mois, un jour, une heure, une minute et éventuellement des secondes abrégés.
  • CCYYMMDDhhmm[.ss] . Spécifiez une année complète, un mois, un jour, une heure, une minute et éventuellement des secondes.
  • now . Indique le jour et l'heure actuels et l'exécution immédiate.
  • midnight . Indique 00h00.
  • noon . Indiquant 12h00.
  • teatime . Interprété comme 16 h 00.
  • AM . Indique l'heure avant 12h00.
  • PM . Indique l'heure après 12h00.
  • today . Le jour actuel.
  • tomorrow . Le lendemain du jour actuel.

Par exemple, la commande suivante planifie un appel de commande echo à 17h :

echo "hello" | at 5PM

Spécifiez une expression de temps relatif en ajoutant un signe plus (+ ), le montant et l'un des éléments suivants :

  • minutes
  • hours
  • days
  • weeks
  • months
  • years

Utilisation d'expressions temporelles telles que tomorrow ou tuesday , planifie les tâches de ces jours à l'heure actuelle. Précisez davantage l'heure à l'aide du + caractère.

Par exemple, la commande suivante planifie un echo appel de la commande cinq minutes après la planification de la tâche :

echo "hello" | at now +5 minutes

Environnement

Le SHELL la valeur de la variable d'environnement détermine dans quel shell (bash, zsh, etc.) le at commande utilise pour exécuter le travail. Lors de la planification du travail, la commande avertit l'utilisateur du shell qu'elle utilisera lors de l'exécution.

Linux et exemples de commandes

La section suivante montre at utile exemples de commandes.

Planifier une tâche de manière interactive

Le at La commande vous permet de planifier une tâche à l'aide de la commande interactive at rapide. Ouvrez l'invite interactive en utilisant la syntaxe suivante :

at [runtime]

L'invite interactive vous permet d'entrer les commandes à exécuter à l'heure spécifiée. La commande affiche également un avertissement indiquant quel shell la commande utilisera.

Quittez l'invite interactive et enregistrez la tâche planifiée en appuyant sur Ctrl + D . Annulez la tâche avec Ctrl + C .

Par exemple :

Dans l'exemple ci-dessus, nous avons planifié une tâche pour 17 h 00, ce qui ouvre l'invite interactive. La tâche planifiée consiste à exécuter le echo et l'utilitaire utilise le shell bash standard.

Dirigez une tâche vers à

Planifier une tâche sans le at interactif invite en redirigeant les commandes vers at et en spécifiant le temps d'exécution. Utiliser echo ou printf pour passer les commandes à at .

Par exemple :

echo "command_to_run" | at [runtime]

Pour programmer un at travail qui envoie le echo sortie de la commande dans un fichier, utilisez :

echo "hello" >> example.txt | at now

Utilisez la commande cat pour vérifier si le fichier existe afin de vous assurer que la tâche a été exécutée :

cat example.txt

Afficher une tâche planifiée

Le -c L'option affiche le contenu d'une tâche précédemment planifiée. L'option est utile si vous oubliez ce qu'était le travail ou si vous souhaitez vérifier l'heure planifiée.

Voir le contenu d'un at programmé travail en utilisant la syntaxe suivante :

at -c [job_number]

Obtenez le numéro de travail en exécutant atq commande d'abord pour lister tous les travaux en attente.

Par exemple :

Dans l'exemple ci-dessus, nous avons d'abord demandé une liste de tous les travaux en attente pour obtenir les numéros de travail, puis affiché le contenu du travail 14 dans la sortie standard.

Répertorier les tâches planifiées

Le at L'utilitaire vous permet de vérifier quels travaux sont toujours dans la file d'attente et en attente d'exécution. Il existe deux façons de voir les tâches en attente :

  • Exécuter atq commande.
  • Utilisez le -l option.

Par exemple :

at -l

La sortie affiche le numéro de travail en attente, la date, l'heure, l'année et la file d'attente pour l'utilisateur actuel. Pour répertorier les tâches en attente de tous les utilisateurs, exécutez la commande avec sudo .

sudo atq

Dans l'exemple ci-dessus, en exécutant atq affiche les tâches en attente uniquement pour l'utilisateur actuel. Exécution de atq avec sudo affiche les tâches en attente pour tous les utilisateurs.

Envoyer une notification par e-mail lors de l'exécution

Le at L'utilitaire envoie par défaut des notifications par e-mail sur les travaux terminés. Les notifications par e-mail nécessitent une adresse e-mail fonctionnelle configurée pour votre compte d'utilisateur et le système doit pouvoir envoyer des e-mails.

Pour instruire at pour envoyer des notifications par e-mail à la fin du travail, même s'il n'y a pas de sortie, spécifiez le -m option.

Par exemple :

rm example.txt | at -m tomorrow

La commande ci-dessus planifie le travail pour l'heure actuelle demain. Une fois terminé, le at l'utilitaire informe l'utilisateur en utilisant l'adresse e-mail configurée pour l'utilisateur bosko .

Exécuter des tâches sans notification

Pour éviter de recevoir des notifications par e-mail sur les travaux terminés, spécifiez le -M option lors de la planification d'un at travail.

Par exemple :

echo "shutdown -h now" | at -M 00:00

Dans l'exemple ci-dessus, nous avons planifié un arrêt du système à minuit et utilisé le -M option pour empêcher l'utilitaire d'envoyer la notification par e-mail.

Supprimer une tâche planifiée

Pour supprimer at programmé emplois, spécifiez le -r ou exécutez l'option atrm commande avec l'ID du travail. Obtenez l'ID de travail en exécutant atq ou en utilisant le -l option.

Dans l'exemple suivant, nous avons supprimé la tâche 12 :

Restreindre les utilisateurs

Le at le paquet utilise deux fichiers pour restreindre at et batch accès aux commandes :

  • /etc/at.allow
  • /etc/at.deny

Modifiez les fichiers pour autoriser uniquement certains utilisateurs à créer, supprimer ou afficher at en attente emplois. Les fichiers sont une liste de noms d'utilisateur qui peuvent ou ne peuvent pas accéder à at commandes. Un caractère de saut de ligne sépare les noms d'utilisateur et les espaces blancs ne sont pas autorisés.

Important :Si le /etc/at.allow fichier existe, seuls les utilisateurs qui y sont répertoriés sont autorisés à utiliser at ou batch , et le /etc/at.deny le fichier est ignoré. Si le /etc/at.allow le fichier n'existe pas, les utilisateurs répertoriés dans /etc/at.deny ne sont pas autorisés à utiliser at ou batch . L'utilisateur root peut toujours exécuter at commandes, quels que soient les fichiers de contrôle d'accès.

Modifiez le /etc/at.deny fichier avec les privilèges sudo pour refuser à un utilisateur l'accès à at commandes. Dans l'exemple suivant, nous avons modifié le fichier à l'aide de l'éditeur vi :

sudo vi /etc/at.deny

Après avoir ajouté un nom d'utilisateur à la liste, exécutez le at La commande utilisant le compte d'utilisateur restreint génère le message suivant :

Exécuter les tâches lorsque la charge du système le permet

Le batch commande (-b option) planifie un at tâche à exécuter lorsque la charge moyenne du système tombe en dessous de 1,5. L'exécution de tâches lorsque la charge du système est faible évite la consommation de toutes les ressources système et garantit un fonctionnement optimal du système.

Par exemple, la tâche suivante s'exécute dès que la charge du système descend en dessous de 1,5 :

batch
echo "Hello world!" >> hello.txt

Ubuntu
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande Apt-Get sous Linux

  4. Comment utiliser la commande id sous Linux

  5. Comment utiliser la commande "screen" sous Linux

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande Jobs sous Linux

Comment utiliser la commande wget sous Linux ?

Comment utiliser la commande xargs sous Linux ?

Comment utiliser la commande RPM sous Linux

Comment utiliser la commande which sous Linux