В повседневной жизни бывают ситуации когда нужно чтобы составленный скрипт начал свою работу не вот прям сейчас же, а через определенное время. Можно конечно использовать планировщик cron, но вот чтобы скрипт еще и завершился после назначенного времени это сделать будет проблематично. Поиск решения данной задачи сподвиг меня задействовать утилиту timeount (timeout – run a command with a time limit) которая входит в пакет coreutils и значит она установлена преимущественно и у Вас по умолчанию, т.к. данный пакет содержит многие необходимые утилиты используемые в повседневности консольщика.
Почитать много больше информации можно так:
ekzorchik@srv-mon:~$ info coreutils 'timeout invocation'
Ниже несколько примеров использования утилиты timeout:
ekzorchik@srv-mon:~$ nano net
#!/bin/bash
while true ; do netstat -tln | grep :22 ; sleep 5 ; done
ekzorchik@srv-mon:~$ chmod +x net
ekzorchik@srv-mon:~$ timeout 10s ./net
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
ekzorchik@srv-mon:~$
Скрипт завершился ровно через 10 секунд выведя на консоль лишь два раза исполнения содержимого скрипта, т.к. у меня в скрипте используется пауза в 5 секунд.
Что еще особенно важно, так это можно указать что запущенный в назначенное время скрипт завершить на определенном времени.
ekzorchik@srv-mon:~$ timeout -k 15s -s 9 10s ./net
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Killed – скрипт завершился по заданному времени.
На заметку:
Аргумент -k — время через которое следует завершить (1s, 1m, 1h)
Аргумент -s — сигнал, с которым убивать (9 или SIGKILL).
Синтаксис запуска утилиты такой:
timeout [OPTIONS] timeout command
Вот так, оказывается в самой системе (в моем случае это Ubuntu 12.04.5 Desktop/Server) можно комбинирую различные утилиты исполнять задуманное, думаю стоит и Вам обращаться по больше к справочным данным используемых утилит с целью а не затесалась ли там интересная, продуктивная возможность исполнения задуманного. На этом считаю заметку пока завершенной, в последствии ее конечно же можно будет дополнить. С уважением автор блога – ekzorchik.