PDA

Показать полную графическую версию : Автоматический запуск скрипта по времени


Страниц : [1] 2

Non-Stop
29-11-2006, 17:11
Помогите пожалуйста прописать атоматический запуск скрипта помесячно, не в автозагрузку, а при наступлении нового месяца!
Скрипт должен запускаться именно в начале месяца (например, 1го числа в 00:00), а не в конце (например, 31го числа в 23:59)

OS Debian sarge 3.1

Заранее благодарен!

mar
29-11-2006, 17:20
Non-Stop
почитайте про демон cron и crontab
посмотрите /etc/crontab
Собственно, это то, что Вам нужно.

Non-Stop
29-11-2006, 17:54
Благодарю за точную наводочку ))
то что нужно!
разбираюсь

Non-Stop
29-11-2006, 18:28
Поправьте, если сделал чтото не то...

Задача
запускать каждый месяц первого числа скрипт usr/local/script.pl

Создал в /etc/cron.monthly/ файл script такого содержания:

#######################################
#!/bin/sh
#
#
0 0 1 * * /usr/bin/perl usr/local/script.pl
#########################################

Будет ли мой скрипт на перле запускаться первого числа каждого месяца?

fossil
29-11-2006, 18:45
Да все правильно.

Non-Stop
29-11-2006, 19:16
КУУЛ :)
если кому будет интересно - использовал вот эту статью
http://www.codenet.ru/webmast/php/cron.php

Весьма доходчиво написано!

а как можно проверить исполняется скрипт или нет?

mar
29-11-2006, 19:42
а как можно проверить исполняется скрипт или нет?
ну, во-первых, логи
во-вторых, для более детальной отладки можно,
- как предлагается в статье по ссылке, перенаправить вывод в файл
- или (и) сделать пробный запуск на здесь и сейчас (скажем, через 5 минут), а потом, после отладки, поставить нужное время-день-и тд
... можно еще что-нибудь придумать

Non-Stop
01-12-2006, 13:41
Скрипт не запустился ((((
Подскажите где лажа...

dmitryst
01-12-2006, 13:45
Non-Stop А как с правами доступа к скрипту?

Non-Stop
01-12-2006, 13:51
у запускающего скрипта права 755
у скрипта который должен запустится 500

dmitryst
01-12-2006, 14:05
Non-Stop поставьте второму 744 (т.е. только чтение-выполнение для не-владельцев)

Non-Stop
01-12-2006, 16:22
поставил права 744
положил скрипт в cron.hourly, для тестирования , вместе с другими скриптами в этом каталоге
скрипт не запустился, хотя другие скрипты работают...

в чём ещё может быть запарка?
может в том что скрипт на перле?

Borodunter
01-12-2006, 16:39
Non-Stop
cron должен писать информацию о своей работе в лог-файл. попробуй посмотреть, что написано в messages.log
запускается ли скрипт вручную?
перезапускал ли ты cron после того, как правил файл конфигурации?

Non-Stop
01-12-2006, 16:46
Скрипт вручную запускается и работает, ошибок не выдаёт.
крон перезапустил, пишет тожесамое...
messages.log - не нашёл, где он должен находиться?
на мыло крон шлёт такое
/usr/sbin/logcheck: line 1: date: command not found

fossil
01-12-2006, 17:06
Non-Stop
Создать файл у своего юзера в каталоге. Потом заполни его по типа /etc/crontab
Ну и crontab /home/non_stop/cronscript

fossil
01-12-2006, 17:06
Non-Stop
Создай файл у своего юзера в каталоге. Потом заполни его по типа /etc/crontab
Ну и crontab /home/non_stop/cronscript

Borodunter
01-12-2006, 17:19
Non-Stopmessages.log - не нашёл, где он должен находиться? во FreeBSD он обычно лежит в /var/log/ (файл называется просто messages, извиняюсь :)), в линухе может называется по-другому, тут я пас

на мыло крон шлёт такое
/usr/sbin/logcheck: line 1: date: command not found может в этом трабл, что за logcheck, и что у него в первой строке? не может найти какую-то команду...

BuGfiX
01-12-2006, 18:52
во FreeBSD он обычно лежит в /var/log/ (файл называется просто messages, извиняюсь ), в линухе может называется по-другому, тут я пас
аналогично и в линуксе. /var/log/messages

/usr/sbin/logcheck: line 1: date: command not found
logcheck - это и есть тот самый скрипт?
Убедитесь что команда date вызывается с указанием пути к ней (/bin/date).

Non-Stop
02-12-2006, 15:06
/usr/sbin/logcheck: line 1: date: command not found
понял, это крон шлёт по другому скрипту...

При запуске скрипта вручную
/etc/cron.monthly/script

выдаёт ошибку
line 4: 0: command not found

Содержание скрипта
#!/bin/sh
#
#
0 0 1 * * /usr/bin/perl usr/local/script.pl

синтаксис неправильный?

Borodunter
02-12-2006, 15:12
Non-Stopusr/local/script.plкак минимум слэш должен перед usr стоять




© OSzone.net 2001-2012