Eu sei que é muito antigo, mas usei as respostas acima e adicionei uma instrução de compactação de arquivos.
Espero que alguém ache isso útil.
1) Pesquisando um pouco, o 7-zip parece ser o melhor compressor disponível. Se o seu Linux distro suporta, você pode usar o instalador do apt:
sudo apt-get install p7zip-full
Alternativamente, você pode usar tar.gz se você se sentir mais confortável com isso.
2) Então, você cria um script, por exemplo /home/users/backup.sh
Com o conteúdo:
#!/bin/sh
find /home/users/backup_MyDB -type f -mtime +7 -exec rm {} +
mysqldump -uroot -p MyDatabase >/home/users/backup_MyDB/$(date +%F)_full_myDB.sql
7z a /home/users/backup_MyDB/$(date +%F)_full_myDB.7z /home/users/backup_MyDB/*.sql
rm -f /home/users/backup_MyDB/*.sql
Este script irá encontrar os arquivos com mais de 7 dias e apagá-los, então ele fará o sql dump, então ele irá 7-zip todos os arquivos .sql no diretório, então ele irá apagar todo o arquivo .sql no diretório. o diretório
(BTW, você pode, opcionalmente, adicionar um comando mysql antes do despejo, como indicado na resposta anterior, se você precisar)
3) Fazemos chmod +x /home/users/backup.sh
para poder ser executável.
3.1) Você deve testar seu script se ele funcionar como planejado
4) Nós programamos a tarefa com crontab -e
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
30 4 * * 1-6 /home/users/backup.sh >> /dev/null 2>&1
E é isso. Ele fará backup de seu banco de dados MySQL todos os dias da semana às 4h30 (exceto aos domingos) e compactará o backup