GNU/Linux >> Tutoriels Linux >  >> Linux

À la commande sous Linux

at est un utilitaire de ligne de commande qui vous permet de planifier l'exécution de commandes à un moment donné. Emplois créés avec at ne sont exécutés qu'une seule fois.

Dans cet article, nous vous expliquerons comment utiliser at et ses utilitaires compagnons batch , atq , atrm pour afficher, supprimer et créer des tâches à exécuter ultérieurement.

Installation de at #

Selon la distribution, at peut ou non être présent sur votre système Linux.

Si at n'est pas installé, vous pouvez facilement l'installer en utilisant le gestionnaire de paquets de votre distribution.

  • Installer at sur Ubuntu et Debian

    sudo apt update sudo apt install at
  • Installer at sur CentOS et Fedora

    sudo yum install at

Une fois le programme installé, assurez-vous que atd , le démon de planification est en cours d'exécution et configuré pour démarrer au démarrage :

sudo systemctl enable --now atd

Comment utiliser le at Commande #

La syntaxe simplifiée pour le at commande est la suivante :

at [OPTION...] runtime

Le at la commande prend la date et l'heure (runtime ) lorsque vous souhaitez exécuter le travail en tant que paramètre de ligne de commande, et la commande à exécuter à partir de l'entrée standard.

Créons une tâche qui sera exécutée à 9h00 :

at 09:00

Une fois que vous avez appuyé sur Enter , vous serez présenté avec le at invite de commande qui commence le plus souvent par at> . Vous voyez également un avertissement qui vous indique le shell dans lequel la commande s'exécutera :

warning: commands will be executed using /bin/sh
at>

Saisissez une ou plusieurs commandes que vous souhaitez exécuter :

tar -xf /home/linuxize/file.tar.gz

Lorsque vous avez terminé d'entrer les commandes, appuyez sur Ctrl-D pour quitter l'invite et enregistrer la tâche :

at> <EOT>
job 4 at Tue May  5 09:00:00 2020

La commande affichera le numéro de la tâche ainsi que l'heure et la date d'exécution.

Il existe également d'autres moyens de transmettre la commande que vous souhaitez exécuter, en plus d'entrer la commande dans le at rapide. Une façon consiste à utiliser echo et dirigez la commande vers at :

echo "command_to_be_run" | at 09:00

Une autre option consiste à utiliser Here document :

at 09:00 <<ENDcommand_to_be_runEND

Pour lire les commandes à partir d'un fichier au lieu de l'entrée standard, appelez la commande avec -f option suivie du chemin d'accès au fichier. Par exemple, pour créer un travail qui exécutera le script /home/linuxize/script.sh :

at 09:00 -f /home/linuxize/script.sh

Par défaut, si la commande produit une sortie, at enverra un e-mail contenant la sortie à l'utilisateur une fois le travail terminé. Appelez at avec le -M option pour supprimer la notification par e-mail :

at 09:00 -M

Utilisez le -m pour envoyer un e-mail même s'il n'y a pas de sortie :

at 09:00 -m

batch Commande #

batch ou son alias at -b planifie les travaux et les exécute dans une file d'attente batch lorsque le niveau de charge du système le permet. Par défaut, les travaux sont exécutés lorsque la charge moyenne du système est inférieure à 1,5. La valeur de la charge peut être spécifiée lors de l'appel de atd démon. Si la charge moyenne du système est supérieure à celle spécifiée, les travaux attendront dans la file d'attente.

Pour créer une tâche avec batch , passez les commandes que vous souhaitez exécuter :

echo "command_to_be_run" | batch

Spécifier l'heure d'exécution #

Le at accepte un large éventail de spécifications de temps. Vous pouvez spécifier l'heure, la date et l'incrément à partir de l'heure actuelle :

  • Heure - Pour spécifier une heure, utilisez le HH:MM ou HHMM formulaire. Pour indiquer un format d'heure de 12 heures, utilisez am ou pm après le temps. Vous pouvez également utiliser des chaînes telles que now , midnight , noon , ou teatime (16h00). Si l'heure spécifiée est dépassée, la tâche sera exécutée le lendemain.

  • Date - La commande permet de programmer l'exécution d'un job à une date donnée. La date peut être spécifiée en utilisant le nom du mois suivi du jour et d'une année facultative. Vous pouvez utiliser des chaînes, telles que today , tomorrow , ou en semaine. La date peut également être indiquée à l'aide du MMDD[CC]YY , MM/DD/[CC]YY , DD.MM.[CC]YY ou [CC]YY-MM-DD formats.

  • Incrémenter - at accepte également les incréments dans le now + count time-unit format, où count est un nombre et une time-unit peut être l'une des chaînes suivantes :minutes , hours , days , ou weeks .

