Сегодня мы наткнулись на утилиту командной строки в Linux под названием «Task Spooler» . Как следует из названия, Task spooler является batch системой Unix , которая может быть использована для добавления команд Linux в очередь и выполнять их один за другим в порядке (по возрастанию, если быть точным). Пожалуйста, не путайте ее с командой «at», которая используется для выполнения команд Linux в заданное время. В отличие от команды at, Task spooler запускает команду сразу из очереди, как только предыдущая команда закончена.
она может быть очень полезной, когда вы должны выполнить много команд, но вы не хотите тратить время на ожидание одной команды, чтобы закончить и запустить следующую команду. Вы можете поставить в очередь все их и Task Spooler будет выполнять их по одному. В то же время, вы можете сделать другие виды деятельности. Каждый пользователь в каждой системе есть его/ее собственная очередь заданий. Это также очень полезно, когда вы знаете, что ваши команды зависят от большого количества оперативной памяти, много используется диск, дают много продукции, или по какой-либо причине, лучше не запускать их одновременно. В двух словах, Task Spooler является программой командной строки предназначенной для установки в очередь другие команды для выполнения пакета.
В этом кратком руководстве, мы покажем вам, как установить и использовать Task Spooler в Unix-подобных операционных систем.
В Debian, Ubuntu, Linux Mint:
Task Spooler доступен в репозитории по умолчанию Debian, Ubuntu и других систем на основе DEB. Таким образом, вы можете установить ее с помощью команды:
sudo apt-get install task-spooler
Для других систем, вы можете загрузить исходный файл Task Spooler от этой ссылки и построить его в качестве родного пакета в Linux и установить его.
Давайте посмотрим некоторые практические примеры. Все примеры, приведенные здесь испытывались в системе Ubuntu 16.04 LTS.
Выполните команду 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. Он будет выполнять команды из очереди по одному в порядке возрастания. Вы можете просмотреть результат любых запущенных команд, используя свой идентификатор в любое время. Он не запустит все команды сразу. Вместо этого он будет выполнять команды одну за другой. Задача диспетчера очереди можно использовать для выполнения пакетных заданий.
И это все. Если вы нашли это руководство полезным, пожалуйста, поделитесь им в социальных сетях или напишите комментарий.