Как добавить команды Linux в очередь и выполнить их один за другим

by itisgood

Task Spooler описание

Сегодня я наткнулся на классную утилиту командной строки Linux под названием «Task Spooler».

Как сказано в названии, – это пакетная система Unix, которая может быть использована для добавления команд Linux в очередь и выполнения их один за другим в числовом порядке (в порядке возрастания, если быть точным).

Не путайте его с помощью команды «at», которая используется для выполнения команд Linux в указанное время.

В отличие от команды at,Task Spooler запускает команду сразу из очереди, как только закончится предыдущая команда.

Добавить команды Linux в очередь и выполнить их один за другим

Установка Task Spooler

На Debian, Ubuntu, Linux Mint:

Task Spooler доступен в репозиториях по умолчанию для Debian, Ubuntu и других систем на основе DEB.

Таким образом, вы можете установить его с помощью команды:

$ sudo apt-get install task-spooler

Для других систем вы можете загрузить исходный файл Spooler Task из этой ссылки и создать его как родной пакет для дистрибутива Linux, который вы используете, и установить его, как описано в любом из следующих способов.

Использование

Давайте посмотрим на некоторые практические примеры.

Все приведенные здесь примеры протестированы в системе Ubuntu 16.04 LTS.

Примечание. В Debian / Ubuntu диспетчер задач может быть запущен командой «tsp», потому что есть еще одна программа с тем же именем, что и ts (инструмент «Time Stamping Authority tool» (клиент / сервер). Для дистрибутивов Linux, отличных от Ubuntu / Debian, вы можете запустите его, используя команду ts.

Запустить команду tsp:

$ tsp

Прямо сейчас в очереди нет ничего.

Добавим некоторые команды в очередь.

Для этого запустите:

$ tsp echo Welcome OSTechNix
$ tsp echo "Hello World"

Теперь запустите команду tsp еще раз, чтобы просмотреть команды в очереди:

$ tsp

Пример вывода:

ID State Output E-Level Times(r/u/s) Command [run=0/1]
0 finished /tmp/ts-out.jpHIG1 0 0.01/0.00/0.00 echo Welcome OSTechNix
1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Hello World

Как видно из вышесказанного, каждая команда имеет уникальный идентификатор в (0, 1, 2 и т. Д.) В порядке возрастания.

Кроме того, он показывает текущий статус команд (например, законченный или запущенный) в очереди.

Команды echo очень простые и короткие, поэтому мы получили результат как “ended”.

Давайте запустим некоторую команду, для которой требуется больше времени.

$ tsp find / -type f -printf '%T+ %p\n' | sort | head -n 20

Эта команда найдет и отобразит 20 самых старых файлов в корневой (/) файловой системе.

Пример вывода

2

Теперь запустите команду tsp, чтобы просмотреть список команд в очереди.

$ tsp

Пример вывода

ID State Output E-Level Times(r/u/s) Command [run=1/1]
2 running /tmp/ts-out.79rMXn find / -type f -printf %T+ %p\n
0 finished /tmp/ts-out.jpHIG1 0 0.01/0.00/0.00 echo Welcome OSTechNix
1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Hello World

Как видно из вышеприведенного вывода, выполняется команда с ID 2.

Аналогично, вы можете добавить столько, сколько команд, которые вы хотите запустить, используя диспетчер задач.

Чтобы просмотреть результаты выполнения задания, чтобы проверить, что происходит, введите следующую команду:

$ tsp -c 2

Здесь 2 – идентификатор текущей команды. нажмите CTRL + C, чтобы вернуться в терминал. он не отменяет текущую команду.

Он будет только отследить вас до Терминала. Работа все равно будет работать на заднем плане.

Чтобы очистить все команды, которые завершены из очереди, выполните:

$ tsp -C

Вышеприведенная команда очистит последние завершенные команды из очереди.

Он не будет удалять какие-либо запущенные команды или команды в очереди.

Чтобы удалить команды из очереди, запустите ее с идентификатором задания, как показано ниже:

Кроме того, вы можете удалить команду (запущенную, завершенную, поставленную в очередь), указав ID, как показано ниже.

$ tsp -r 2

 

You may also like

Leave a Comment