Não há necessidade de envolver o PHP no backup do banco de dados. Você só precisa de um script que use mysqldump para fazer backup do banco de dados e configurar um trabalho CRON para executar periodicamente o script:
mysqldump db_name > backup-file.sql
...fará backup de seu banco de dados em um arquivo, redirecionando a saída do mysqldump para o nome do arquivo especificado.
Peter trouxe um bom ponto, que o comando só lhe daria um dia de arquivamento - qualquer arquivo com mais de dois dias seria substituído. Isso permitiria que você tivesse um registro contínuo voltando sete dias:
CURRENT_DAY_OF_WEEK=`date '+%u'`
FILENAME="mysqlbackup_"$CURRENT_DAY_OF_WEEK".sql"
mysqldump db_name > $FILENAME
Também esteja ciente de que as permissões de arquivo serão aplicadas - não é possível gravar um arquivo se o usuário que está executando o script não tiver permissões para a pasta.