Исполнение скрипта в определенное время

Posted by

В повседневной жизни бывают ситуации когда нужно чтобы составленный скрипт начал свою работу не вот прям сейчас же, а через определенное время. Можно конечно использовать планировщик cron, но вот чтобы скрипт еще и завершился после назначенного времени это сделать будет проблематично. Поиск решения данной задачи сподвиг меня задействовать утилиту timeount ( — run a command with a time limit) которая входит в пакет и значит она установлена преимущественно и у Вас по умолчанию, т.к. данный пакет содержит многие необходимые утилиты используемые в повседневности консольщика.

Почитать много больше информации можно так:

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

Вот так, оказывается в самой системе (в моем случае это .5 Desktop/Server) можно комбинирую различные утилиты исполнять задуманное, думаю стоит и Вам обращаться по больше к справочным данным используемых утилит с целью а не затесалась ли там интересная, продуктивная возможность исполнения задуманного. На этом считаю заметку пока завершенной, в последствии ее конечно же можно будет дополнить. С уважением автор блога – ekzorchik.

Leave a Reply

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

четыре × пять =