Запуск команд в CRON чаще раза в минуту: различия между версиями
Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Rain (обсуждение | вклад) (Новая: Насколько известно, CRON не позволяет выполнять команды чаще, чем раз в одну или более минут, например, н...) |
Rain (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 20: | Строка 20: | ||
sleeptime="$1" | sleeptime="$1" | ||
shift | shift | ||
while | while :;do | ||
"${@}"& let n-=1 | |||
[ "${n}" -gt '0' ] && sleep "${sleeptime}" || break | |||
done | done | ||
</source> | </source> | ||
[[Category:Скрипт]] | [[Category:Скрипт]] |
Текущая версия на 19:06, 11 сентября 2010
Насколько известно, CRON не позволяет выполнять команды чаще, чем раз в одну или более минут, например, нельзя сделать, чтобы команда выполнялась раз в 15 секунд. Данный скрипт в качестве параметра принимает период, через который надо запускать исполняемый файл, идущий вторым параметром. Пример: ./script.sh 10 /path/to/my/script --parameter1 -p2. В CRON необходимо добавить запись вида * * * * * /path/to/this/script sec /binary -params, чтобы он выполнялся каждую минуту.
#!/bin/bash
if [ -z "${2}" ]; then
echo -e "\e[31mError: not enough arguments\e[0m"
exit 1
elif [ ! -e "${2}" ]; then
echo -e "\e[31mError: Can't find \e[32m${2}\e[0m"
exit 2
elif [ ! -x "${2}" ]; then
echo -e "\e[31mError: \e[32m${2} \e[31mis not executable\e[0m"
exit 3
fi
n="$((60/$1))"
sleeptime="$1"
shift
while :;do
"${@}"& let n-=1
[ "${n}" -gt '0' ] && sleep "${sleeptime}" || break
done