Il n'est pas nécessaire d'impliquer PHP dans la sauvegarde de la base de données. Vous avez juste besoin d'un script qui utilise mysqldump pour sauvegarder la base de données et configurer une tâche CRON pour exécuter périodiquement le script :
mysqldump db_name > backup-file.sql
... sauvegardera votre base de données dans un fichier, en redirigeant la sortie de mysqldump vers le nom de fichier spécifié.
Peter a soulevé un bon point, à savoir que la commande ne vous donnerait qu'un jour d'archivage - toute archive de plus de deux jours serait écrasée. Cela vous permettrait d'avoir un journal de roulement remontant à sept jours :
CURRENT_DAY_OF_WEEK=`date '+%u'`
FILENAME="mysqlbackup_"$CURRENT_DAY_OF_WEEK".sql"
mysqldump db_name > $FILENAME
Sachez également que les autorisations de fichier s'appliqueront - ne peut pas écrire un fichier si l'utilisateur exécutant le script n'a pas les autorisations sur le dossier.