Назад | Перейти на главную страницу

crons не работают, но скрипты… есть идеи, что это?

Я проверил в Интернете, это может быть обычная проблема, но я не знаю, как ее решить, все, что они сказали, не мое ...

Cron работает, я проверил, но у меня нет файлов журнала (по крайней мере, не в var / log), я использую Debian 6, мой .sh отлично работает, я пробую вручную, но в cron не работает .. .

вот мой код cron (я использую crontab -e, а позже перезапускаю службу cron, даже если я считаю, что это не обязательно ..)

14 12  * * * /root/mysqldump.sh > /root/MySQLdump.log

время это просто тест, который я сделал несколько минут назад ... когда я пробую вручную, mysqldump.sh отлично работает, но не в cron ... любая другая идея?

кстати, что делает 2> & 1 ??

заранее спасибо

РЕДАКТИРОВАТЬ:

Я включаю журнал cron, и теперь я проверил свой файл журнала, это примерно так

Feb 11 13:05:01 myserver /USR/SBIN/CRON[5652]: (root) CMD ("/home/dump/sqldump.sh")

но только это, не более того ...

В обычный причина того, что скрипты работают от имени конкретного пользователя, но не работают под cron это потому что cron работает в ограниченной среде, особенно с минимальным PATH.

Ваш сценарий - как и ваш crontab запись - необходимо указать полный путь к другим исполняемым файлам / скриптам, например использовать /usr/bin/mysqldump а не просто mysqldump.


РЕДАКТИРОВАТЬ: на основе ваших комментариев вы должны изменить свой скрипт на что-то вроде следующего, т.е. убедитесь, что вы используете полные пути к mysqldump, gzip и date:

#!/bin/bash
DATE=`/bin/date +"db-%d-%m-%Y"`
/usr/bin/mysqldump -u user -ppassword mydb | /bin/gzip > /home/dump/$DATE.sql.gz

Демон cron ведет журнал в системном журнале, как и большинство служб, поэтому вы найдете журналы в /var/log/syslog. Сообщения журнала для выполнения заданий выглядят примерно так:

Feb 11 11:09:01 mamma CRON[30555]: (mgorven) CMD (cat /proc/acpi/battery/BAT0/info > /tmp/BAT0-info)

Я думаю, что это цитата, которая сбивает с толку, попробуйте следующее

14 12  * * * "/root/mysqldump.sh > /root/MySQLdump.log"

2> & 1 перенаправляет ошибку std на std out