Здравствуйте, прошу прощения если вопрос глупый, но я уже не знаю что делать. В Linux сравнительно недавно, написал команду для архивирования базы из MySQL:
mysqldump --defaults-extra-file=/home/ubuntu/.my.cnf euro_deniz | gzip > `date +/backup/backupdb_euro_deniz_%Y%m%d.%H%M%S.sql.gz` - из терминала все работает прекрасно без sudo.
В crontab задание выглядит следующим образом:
* * * * * mysqldump --defaults-extra-file=/home/ubuntu/.my.cnf euro_deniz | gzip > `date +/backup/backupdb_euro_deniz_%Y%m%d.%H%M%S.sql.gz`.
Судя по содержанию syslog.log cron отрабатывает, только файл не создается, в логе пишет:
Mar 27 15:38:01 ip-172-31-17-133 CRON[2815]: (ubuntu) CMD (mysqldump --defaults-extra-file=/home/ubuntu/.my.cnf euro_deniz | gzip > `date +/backup/backupdb_euro_deniz_)
Mar 27 15:38:01 ip-172-31-17-133 CRON[2812]: (CRON) info (No MTA installed, discarding output)
права на файл .my.cnf - 770, на папку backup 777
Заранее благодарю за ответы.
Saboteur, прописал пути, теперь комманда выглядит так /usr/bin/mysqldump --defaults-extra-file=/home/ubuntu/.my.cnf euro_deniz | /bin/gzip > `/bin/date +/backup/backupdb_euro_deniz_%Y%m%d.%H%M%S.sql.gz`
Из терминала отрабатывает, в crontab прописана * * * * * /usr/bin/mysqldump --defaults-extra-file=/home/ubuntu/.my.cnf euro_deniz | /bin/gzip > `/bin/date +/backup/backupdb_euro_deniz_%Y%m%d.%H%M%S.sql.gz` и симптомы те же - файл не создается, в syslog собственно то же самое
n316, Сделайте иначе. Положите вашу команду в скрипт, и запускайте из крона скрипт.
В скрипт добавьте отладочные echo непосредственно в обычный файл, а не через несколько пайпов
n316, просто проверяю.
Попробуйте всю информацию, которую берёте с date убрать, у меня такие же проблемы были. Просто какое-нибудь имя дайте для архива и проверьте.
Рональд Макдональд, нагуглил, оказывается что в crontab % означает перенос строки, поэтому их нужно экранировать, в итоге комманда стала выглядеть так: */1 * * * * /usr/bin/mysqldump --defaults-extra-file=/home/ubuntu/.my.cnf euro_deniz | /bin/gzip > `/bin/date +/backup/euro_deniz_\%Y-\%m-\%d\.\%H:\%M:\%S.sql.gz` Все работает, спасибо вам что направили на путь истинный)
Оказалось проблема заключалась в формировании времени в дате (%Y%m%d.%H%M%S), нагуглил что в crontab % означает перенос строки, в итоге экранировал их - как советовали и все заработало (\%Y-\%m-\%d\.\%H:\%M:\%S)