
Estou tentando fazer backup da tabela do meu banco de dados todos os dias, usando mysqldump, screen e crontab. Se eu executar apenas mysqldump
, ele será despejado corretamente, mas se eu fizer isso screen
, o arquivo de saída ficará em branco.
Editando Crontab
crontab -e
Adicionando Comando
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
Responder1
Não tenho certeza do que você deseja realizar com a tela nesse cenário e por que ela é necessária. Mas você está canalizando (com | .. > ) a saída da tela para o arquivo de despejo, não a saída do programa que é executado na tela. Você deve colocar o comando completo entre aspas - ou provavelmente é melhor colocar o comando em um arquivo de script e simplesmente chamar o script
meuscript.sh:
#!/bin/sh
mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz
tela -dmS MYDATABASE_MYTABLE_backup meuscript.sh