Люди, которым всегда некогда, обыкновенно ничего не делают (Г. Лихтенберг).

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

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
22 апреля 2017
Как добавить команды Linux в очередь и выполнять их по одному
Сегодня мы наткнулись на утилиту командной строки в Linux под названием «Task Spooler» . Как следует из названия, Task spooler является batch системой Unix , которая может быть использована для добавления команд Linux в очередь и выполнять их один за другим в порядке (по возрастанию, если быть точным). Пожалуйста, не путайте ее с командой «at», которая используется для выполнения команд Linux в заданное время. В отличие от команды at, Task spooler запускает команду сразу из очереди, как только предыдущая команда закончена.

она может быть очень полезной, когда вы должны выполнить много команд, но вы не хотите тратить время на ожидание одной команды, чтобы закончить и запустить следующую команду. Вы можете поставить в очередь все их и Task Spooler будет выполнять их по одному. В то же время, вы можете сделать другие виды деятельности. Каждый пользователь в каждой системе есть его/ее собственная очередь заданий. Это также очень полезно, когда вы знаете, что ваши команды зависят от большого количества оперативной памяти, много используется диск, дают много продукции, или по какой-либо причине, лучше не запускать их одновременно. В двух словах, Task Spooler является программой командной строки предназначенной для установки в очередь другие команды для выполнения пакета.

В этом кратком руководстве, мы покажем вам, как установить и использовать Task Spooler в Unix-подобных операционных систем.

Добавление команд Linux в очередь и выполнять их по одному с помощью Task Spooler

Установка Task Spooler

В Debian, Ubuntu, Linux Mint:

Task Spooler доступен в репозитории по умолчанию Debian, Ubuntu и других систем на основе DEB. Таким образом, вы можете установить ее с помощью команды:

sudo apt-get install task-spooler

 

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

Применение

Давайте посмотрим некоторые практические примеры. Все примеры, приведенные здесь испытывались в системе Ubuntu 16.04 LTS.

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

Выполните команду tsp:

tsp

 

Прямо сейчас, нет ничего в очереди. Позвольте мне добавить несколько команд в очередь. Для этого выполните следующую команду:

tsp echo Добро пожаловать в AndreyEx
tsp echo "Привет, Мир"

 

Теперь запустите 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 Добро пожаловать в AndreyEx
1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Привет, Мир

 

Как вы видите, в приведенном выше выводе каждая команда имеет уникальный идентификатор (0, 1, 2 .. и т.д.) в порядке возрастания. Кроме того, она показывает состояние команд (Напр., finished или running) в очереди. Команда echo очень проста и коротка, так что мы получили результат, как «finished». Давайте запустим какую-либо команду, которая занимает больше времени, чтобы закончить.

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 Добро пожаловать в AndreyEx
1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Привет, Мир

 

Как вы видите, в приведенном выше выводе команды с ID 2 работает. Кроме того, вы можете добавить столько команд, сколько вы хотите запустить с помощью Task Spooler.

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

tsp -c 2

 

Здесь 2 является идентификатором запуска команды. нажмите CTRL + C, чтобы вернуться обратно в терминал. это не отменяет работающую команду. Это только переведет вас обратно в терминал. Работа будет по-прежнему будет идти на заднем фоне.

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

tsp -C

 

Здесь, C – заглавная буква. Эта команда удалит последние завершенные команды из очереди. Это не приведет к удалению всех запущенных команд или команд в очереди.

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

Кроме того, вы можете удалить команду (running, finished, queued up), указав идентификатор, как показано ниже.

tsp -r 2

 

Выше команда удалит команду, которая имеет идентификатор 2 из очереди.

Помните, что вам нужно запустить Task Spooler, отличный от дистрибутивов Debian / Ubuntu с помощью команды ts.

Для получения более подробной информации см справочную информацию:

man ts

 

или

man tsp

Вывод

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

И это все. Если вы нашли это руководство полезным, пожалуйста, поделитесь им в социальных сетях или напишите комментарий.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 131

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close