Nie ma potrzeby angażowania PHP w tworzenie kopii zapasowej bazy danych. Potrzebujesz tylko skryptu, który używa mysqldump wykonać kopię zapasową bazy danych i skonfigurować zadanie CRON aby okresowo uruchamiać skrypt:
mysqldump db_name > backup-file.sql
...stworzy kopię zapasową bazy danych do pliku, przekierowując dane wyjściowe z mysqldump do określonej nazwy pliku.
Peter wspomniał o dobrym spostrzeżeniu, że polecenie dałoby tylko jeden dzień archiwizacji — każde archiwum starsze niż dwa dni zostanie nadpisane. Dzięki temu będziesz mieć kroczący dziennik cofający się o siedem dni:
CURRENT_DAY_OF_WEEK=`date '+%u'`
FILENAME="mysqlbackup_"$CURRENT_DAY_OF_WEEK".sql"
mysqldump db_name > $FILENAME
Należy również pamiętać, że obowiązują uprawnienia do plików - nie można zapisać pliku, jeśli użytkownik wykonujący skrypt nie ma uprawnień do folderu.