Здравствуйте!Прошу помощи в диагностике проблемы.
Имеем:
gateway# uname -a
FreeBSD gateway.office 8.3-STABLE FreeBSD 8.3-STABLE #1: Sat Jul 21 14:57:29 EEST 2012 user@gateway.office:/usr/obj/usr/src/sys/IPFW_NAT i386gateway# cat /etc/crontab
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.33.2.1.6.1 2010/12/21 17:09:25 kensmith Exp $
....
# Rotating SQUID logs
0 0 * * * root /usr/local/etc/squid/squid2mysql.shgateway# cat /usr/local/etc/squid/squid2mysql.sh
#!/bin/sh
/usr/local/sbin/squid -k rotate
sleep 300
awk '{FS="[ ]+"} \
split($9, h, "/") split($4, s, "/") \
{if($6 =="CONNECT") site=substr($7, 1, index($7, ":")-1); \
else site=substr($7, 8, index(substr($7, 8), "/")-1); \
if($6 =="CONNECT") param=substr($7, length(site)+2); \
else param=substr($7, length(site)+9); \
print "INSERT INTO PROXY_LOGS (LOG_DATE, LOG_TIME, CLIENT, HOST, SQUID_STATUS, HTTP_STATUS, METHOD, URL, SITE, PARAM, HIERARCHY, MIME_CODE, BYTES, DURATION) \
VALUES(DATE(FROM_UNIXTIME("$1")), TIME(FROM_UNIXTIME("$1")), \""$3"\", \""h[2]"\", \""s[1]"\", "s[2]", \""$6"\", \""$7"\", \""site"\", \""param"\", \""h[1]"\", \""$10"\", "$5", "$2");"};' \
< /usr/local/etc/squid/log/access.log.0 | mysql -D billing -u root --password=mypassword
echo `date` > /usr/local/etc/squid/updatedТак вот проблема в том, что скрипт запущенный из командной строки root-ом отрабатывает целиком, а запущеный кроном только начало и конец. В базу ничего не заносится. Помогите найти грабли!!!
>[оверквотинг удален]
> \
> VALUES(DATE(FROM_UNIXTIME("$1")), TIME(FROM_UNIXTIME("$1")), \""$3"\", \""h[2]"\",
> \""s[1]"\", "s[2]", \""$6"\", \""$7"\", \""site"\", \""param"\", \""h[1]"\", \""$10"\",
> "$5", "$2");"};' \
> < /usr/local/etc/squid/log/access.log.0 | mysql -D billing -u root
> --password=mypassword
> echo `date` > /usr/local/etc/squid/updated
> Так вот проблема в том, что скрипт запущенный из командной строки root-ом
> отрабатывает целиком, а запущеный кроном только начало и конец. В базу
> ничего не заносится. Помогите найти грабли!!!
>[оверквотинг удален]
> \
> VALUES(DATE(FROM_UNIXTIME("$1")), TIME(FROM_UNIXTIME("$1")), \""$3"\", \""h[2]"\",
> \""s[1]"\", "s[2]", \""$6"\", \""$7"\", \""site"\", \""param"\", \""h[1]"\", \""$10"\",
> "$5", "$2");"};' \
> < /usr/local/etc/squid/log/access.log.0 | mysql -D billing -u root
> --password=mypassword
> echo `date` > /usr/local/etc/squid/updated
> Так вот проблема в том, что скрипт запущенный из командной строки root-ом
> отрабатывает целиком, а запущеный кроном только начало и конец. В базу
> ничего не заносится. Помогите найти грабли!!!В почту для рута cron ничего не пишет?
> В почту для рута cron ничего не пишет?Почта как-то давно не работает ...... потому ничего сказать не могу.
ВСЕМ: Правлю пути. О результатах отпишусь.
> ВСЕМ: Правлю пути. О результатах отпишусь.Кто бы мог подумать что дело в путях. Благодарю всех за помощь! Работает!!!
> sleep 300
> awk '{FS="[ ]+"} \
> Так вот проблема в том, что скрипт запущенный из командной строки root-ом
> отрабатывает целиком, а запущеный кроном только начало и конец. В базу
> ничего не заносится. Помогите найти грабли!!!sleep и awk хорошо бы с полным путем запускать.
>> sleep 300
>> awk '{FS="[ ]+"} \
>> Так вот проблема в том, что скрипт запущенный из командной строки root-ом
>> отрабатывает целиком, а запущеный кроном только начало и конец. В базу
>> ничего не заносится. Помогите найти грабли!!!
> sleep и awk хорошо бы с полным путем запускать.mysql too
>[оверквотинг удален]
> \
> VALUES(DATE(FROM_UNIXTIME("$1")), TIME(FROM_UNIXTIME("$1")), \""$3"\", \""h[2]"\",
> \""s[1]"\", "s[2]", \""$6"\", \""$7"\", \""site"\", \""param"\", \""h[1]"\", \""$10"\",
> "$5", "$2");"};' \
> < /usr/local/etc/squid/log/access.log.0 | mysql -D billing -u root
> --password=mypassword
> echo `date` > /usr/local/etc/squid/updated
> Так вот проблема в том, что скрипт запущенный из командной строки root-ом
> отрабатывает целиком, а запущеный кроном только начало и конец. В базу
> ничего не заносится. Помогите найти грабли!!!тыщу раз уже во всех факах:
1) крон работает от рута
2) пути прописывать полностью
3) жать Enter после последней строки скрипта (special 4 old linux)