Я разработал программу, которая работает (на стороне сервера) с PHP и MySQL. Последнее, что мне нужно сделать, это сделать автоматическое ежедневное резервное копирование базы данных.
Это то, что я подумал, может быть самым простым: написать скрипт php, который раз в 24 часа сохраняет файл (имя которого будет меткой времени) в определенной папке на сервере. В сочетании с машиной времени или другим программным обеспечением для резервного копирования этой папки на внешний диск должно быть достаточно.
Итак, теперь вопросы: как мне сделать PHP-скрипт для автоматического запуска один раз в день? Как сохранить файл с резервной копией sql из скрипта php? (Аналог экспорта phpMyAdmin как sql)
Спасибо!
Если вы работаете apache
сервер:
sudo nano /etc/crontab
Добавьте ниже строки:
0 0 * * * root mysqldump -u root -proot db_name > /home/username/db_backup/$( date +"\%Y_\%m_\%d" ).sql
0 0 * * * => каждые 24 часа
Если ваш сервер Linux, вы можете создать cron, используя этот скрипт: cronsql.sh
,
#!/bin/bash
path=/home/backup/
projet=(databasename1 databasename2)
now=$(date +"%Y-%m-%d")
for arg in ${projet[*]}
do
if [ ! -d $path$arg ]; then
mkdir $path$arg
fi
cd $path$arg
mkdir dump$now
cd dump$now
mysqldump -dBR --triggers -p"dbpassword" $arg > structure.sql
mysqldump --no-create-info -p"dbpassword" $arg > data.sql
done
Он создаст папку с именем базы данных.
Внутри папка с датой
Внутри папки файл struct.sql и файл data.sql
>databasename1
---->20151009
---->data.sql
---->structure.sql
---->20151008
---->data.sql
---->structure.sql
---->20151007
---->data.sql
---->structure.sql
для крон
использование crontab -e
затем добавьте 59 23 * * * /home/backup/cronsql.sh
если cronsql.sh находится в / home / backup /
И последнее но не менее важное,
вы можете добавить в crontab
01 01 * * * find /home/backup/ -mindepth 2 -ctime +30 -exec rm -fr {} +
Он удалит каждый файл / папку старше 30 дней.
Таким образом, у вас есть резервная копия за последние 30 дней.
И нет необходимости чистить его вручную
Я обнаружил, что вы можете сделать это с * летучей мышью, если вы работаете в Windows.
Это сохранит ваши базы данных как zip, вы также можете загрузить их в ftp, немного изменив этот скрипт.
Перейдите по этой ссылке:
http://www.redolive.com/utah-web-designers-blog/automated-mysql-backup-for-windows/
Это легко сделать, если у вас есть какие-либо вопросы, просто спросите