Я пытаюсь создать crontab, чтобы сделать резервное копирование на мою базу данных в MySQL, mysqldump
команда хорошо работает без ошибок как единственная команда или запускающий скрипт удара, но когда я добавил сценарий удара к crontab файлу, это не выполнилось, ниже мой код:
#!/bin/bash
mysqldump --column-statistics=0 -h xx.xx.xx.xxx -u wissam -p'xxxxxx'
--all-databases | gzip > ~/Desktop/DBs/Backup"$(date +"%Y_%m_%d_%I_%M_%p")file.sql.gz"
команда crontab:
09 9 * * * root sh /home/ahmad/Desktop/DBs/mysqlcron.sh 2>&1>> /home/ahmad/Desktop/DBs/MySQLdump.log
который был добавлен к /etc/crontab
, после этого я пытался перезапустить сервис, но не работал на меня, я также попробовал эти решения 1, 2 и 3 и все еще не сделал работы.
Какая-либо справка?
Crontab нужны полные пути, таким образом, помимо рекомендаций Rinzwind, используйте также
09 9 * * * root /bin/bash /home/ahmad/Desktop/DBs/mysqlcron.sh 2>&1>> /home/ahmad/Desktop/DBs/MySQLdump.log
или
09 9 * * * root /home/ahmad/Desktop/DBs/mysqlcron.sh 2>&1>> /home/ahmad/Desktop/DBs/MySQLdump.log
Используйте полные пути.
mysqldump
и
~/
нужен каталог. "~" никогда не собирается расширяться до Вашего пользователя.
Помимо этого:
-h xx.xx.xx.xxx -u wissam -p'xxxxxx'
очень плохо, поскольку это повторит хост и пароль к списку процессов. Использовать...
--defaults-extra-file=.mysql
и помещенный, по крайней мере, пароль в тот файл.