使用 PHP 透過 Crontab 排程固定時間備份 MariaDB並且自動壓縮 .sql 備份檔案|MySQL|Crontab|PHP|MySQL|MariaDB|exec|mysqldump|gzip|伊恩踩坑筆記
Jul 8, 2021
上一篇文章有介紹到可以直接備份 MySQL 資料表,只是發現資料如果太多,備份下來的檔案大小高的驚人
所以透過 gzip 把產生出來的 .sql 備份檔案直接自動壓縮
前置作業可以參考:PHP/Crontab|使用 PHP 透過 Crontab 排程固定時間備份 MariaDB(MySQL, Crontab, MySQL, MariaDB)
backup.php
// 設定環境
header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Asia/Taipei');// 設定保存的資料夾位置
$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}");
跟上一個版本比,這個版本是不是簡潔很多呢?
實驗過原本 150MB 的 .sql 檔案壓縮後為 28MB
整個大瘦身了!
ING Design 応設計
https://www.theingdesign.com/