lo que tienes que hacer es escribir un script en bash similar a esto
Código:
#[path/donde/queres/guardar/el/respaldo] = la ruta a donde quieres guardar el respaldo
cd [path/donde/queres/guardar/el/respaldo]
#[usuario] = tu user en la db
#[password] = tu pass en la db
#[basededatos] = el nombre de la db
#$(date +%Y%m%d) = 20080613 por ejemplo.
# para sacar solo el dia (cosa q no te aconsejo) seria $(date +%d)
mysqldump -u [usuario] -p [password] [base de datos] > respaldoDB_$(date +%Y%m%d).sql
#aca seteamos permisos de solo lectura para el owner del archivo
chmod 400 respaldoDB_$(date +%Y%m%d).sql
con ese archivo lo que tenes que hacer es salvarlo dentro de tu home x ejemplo con el nombre respaldo_sql.sh y darle permisos de lectura y ejecucion solamente
chmod 500 respaldo_sql.sh
luego te creas una nueva tarea de cron y la apuntas a ese respaldo_sql.sh
Atencion:
estas guardando tu contrasena de base de datos en un archivo plano. esto no hay ninguna forma simple de evitarlo. hay un par de workarrounds de todas formas. si te interesa solo dilo y te guio en como hacerlo.
tu quieres guardar respaldos diarios y pisarlos x mes. yo lo que te aconsejaria seria hacer respaldos diarios y no pisarlos x mes, vamos que no hay necesidad alguna de hacerlo. hoy en dia el espacio sobra :P
si tienes problemas de espacio solo agrega el siguiente comando en el script despues del mysqldump y listo :P
bzip2 -9 respaldoDB_$(date +%Y%m%d).sql
con eso comprimes de maravilla el .sql (una db de 4.6GB la pasas a unos 500mb x ejemplo)