sh скрипт

poolk

Создатель
Регистрация
12 Июн 2006
Сообщения
41
Реакции
18
Всем привет.
Пните, пожалуйста, в нужную сторону - куда смотреть\копать...
Проблема вот в чем: необходим sh скрипт, который будет выполняться вечно (до кнтрл+С), каждую секунду он запускает прогу с параметрами: "прога $1 $2 $3". Параметры лежат в тхт файле рядом, разделенные табом.
Функционал примитивный, понимаю, но как написать это дело именно на sh - не знаю=( Не судите строго...
 

T0nus

Создатель
Регистрация
30 Янв 2008
Сообщения
11
Реакции
0
Вот небольшой скрипт, запускающий стандартную команду date с тремя аргументами из внешнего файла date_options.txt, где они разделены табуляцией:
Код:
INFILE="date_options.txt"
while [ 1 == 1 ]
do
	date `awk -F"[\t]" '{print(" ", $1, $2, $3)}' < $INFILE`
done
 

help40

Мастер
Регистрация
1 Окт 2006
Сообщения
252
Реакции
32
я конечно не знаю какая у тебя прога "прога $1 $2 $3"
не знаю и на сколько критически етот интервал 1 сек.

но если sh скрипт будет ждат 1 сек и потом запускать .... ждат и запускат ...
и если время изполнение прогу будет больше 1 сек , то тогда твой будуший скрипт не будет работать как надо

можно добавит несколько записи в crontab .... и тогда будешь уверен что програма запускается каждая секунда ....
 

poolk

Создатель
Регистрация
12 Июн 2006
Сообщения
41
Реакции
18
можно ж в фоне запускать, а минимальный лимит в кроне вроде 1мин(
 

help40

Мастер
Регистрация
1 Окт 2006
Сообщения
252
Реакции
32
eto primer dlq crontab , kajdoi 20 sek , konechno za kajdaq sekunda ... poluchaetsya ****

(za translit izvinite , net kirilica na etot komp)

Код:
*/1 * * * * /path/to/my/script
*/1 * * * * sleep 20 && /path/to/my/script
*/1 * * * * sleep 40 && /path/to/my/script
 

nagual

Постоялец
Регистрация
16 Фев 2009
Сообщения
65
Реакции
3
B sh скрипте тоже sleep(1) можно добавить но правильнее через крон это делать.
 

Allary

Писатель
Регистрация
3 Ноя 2008
Сообщения
6
Реакции
1
Сталкивался с подобной проблемой, крон не устраивал нужно было что-то выполнять раз в 3 секунды а у крона минимум минута

Linux
Код:
#!/bin/bash
GOON=1
while [ $GOON ]; do

php /var/home/webroot/cron_dispatcher.php

sleep 3
done

FreeBSD
Код:
#!/bin/sh
while sleep 3
do

php /var/home/webroot/cron_dispatcher.php

done

З.Ы. Для непонятливых - sleep 3 это задержка 3 секунды а строка "php /var/home/webroot/cron_dispatcher.php" это и есть команда
 

user8

Писатель
Регистрация
19 Июн 2017
Сообщения
2
Реакции
0
Новую тему создать не могу, поэтому пишу в этой.
Есть домашний nas с подключенным usb принтером. Каждый раз при включении принтера необходимо подгружать в него файл прошивки. Написал скрипт
Код:
#!/bin/sh
trigger=0

while true
do
status=$(lsusb)
echo "$status" | grep -iq "03f0:2b17" && plug=1 || plug=0

if [ "$plug" -eq 1 ]; then
    #echo "printer ON"
    if [ "$trigger" -eq 0 ]; then
    trigger=1
    cat /mnt/HD/HD_a2/ffp/sihp1020.dl > /dev/usblp0
    #echo "copy file to printer"
    fi
else
    #echo "printer OFF"
    trigger=0
fi
sleep 30
done
Вроде как с возложенной задачей справляется - раз в 30 секунд отслеживает подключенное usb устройство с заданным идентификатором и копирует в него прошивку, но с другой стороны он как костыли.
Есть варианты справится с задачей более красиво?
 
Сверху