Страница 1 из 1
Проблемы с crontab
Добавлено: 2010-06-27 12:38:18
Anti[B]iotik
Здравствуйте. Возникла проблема, я хочу, чтобы сервер FreeBSD после перезагрузки выдавал звуковой сигнал. Для этого создал файл
/usr/local/etc/rc.d/starts:
Код: Выделить всё
#!/usr/bin/perl
open(SPEAKER, ">/dev/speaker") or die $!;
for ($n=0; $n<=$count; $n++) {
print SPEAKER "P 1 F P 1 F P 1 F ";
}
close SPEAKER;
Если файлик запустить - звуковой сигнал есть, то есть ошибки нету.
Теперь задача запустить этот файл при загрузке. Юзаю кронтаб
/etc/crontab:
Код: Выделить всё
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.32.34.1 2009/04/15 03:14:26 kensmith Exp $
#
SHELL=/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
MAILTO=""
HOME=/
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
#
# Save some entropy so that /dev/random can re-seed on boot.
*/11 * * * * operator /usr/libexec/save-entropy
#
# Rotate log files every hour, if necessary.
0 * * * * root newsyslog
#
# Perform daily/weekly/monthly maintenance.
1 3 * * * root periodic daily
15 4 * * 6 root periodic weekly
30 5 1 * * root periodic monthly
#
# Adjust the time zone if the CMOS clock keeps local time, as opposed to
# UTC time. See adjkerntz(8) for details.
1,31 0-5 * * * root adjkerntz -a
@daily 1 * * * root /usr/sbin/ntpdate ntp.xc
@reboot 0 * * * root /usr/local/etc/rc.d/starts
Но ничего не срабатывает. Решил проверить корректно ли вообще работает cron и добавил в конце строку:
Код: Выделить всё
*/10 * * * * root echo 'ya tut' >> /var/log/ping.log
То есть жду, что каждые 10 минут будет добавляться строка в файл ping.log, но он по-прежнему пустой
Службу перезапускал:
Код: Выделить всё
#sudo /etc/rc.d/cron restart
Stopping cron.
Starting cron.
Код: Выделить всё
sudo /etc/rc.d/cron status
cron is running as pid 21444.
Последнюю пустую строку в конце добавляю.
Подскажите, пжл, что может быть не так.
Заранее спасибо.
Re: Проблемы с crontab
Добавлено: 2010-06-27 19:15:49
Raven2000
Зачем вам пипканье при рестарте?
Чисто практически зачем?
Re: Проблемы с crontab
Добавлено: 2010-06-27 19:39:06
terminus
Код: Выделить всё
Instead of the first five fields, one of eight special strings may
appear:
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
Re: Проблемы с crontab
Добавлено: 2010-06-27 22:50:32
Alex Keda
и никто так и не сказал человеку что похабить системный крон под свои нужды - это плохо...
Re: Проблемы с crontab
Добавлено: 2010-06-27 23:44:35
Anti[B]iotik
Alex Keda писал(а):и никто так и не сказал человеку что похабить системный крон под свои нужды - это плохо...
добавив одну строку я не испохаблю системное предназначение крона. Мне подсказали, что лучше цель достичь именно с его помощью. При чем "свои нужды" в данном случае - это не в туалет сходить, а обеспечить стабильную работу сервера. Если я его перезагружаю - то звуковой сигнал - признак удачной загрузки, не стоит меня спрашивать, т.к. иначе бы не писал. Как вариант когда-то добавлял строку в /etc/rc.conf, но звук воспроизводился при подключении каждой служби, то есть во время загрузки раз 10 + каждый раз при подключении VPN и тд. Нужно только 1 раз после загрузки. Пока подправил, как подсказал terminus. Но что-то подозреваю, что что-то не так... пока спс
Re: Проблемы с crontab
Добавлено: 2010-06-28 6:20:08
Alex Keda
вам неправильно подсказали
Re: Проблемы с crontab
Добавлено: 2010-06-30 7:06:13
PSdok
Re: Проблемы с crontab
Добавлено: 2010-07-04 14:22:10
maza
у меня похожая проблема была.
хотел поставить запуск скрипта каждые 5 минут, но он ни в какую не хотел запускаться.
проблему решил следующим образом:
1)
Код: Выделить всё
cp /etc/crontab /var/cron/tabs/"тут пишем желаемое название"
2) правим файл
/var/cron/tabs/"тут пишем желаемое название". удаляем все значения кроме:
Код: Выделить всё
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#minute hour mday month wday who command
#
*/5 * * * * здесь пишем месторасположение того, что вы хотите запустить
причем место под who оставляем пустым!!!
3)запускаем
crontab:
Код: Выделить всё
crontab /var/cron/tabs/"тут пишем желаемое название"
crontab -l
причем это обязательный формат запуска
4)для остановки:
5)осталось только доделать автозапуск при старте/перезагрузке системы
Re: Проблемы с crontab
Добавлено: 2010-07-04 15:08:21
Alex Keda
изврат...
Re: Проблемы с crontab
Добавлено: 2010-07-04 15:19:11
maza
зато работает
Re: Проблемы с crontab
Добавлено: 2010-07-04 16:14:36
zg
Anti[b]iotik писал(а):Если файлик запустить - звуковой сигнал есть, то есть ошибки нету.
с учётом того, что в скрипте $count не задан, то пикает, видимо, только один раз. Этого же результата при загрузке можно добиться, если поместить в /etc/rc.local
попробуй выполнить и перегрузиться
Код: Выделить всё
echo 'echo -n "P 1 F P 1 F P 1 F ">/dev/speaker' >> /etc/rc.local
Re: Проблемы с crontab
Добавлено: 2010-07-10 0:23:25
Anti[B]iotik
maza писал(а):у меня похожая проблема была.
хотел поставить запуск скрипта каждые 5 минут, но он ни в какую не хотел запускаться.
проблему решил следующим образом:
1)
Код: Выделить всё
cp /etc/crontab /var/cron/tabs/"тут пишем желаемое название"
2) правим файл
/var/cron/tabs/"тут пишем желаемое название". удаляем все значения кроме:
Код: Выделить всё
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#minute hour mday month wday who command
#
*/5 * * * * здесь пишем месторасположение того, что вы хотите запустить
причем место под who оставляем пустым!!!
3)запускаем
crontab:
Код: Выделить всё
crontab /var/cron/tabs/"тут пишем желаемое название"
crontab -l
причем это обязательный формат запуска
4)для остановки:
5)осталось только доделать автозапуск при старте/перезагрузке системы
Ребята, спасибо огромное, оба ваших поста оооочень сильно помогли. Респект!
Единственно проблема с запуском команд, которые идут только через sudo, то есть нужны права root, вот разбираюсь, а так цель основная достигнута, благодарю !
Re: Проблемы с crontab
Добавлено: 2010-12-19 19:48:05
Anti[B]iotik
Проблема оказалась в том, что система была prerelease. Потом пересобрал в: FreeBSD 7.3-STABLE - все отлично работает
Re: Проблемы с crontab
Добавлено: 2010-12-20 2:28:39
maza
однако долго ты долбался
Re: Проблемы с crontab
Добавлено: 2011-01-10 9:33:09
Anti[B]iotik
я просто не сразу здесь отписал )))
Re: Проблемы с crontab
Добавлено: 2011-01-10 23:41:09
maza
та я ж так
Re: Проблемы с crontab
Добавлено: 2011-10-25 12:05:06
Bayerische
Проблема откуда-то взялась. Всё работало, потом что-то обновилось, много по мелочи, и перестало. Например, вот такое дело вручную отрабатывает идеально, даже следом можно дописать команды архивирования других директорий:
Код: Выделить всё
#!/bin/sh
DATE=`date '+%Y-%m-%d-%H%M'`
cd /usr/home/user1/backup
mkdir $DATE
chmod 777 $DATE
/usr/bin/tar cvfz $DATE/backup_www.tgz /usr/home/user1/www
Из крона некорректно. Если папка маленькая, жмёт, идёт к следующей команде. Если же большая, упирается в размер архива 51.9 Мб, какой бы её исходный размер не был, и последующие команды не исполняет.
В crontab прописаны пути. В самом скрипте полные, как видно. Юзер рут и там, и там. В логах тишина, просто в кроновском пишет, что сработало задание.
Памяти хватает. Убивал процессы, чистил темп. Без разницы, ровно 51.9 Мб архив получается.
Вручную запускал из csh, sh. Работает.
Сравнил конфиги из бэкапа, полностью папки /etc, /usr/local/etc до и после, почти один в один, добавилось кое что, да версии поменялись.
Re: Проблемы с crontab
Добавлено: 2011-10-25 17:40:51
Bayerische
Сейчас попробовал вот такое чудо:
Код: Выделить всё
#!/bin/sh
DATE=`date '+%Y-%m-%d-%H%M'`
cd /usr/home/user1/backup
mkdir "AA".$DATE
chmod 777 "AA".$DATE
tar cvfz "AA".$DATE/backup_ports.tgz /usr/ports
Вручную долго затаривает 4 с лишним гигабайта портов с дистфайлами. По крону же 100M с копейками, и всё типа, хватит.
Re: Проблемы с crontab
Добавлено: 2011-10-25 17:47:22
Bayerische
Мой кронтаб.
Код: Выделить всё
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/etc/tasks
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
#
# Save some entropy so that /dev/random can re-seed on boot.
*/11 * * * * operator /usr/libexec/save-entropy
#
# Rotate log files every hour, if necessary.
0 * * * * root newsyslog
#
# Perform daily/weekly/monthly maintenance.
1 3 * * * root periodic daily
15 4 * * 6 root periodic weekly
30 5 1 * * root periodic monthly
#
# Adjust the time zone if the CMOS clock keeps local time, as opposed to
# UTC time. See adjkerntz(8) for details.
1,31 0-5 * * * root adjkerntz -a
36 18 * * * root /etc/tasks/test.sh
Видно, что извращался с путями.
Вообще, оно запарило, честно говоря. Элементарная вещь, а столько гемороя.
Re: Проблемы с crontab
Добавлено: 2011-10-25 21:09:25
Bayerische
Засунул последнее задание в юзерский кронтаб. Такая же беда. Файл архива растёт только до 100,6 Мб.
Re: Проблемы с crontab
Добавлено: 2011-10-27 10:41:49
Bayerische
От безысходности обновил весь софт. Проблема пропала
Сутки колупал... Хрень какая-то.
Re: Проблемы с crontab
Добавлено: 2011-10-27 10:57:00
терминус_
Re: Проблемы с crontab
Добавлено: 2011-10-27 11:00:23
Bayerische
Код: Выделить всё
# ulimit -a
ulimit: Command not found.
# limit
cputime unlimited
filesize unlimited
datasize 524288 kbytes
stacksize 65536 kbytes
coredumpsize unlimited
memoryuse unlimited
vmemoryuse unlimited
descriptors 11095
memorylocked unlimited
maxproc 5547
sbsize unlimited
swapsize unlimited