我开发了一个与PHP和MySQL一起工作的议程(服务器端)。我最不需要做的一件事就是对数据库进行可信的每日备份。
这可能是我认为最简单的:编写一个php脚本,它每24小时将一个文件(其名称为时间戳)保存在服务器中的某个文件夹中。将其与时间机器或其他备份软件相结合,将此文件夹备份到外部磁盘就足够了。
因此,现在的问题是:如何使php脚本每天自动运行一次?如何从php脚本保存带有sql备份的文件?(类似于sql导出)
谢谢!
发布于 2015-10-09 15:31:55
如果您正在运行apache服务器:
sudo nano /etc/crontab增加以下一行:
0 0 * * * root mysqldump -u root -proot db_name > /home/username/db_backup/$( date +"\%Y_\%m_\%d" ).sql每24小时一次0 0*** =>
发布于 2015-10-09 15:31:48
如果您的服务器是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它将生成一个具有数据库名称的文件夹。在该文件夹中,包含日期的文件夹、structure.sql文件和data.sql文件。
>databasename1
---->20151009
---->data.sql
---->structure.sql
---->20151008
---->data.sql
---->structure.sql
---->20151007
---->data.sql
---->structure.sql对于cron,请使用crontab -e
如果59 23 * * * /home/backup/cronsql.sh在/home/ cronsql.sh /backup中,则添加cronsql.sh
最后但并非最不重要的是,您可以添加crontab。
01 01 * * * find /home/backup/ -mindepth 2 -ctime +30 -exec rm -fr {} +它将删除30天以上的每个文件/文件夹。所以你每隔30天就有后备。也不需要手动清理
发布于 2015-10-13 09:37:36
我发现,如果你在运行窗户,你可以用一个蝙蝠来做。这将保护您的数据库作为zip,您也可以上传到ftp,通过改变这个脚本一点。遵循下面的链接:http://www.redolive.com/utah-web-designers-blog/automated-mysql-backup-for-windows/ --如果你有什么问题就问吧,这很容易做
https://stackoverflow.com/questions/33042041
复制相似问题