Страница 1 из 1

Скрипт в cron не срабатывает

Добавлено: 2009-04-27 19:31:53
maniaque
Всем привет. Заранее прошу прощения, если вопрос идиотский, просто везде покопал вроде.

Есть необходимость запускать webalizer каждые 10 минут для построения статистики в нужный мне каталог, ее потом тянуть через инет с апача.

Код: Выделить всё

#!/bin/sh

for siteName in weather; # вот сюда массивом будут дописываться новые сайты
	do
	
	# задаю переменные
	tempLog=/var/tmp/$siteName.temp.log;
	log1=/var/www/$siteName.mydomain.ru/logs/access.log;
	log2=/var/www/$siteName.mydomain.ru/logs/nginx.access.log;
	folder1=/var/www/stats.mydomain.ru/www/$siteName/;
	folder2=/var/www/stats.mydomain.ru/www/$siteName/current;

	# удаляю старый временный файл, если он вдруг есть
	if [ -f $tempLog ];
	then
		rm $tempLog;
	fi

	# сливаю в кучку логи
	mergelog $log1 $log2 > $tempLog

	# проверяю существование папки folder1, если ее нет - создаю
	if [ ! -d $folder1 ];
	then
		mkdir $folder1;
	fi

	# проверяю существование папки folder2, если ее нет - создаю
	if [ ! -d $folder2 ];
	then
		mkdir $folder2;
	else
		# если такая папка уже есть, чищу ее
		rm -r $folder2/*.*;
	fi

	# апорт! т.е. фас!
	webalizer -o $folder2 -t $siteName $tempLog > /dev/null

	# разрешаю доступ к папке
	chmod -R 755 $folder1;

	# гашу временный файл
	if [ -f $tempLog ];
	then
		rm $tempLog;
	fi
done; 
В итоге, когда запускаю скрипт руками - все работает на ура. Ставлю на запуск через cron - не работает. Скрипт запускается (в логах есть), папки создает, однако ощущение такое, что webalizer на вход ничего не получает, т.е. папки пустые остаются.

Буду благодарен за любую помощь.

Re: Скрипт в cron не срабатывает

Добавлено: 2009-04-27 19:40:41
hizel
внедрять полные пути для всех не built-in команд есть гут и карашо :pardon:

Re: Скрипт в cron не срабатывает

Добавлено: 2009-04-27 19:48:16
maniaque
Спасибо, пошел пробовать :) Что-то говорит мне, что тут-то я и лоханулся :))

Re: Скрипт в cron не срабатывает

Добавлено: 2009-04-27 19:52:58
maniaque
Не помогло. Заменил вызов webalizer на /usr/local/bin/webalizer, но скрипт по-прежнему не отрабатывает.

Смущает меня то, что скрипт тоже выполняет команды от root, а у меня они в path явно прописаны, если webalizer работает интерактивным вызовом.

Re: Скрипт в cron не срабатывает

Добавлено: 2009-04-27 20:43:49
abanamat
maniaque писал(а):Не помогло. Заменил вызов webalizer на /usr/local/bin/webalizer, но скрипт по-прежнему не отрабатывает.
which mergelog

Re: Скрипт в cron не срабатывает

Добавлено: 2009-04-27 20:50:58
maniaque
which mergelog
Спасибо :) Это и решило проблему, слона-то я и не заметил :) Я просто к нему целиком путь прописал. Но за which - спасибо, не знал.

Re: Скрипт в cron не срабатывает

Добавлено: 2009-04-28 0:26:28
FenX
вообще, самый просто вариант, чтобы в дальнейшем не напарываться:
в crontab`е прописать

Код: Выделить всё

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

Re: Скрипт в cron не срабатывает

Добавлено: 2012-08-01 7:52:59
Phantom
Сделал я небольшой скрипт по рандомной смене обоев рабочего стола. Занес в крон(естественно под обычным пользователем) с интервалом минута. Он срабатывает, но обои не меняются. Если скрипт просто запустить под тем же пользователем, то обои красиво меняются. Подскажите где запердуха?
Собственно сам скрипт

Код: Выделить всё

#!/bin/sh
cd ~/
PICT=$(ls Walpapers | shuf -n 1)
gsettings set org.gnome.desktop.background picture-uri "file:///home/andrew/Walpapers/$PICT"
exit 0
Запись по crontab -e

Код: Выделить всё

*/1 * * * *     /usr/bin/autowalpaper.sh
Ошибок нигде нет. :st:
По правам

Код: Выделить всё

-rwxr-xr-x 1 andrew andrew 156 2012-07-31 07:57 /usr/bin/autowalpaper.sh
Сислоги
Jul 31 07:41:01 localhost CRON[2238]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:42:01 localhost CRON[2336]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:43:01 localhost CRON[2389]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:44:01 localhost CRON[2428]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:45:01 localhost CRON[2524]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:46:01 localhost CRON[2643]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:47:01 localhost CRON[2741]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:48:01 localhost CRON[2779]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:49:01 localhost CRON[2859]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:50:01 localhost CRON[2901]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:51:01 localhost CRON[2965]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Думал, что рандом затыкается на одной и той же картинке, но вручную он всегда разный....

Re: Скрипт в cron не срабатывает

Добавлено: 2012-08-01 10:37:14
FreeBSP