Редактирование Crontab

Редактирование Crontab

Я пытаюсь делать резервную копию таблицы моей базы данных каждый день, используя mysqldump, screen и crontab. Если я запускаю только mysqldump, он делает дамп правильно, но если я делаю это через screen, выходной файл пустой.

Редактирование Crontab

crontab -e

Добавление команды

0 0 * * * screen -dmS MYDATABASE_MYTABLE_backup mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz

решение1

Не совсем уверен, чего вы хотите добиться с помощью screen в этом сценарии и зачем он вообще нужен. Но вы перенаправляете (с помощью | .. > ) вывод screen в файл дампа, а не вывод программы, которая работает в screen. Вам либо нужно заключить всю команду в кавычки, либо, возможно, лучше поместить команду в файл скрипта и просто вызвать скрипт

myscript.sh:

#!/bin/sh
mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz

экран -dmS MYDATABASE_MYTABLE_backup myscript.sh

Связанный контент