Eu configurei uma tarefa cron no meu servidor Ubuntu 12.04 local para fazer logon em um servidor remoto por meio de uma conexão ssh sem senha e executar mysqldump
em um banco de dados nesse servidor uma vez por dia. Meu problema é que, além de executar mysqldump
às 00:00 todos os dias, por alguma razão também é executado em HH: 17 a cada hora, preenchendo o disco com bastante rapidez. O trabalho no meu crontab é configurado como:
@daily /bin/bash /home/backup/scripts/db_backup
As partes mais importantes do script db_backup são assim:
#!/bin/bash
# Sets the properties and folders to be backed up
host_name=admin@the_host.com
db_name=the_db_name
db_backup_folder_at_host="~/db_backup"
# Dumps the mysql database
{ # Try
ssh ${host_name} "mysqldump ${db_name} > ${db_backup_folder_at_host}/backup$(date +%F_%R).sql" &&
echo "$(date) SUCCESS! mysqldump of database"
} || { # Catch
echo "$(date) FAILURE! mysqldump of database"
}
No servidor remoto eu especifiquei um arquivo .my.cnf
para o banco de dados (na pasta home) assim:
[mysqldump]
user=USERNAME
password=PASSWORD
host=MYSQLSERVER
e isso funciona bem.
O crontab é instalado com sucesso para o superusuário do meu servidor Ubuntu 12.04 local. Eu tentei reiniciar o servidor, mas isso não resolve o problema. Executar sudo ps -A | grep cron
no servidor Ubuntu produz 1166 ? 00:00:00 cron
como saída, portanto, apenas um processo está sendo executado. A execução de sudo crontab -l
mostra a tarefa cron diária acima, enquanto a execução de crontab -l
mostra que nenhuma tarefa está instalada para o usuário comum. Não há tarefas agendadas em execução no servidor remoto.
Alguém pode me dar uma pista de como isso pode estar acontecendo? Onde posso procurar por pistas?
Note que eu também tentei o seguinte para o crontab, mas mysqldump
ainda é executado a cada HH: 17:
0 0 * * * /bin/bash /home/backup/scripts/db_backup