Страница 1 из 1
Debian 5.0
Добавлено: 2010-06-28 16:31:21
Spook1680
Добрый день!
cron запускает задание каждые 10 мин.
делает выгрузку.
Подскажите может cron, не запускать следующее задание пока не выполнит это.
Вроде как в монуалах про это не написано. (я так понимаю у него нет таких возможностей?!!!)
Видел рекомендацию на anacron.
Re: Debian 5.0
Добавлено: 2010-06-29 9:13:42
hizel
ну на шеле напишите обертку, чтобы проверялось через lock файлик например
Re: Debian 5.0
Добавлено: 2010-06-29 9:29:26
Burner
а просто оба задания в 1 скрипт объединить нельзя?
Re: Debian 5.0
Добавлено: 2010-06-29 15:54:19
Spook1680
Burner писал(а):а просто оба задания в 1 скрипт объединить нельзя?
нет.
У)) нас же как. Начальство говорит что сделать и нии лишнего.
Скрипт запускается кроном каждые 10 мин.
Вот и задача что бы следующий не запустился пока не закончится отработка.
Re: Debian 5.0
Добавлено: 2010-06-29 15:59:08
Spook1680
hizel писал(а):ну на шеле напишите обертку, чтобы проверялось через lock файлик например
А можно для затравки кусочек "обертки". Для тех кто не шибко в этом рулит.
Re: Debian 5.0
Добавлено: 2010-06-29 16:04:24
hizel
Re: Debian 5.0
Добавлено: 2010-06-30 6:07:41
Burner
Spook1680 писал(а):Burner писал(а):а просто оба задания в 1 скрипт объединить нельзя?
нет.
У)) нас же как. Начальство говорит что сделать и нии лишнего.
Скрипт запускается кроном каждые 10 мин.
Вот и задача что бы следующий не запустился пока не закончится отработка.
что тут лишнего? запускаем 1 скрипт, за ним другой
Re: Debian 5.0
Добавлено: 2010-06-30 16:50:44
Spook1680
Burner писал(а):Spook1680 писал(а):Burner писал(а):а просто оба задания в 1 скрипт объединить нельзя?
нет.
У)) нас же как. Начальство говорит что сделать и нии лишнего.
Скрипт запускается кроном каждые 10 мин.
Вот и задача что бы следующий не запустился пока не закончится отработка.
что тут лишнего? запускаем 1 скрипт, за ним другой
Вмешиваться в созданный механизм не дает руководство.
Крон запускает скрипт выгрузки документов каждые 10 мин.
Но сейчас стали появляться такие ситуации когда документов бывает много и за 10 мин. выгрузка не происходит, если документов много то за 10 мин не управиться, если мало то отрабатывает и через 10 мин. запускается следующее задание cron и так постоянно.
Как написать скрипт что бы не запускалось следующее задание (новое) пока не было выполнено прошлое. типа то что выполняется сейчас.

Re: Debian 5.0
Добавлено: 2010-06-30 17:04:26
Burner
Код: Выделить всё
pid=/tmp/docs.pid
if [ -e $pid]; then
exit 0
else
touch $pid
...profit...
rm -f $pid
fi
Re: Debian 5.0
Добавлено: 2010-06-30 21:38:35
Spook1680
Burner писал(а):Код: Выделить всё
pid=/tmp/docs.pid
if [ -e $pid]; then
exit 0
else
touch $pid
...profit...
rm -f $pid
fi
Странно выдает ошибку
dealer:/tmp# ./docs1.pid
./docs1.pid: line 4: syntax error near unexpected token `else'
./docs1.pid: line 4: `else'
dealer:/tmp#
Код: Выделить всё
pid=/tmp/docs.pid
if [ -e $pid]; them
exit 0
else
touch $pid
...profit...
rm -f $pid
fi
ну и создал файл исполняемый docs.pid где указал pid процесса крона запущеного 2878.
Подскажите пожалуйста вот у крона есть задание, одно из 10.
Как узнать какой у него pid
dealer:/tmp# ps axw | grep cron
2878 ? Ss 0:01 /usr/sbin/cron
7096 pts/0 R+ 0:00 grep cron
верхнее это процесс работы крона?! В моем случае это не то, значит делаю )) ошибку.
Вот не пойму как узнать pid именно нужного процесса.
Re: Debian 5.0
Добавлено: 2010-07-01 5:22:28
Burner
зачем вам pid? Если назвать docs.lock, будет проще?
Re: Debian 5.0
Добавлено: 2010-07-01 12:06:49
Spook1680
Burner писал(а):зачем вам pid? Если назвать docs.lock, будет проще?
Добрый день.
А можно хотя бы в двух словах поподробней. Я понимаю когда в теме (как вы) то все просто.
Но не усекаю что делать?
создаю файл как вы написали к примеру docs.lock
далее делаю его исполняемым и вписываю скрипт.
ОК.
В листинге скрипта указано
Я так понимаю что надо знать пид процесса.
Вот и вопрос в кроне более пяти заданий как узнать пид задания которо требуется именно мне.
Re: Debian 5.0
Добавлено: 2010-07-01 13:04:41
Burner
нет, не надо.
Re: Debian 5.0
Добавлено: 2010-07-01 14:54:05
Spook1680
Burner писал(а):нет, не надо.
А почему тогда ругается на синтаксис
Код: Выделить всё
dealer:/tmp# ./docs1.pid
./docs1.pid: line 4: syntax error near unexpected token `else'
./docs1.pid: line 4: `else'
dealer:/tmp#