L'heure, la date et l'incrément peuvent être combinés, voici quelques exemples :

  • Planifiez une tâche pour le dimanche à venir à une heure dix minutes plus tard que l'heure actuelle :

    at sunday +10 minutes
  • Planifiez une tâche pour qu'elle s'exécute à 13 h 00 dans deux jours :

    at 1pm + 2 days
  • Planifiez une tâche à exécuter le 21 octobre 2020 à 12h30 :

    at 12:30 102120
  • Planifiez une tâche pour qu'elle s'exécute dans une heure :

    at now +1 hours

Vous pouvez également spécifier une heure et une date dans le [[CC]YY]MMDDhhmm[.ss] en utilisant le -t option. Voici un exemple :

at -t 202005111321.32

Spécifier la file d'attente #

Par défaut, les travaux créés avec at sont programmés dans la file d'attente nommée a et les tâches créées avec batch sont programmés dans le b file d'attente.

Les requêtes peuvent avoir un nom à partir de a à z et A à Z . Les files d'attente avec des lettres inférieures fonctionnent avec une gentillesse inférieure, ce qui signifie qu'elles ont la priorité sur celles avec des lettres supérieures.

Vous pouvez spécifier la file d'attente avec le -q option. Par exemple, pour définir un travail dans le L file d'attente, vous exécuteriez :

at monday +2 hours -q L

Liste des travaux en attente #

Pour répertorier les travaux en attente de l'utilisateur, exécutez le atq ou at -l commande :

atq

La sortie listera toutes les tâches, une par ligne. Chaque ligne comprend le numéro de travail, la date, l'heure, la lettre de la file d'attente et le nom d'utilisateur.

9	  Tue May  5 12:22:00 2020 a linuxize
12	Wed Oct 21 12:30:00 2020 a linuxize
15	Tue May  5 09:00:00 2020 a linuxize
6	  Tue May  5 09:00:00 2020 a linuxize
13	Mon May  4 23:08:00 2020 a linuxize
11	Wed Jul  1 10:00:00 2020 a linuxize
4	  Tue May  5 09:00:00 2020 a linuxize

Quand atq est appelé en tant qu'utilisateur administratif, il répertorie les travaux en attente de tous les utilisateurs.

Suppression des tâches en attente #

Pour supprimer une tâche en attente, appelez atrm ou at -r commande suivie du numéro de travail. Par exemple, pour supprimer le travail portant le numéro neuf, vous exécuterez :

atrm 9

Restriction des utilisateurs #

Le /etc/at.deny et /etc/at.allow les fichiers vous permettent de contrôler quels utilisateurs peuvent créer des travaux avec at ou batch commande. Les fichiers consistent en une liste de noms d'utilisateur, un nom d'utilisateur par ligne.

Par défaut, seul le /etc/at.deny le fichier existe et est vide, ce qui signifie que tous les utilisateurs peuvent utiliser le at commande. Si vous souhaitez refuser l'autorisation à un utilisateur spécifique, ajoutez le nom d'utilisateur à ce fichier.

Si le /etc/at.allow le fichier existe seuls les utilisateurs répertoriés dans ce fichier peuvent utiliser le at commande.

Si aucun des fichiers n'existe, seuls les utilisateurs disposant de privilèges administratifs peuvent utiliser le at commande.

Conclusion #

Le at L'utilitaire lit les commandes à partir de l'entrée standard et les exécute ultérieurement. Contrairement à crontab, les tâches créées avec at ne sont exécutés qu'une seule fois.

Pour plus d'informations sur toutes les options disponibles du at type de commande man at dans votre terminal.

Si vous avez des questions, n'hésitez pas à laisser un commentaire.


Linux
  1. Commande Linux ifconfig

  2. Commande Linux mv

  3. Linux du command

  4. Commande IP Linux

  5. Commande cd Linux

Commande gratuite sous Linux

Commande Sudo sous Linux

Localiser la commande sous Linux

Commande Du sous Linux

Commande W sous Linux

Commande Df sous Linux