Я проверил в Интернете, это может быть обычная проблема, но я не знаю, как ее решить, все, что они сказали, не мое ...
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