Помогите плз. разобраться с crontab.
Запускаю скрипт из командной строки, работает. А вот если через крон, не хочет.
Читал тут что дело может быть в абсолютных путях, прописал, не работает.
Вот еще:
spf писал(а):
Через команду
crontab -e
добавить первой строкой переменную
PATH=/bin:/usr/bin:/sbin:/usr/sbin
Тогда не надо будет писать полные пути в командах.
Тоже не получилось.
Помогите плз разобраться в чем дело.
Спасибо.
FreeBSD 7.3
/etc/crontab
Код: Выделить всё
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.32.24.1.2.1 2010/02/10 00:26:20 kensmith Exp $
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin
#
#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
#Чистим очередь екзима - удаляем пустых отправителей
*/1<--->*<----->*<----->*<----->*<----->root<-->/usr/MAILARC/killspamers.sh
*/10<-->*<----->*<----->*<----->*<----->root<-->/usr/MAILARC/killspamers.sh "c"
/usr/MAILARC/killspamers.sh
Код: Выделить всё
#!/bin/bash
# Определяем qualify_domain -- он нужен для удаления всякой лажи
domain=`/usr/local/sbin/exim -bP | /usr/bin/grep -i "^qualify_domain" | sed -e s/.*\=\ //g`
# Это очень шаманская строчка
/usr/local/sbin/exim -bpr | /usr/bin/grep '<' | /usr/bin/awk '{print $2}' | /usr/bin/grep '-' | /usr/bin/xargs /usr/local/sbin/exim -Mrm 2> /dev/null
# если скрипту передан параметр c, то включается более агрессивный режим
if [ "${1}" = "c" ]; then
echo 'aggressive mode...'
# Удаляем все баунсы старше 10 минут
/usr/local/sbin/exiqgrep -o 600 -if '^<>$' |/usr/bin/xargs /usr/local/sbin/exim -Mrm
# Удаляем сообщения с адресами начинающимися с подчерка, минуса или вертикальной черты
/usr/local/sbin/exiqgrep -f '^<\_|^<\-|^<\|' -i | /usr/bin/xargs /usr/local/sbin/exim -Mrm
/usr/local/sbin/exiqgrep -r '^\_|^\-|^\|' -i | /usr/bin/xargs /usr/local/sbin/exim -Mrm
#Удаляем сообщения отправленные скриптами на китайские домены старше 10 минут
/usr/local/sbin/exiqgrep -f "$domain" -r '.cn$' -o 600 -i | /usr/bin/xargs /usr/local/sbin/exim -Mrm
# Удаляем любые сообщения отправленные скриптами, если они не доставлись за12 часов
/usr/local/sbin/exiqgrep -f "$domain" -o 43200 -i | /usr/bin/xargs /usr/local/sbin/exim -Mrm
exit
fi
# В мягком режиме удаляем только frozen баунсы и письма с невозможными адресами в заголовках
echo 'light mode...'
/usr/local/sbin/exiqgrep -zif '^<>$' |/usr/bin/xargs /usr/local/sbin/exim -Mrm
/usr/local/sbin/exiqgrep -f '^<\_|^<\-|^<\|' -i | /usr/bin/xargs /usr/local/sbin/exim -Mrm
/usr/local/sbin/exiqgrep -r '^\_|^\-|^\|' -i | /usr/bin/xargs /usr/local/sbin/exim -Mrm
/usr/local/sbin/exiqgrep -r '^\_|^\-|^\|' -i | /usr/bin/xargs /usr/local/sbin/exim -Mrm
/usr/local/sbin/exiqgrep -i -f '<>' | /usr/bin/xargs /usr/local/sbin/exim -Mrm