一开始原本是用 php 去备份资料库,但是发现会有一些问题,于是改成这种方式,直接透过 mysql 去备份,出来的格式也不会有什么问题。
$ crontab -e
设定每天凌晨00:00 执行
0 0 * * * php /var/www/backup.php
backup.php 脚本记得开头一定要 「<?php
」,即便你有启用缩写
<?php
// 设定环境
header('Content-Type: text/html; charset=utf-8');
// 设定保存的资料夹位置
$dir = "/var/www/db/";
// 设定档名
$filename = "dev-" . date("Y-m-d-H-i-s") . ".sql.gz";
// 设定资料库
$db_host = "localhost";
$db_username = "root";
$db_password = "password";
$db_database = "db";
// 准备 cmd
$cmd = "mysqldump -h {$db_host} -u {$db_username} --password={$db_password} {$db_database} | gzip > {$dir}{$filename}";
// 执行 cmd
exec($cmd);
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");
passthru("cat {$dir}{$filename}");
?>
输出时会经过 gzip
解压缩
实验过原本 150MB
的 sql 压缩后为 28MB
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。