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

cron mail : /bin/bash: root: command not found

Добавлено: 30 ноя 2009, 13:10
joker7by
Доброго времени суток всем, кто читает данный топик.
Ищу решение уже несколько недель.
Исходные данные:
#crontab -e

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

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
25 10 * * * root run-parts /usr/bin/free-sa_day.sh
@reboot /home/route_mgts.sh
права на /usr/bin/free-sa_day.sh:

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

-rwxrwxrwx 1 root root 375 Ноя 30 10:21 /usr/bin/free-sa_day.sh
содержание скрипта /usr/bin/free-sa_day.sh:

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

#!/bin/bash
# Программа создания отчетов по журналам SQUID
#set -x
rm -f /home/statistic/access.log
cp /var/log/squid/access.log* /home/statistic/
cd /home/statistic
cat access.log |grep 'ххх.ххх.ххх.' > inet.log
umask 0022
export LANG=ru_RU.UTF-8
export LC_ALL=
free_sa=/usr/bin/free-sa
date1=`date +%x`
#$free_sa -d $date1-
$free_sa -d day
скрипт вручную запускается и работает
Но при выполнении кроном приходит письмо:

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

[root@psrv bin]# tail /var/spool/mail/root
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin>
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <HOME=/>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

/bin/bash: root: command not found
/bin/bash - существует и лежит правильно
Что не правильно я делаю? :damn:

Re: cron mail : /bin/bash: root: command not found

Добавлено: 30 ноя 2009, 22:44
bazil
Не найден не bash, а команда root

в кроне у вас видимо косяк( man 5 crontab )
Если используете crontab -e перепешите так
25 10 * * * /usr/bin/free-sa_day.sh

Re: cron mail : /bin/bash: root: command not found

Добавлено: 01 дек 2009, 10:24
joker7by
bazil писал(а):Не найден не bash, а команда root

в кроне у вас видимо косяк( man 5 crontab )
Если используете crontab -e перепешите так
25 10 * * * /usr/bin/free-sa_day.sh
Спасибо, да действительно это правильно.
Но я удалил всё, что создал crontab -e и создал папку для этого скрипта, теперь я выполняю задания через /etc/crontab:

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

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=for.azon@gmail.com
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
30 23 * * * root run-parts /home/scripts
@reboot /home/route_mgts.sh
Просто как-то натыкался в других форумах на записи другого вида, поэтому и накосячил :?