эм а если в кроне просто указать команду бекапа :
а есче варинт попробуй изменить юзера с рута на другого
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Администрирование и настройка сетей → cron настройка бекапа
Чтобы отправить ответ, вы должны войти или зарегистрироваться
эм а если в кроне просто указать команду бекапа :
а есче варинт попробуй изменить юзера с рута на другого
там об ошибку выполнения не сообщает. Уже и не знаю что делать
Логгером пользуйся. Бери код ошибки после каждой команды и направляй его логгером в /var/log/messages.
и смотри что пишет. А напишет он тебе, скорее всего, что запускаемый процесс не найден. Не тождественны поисковые пути запуска при запуске из крона и при запуске из консоли.
Cruiser78, прав, надо указывать полный путь до скрипта запуска утилиты:
ну и по mysqldump так же, только я путь точный не знаю так как у меня его нету на десктопе
А вот по поводу полного пути не совсем понял.
попробуй вот так
все спасибо, теперь работает.
+
все спасибо, теперь работает.
+
теперь работает это когда вот так все выглядит ?
только я путь точный не знаю
как я понимаю для анакрон тоже нужно учитывать полный путь к mysqldump ?
как я понимаю для анакрон тоже нужно учитывать полный путь к mysqldump ?
конечно 
как я понимаю для анакрон тоже нужно учитывать полный путь к mysqldump ?
Типичная ошибка начинающего системного администратора - полагать, что поисковые пути отлиты из бронзы и всегда одинаковы для всех программ, процессов. Это не так. Все, что запускается при инициализации системы имеет минимальный (если вообще имеет) набор поисковых путей. А вот для запущенной консоли перечень поисковых путей сильно больше. Именно поэтому то, что отлажено в консоли, не всегда отрабатывает из планировщика заданий. Чтобы в этом убедиться, можно дать команду:
* * * * * logger -t TestPATH `echo PATH is $PATH` Разница будет очевидна.
Вывод:
Для того чтобы процессы запускались из "кроновского" скрипта необходимо его научить искать внешние программы там, где они лежат. То есть - выбрать для себя один из почти равнозначных вариантов:
1. Использовать полные пути к запускаемым программам. Недостаток - слабая переносимость (вдруг эти пути изменятся по какой либо причине?). Замумукаешься корректировать скрипт на тыщу строк. А если он не один?
2. Установить переменную PATH с нужными нам путями в запускаемом скрипте в одной из первых строк. Недостаток - тот же, но лечится изменением только в одном месте скрипта, а не коррекцией всего скрипта на тыщи строк.
3. Установить переменную PATH непосредственно в конфигурационном файле крона (с помощью "crontab -e"). Тогда все кроновские задачи получат именно этот наш PATH, ну и модифицируют его, если им это надо будет. Это обеспечит максимальную переносимость твоих скриптов и минимальный гимор при их настройке, привязке к конкретному хосту.
3. Установить переменную PATH непосредственно в конфигурационном файле крона (с помощью "crontab -e"). Тогда все кроновские задачи получат именно этот наш PATH, ну и модифицируют его, если им это надо будет. Это обеспечит максимальную переносимость твоих скриптов и минимальный гимор при их настройке, привязке к конкретному хосту.
а во с этого места было было бы не плохо поподрповней в виде примеров 
Удобно через переменные + which в скриптах:
MYSQL="/usr/bin/mysql"
IPT=$(which iptables)
$MYSQL ....
$IPTа во с этого места было было бы не плохо поподрповней в виде примеров
А чего там подробнее? Все же очевидно. Вот кусочек одного из моих кронтабов:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/root
#minute hour day month dayofweek command
0 8 * * * (cat /proc/mdstat; /usr/sbin/smartctl -a /dev/sda; /usr/sbin/smartctl -a /dev/sdb; ) | mail -s "Tom SMART report" rootТо есть, можно установить любые нужные переменные, которые воспримутся всеми запускаемыми из крона скриптами.
Удобно через переменные + which в скриптах:
MYSQL="/usr/bin/mysql" IPT=$(which iptables) $MYSQL .... $IPT
При этом надо понимать, что which не равен find и ищет программу только по поисковым путям. Если в $PATH он её не найдет, то увы... А если найдет, то запись IPT=$(which iptables) будет работать совершенно так же, как и IPT=iptables :-) То есть, по $IPT будет вызван тот же самый iptables.
аха ясно тоесть получается имеется виду обьявление переменной, я правильно понял ?
PATH=/sbin:/bin:/usr/sbin:/usr/binаха ясно тоесть получается имеется виду обьявление переменной, я правильно понял ?
PATH=/sbin:/bin:/usr/sbin:/usr/bin
Да, именно так. Я просто объявил переменную PATH, которая будет работать во всех запускаемых кроном скриптах. Туда еще можно первым номером вписать /usr/local/bin если оно нужно (например, перебить своим скриптом, который там будет лежать, стандартный, из /usr/bin'а)...
which в скриптах:
делить на ноль нельзя. Если можно which command, то можно и просто command.
PATH=/sbin:/bin:/usr/sbin:/usr/bin
ну типа того. Но лучше сделать так
if [ -z "$PATH" ]
PATH=/sbin:/bin:/usr/sbin:/usr/bin
fiт.к. crond НЕ устанавливает PATH
Nor does it do any special environment handling. A shell script is better-suited to doing
that than a cron daemon. This cron daemon sets up only four environment variables: USER,
LOGNAME, HOME, and SHELL.
что нужно дописать в задачу крон что бы он писал лог выполнения ?
А то есть некоторые вопросы.
что нужно дописать в задачу крон что бы он писал лог выполнения ?
сколько раз повторять-то?
* * * * * /root/script.sh >>/var/log/script.log 2>&1Есть один сайт, до этого бекапы мускула на нем не делал, тут решил делать через крон, но:
Хм, если делать бекап в каталог сайта то работает быстро 
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Linux Forum → Администрирование и настройка сетей → cron настройка бекапа
Форум работает на PunBB, при поддержке Informer Technologies, Inc