使用 CodeIgniter 自动备份 MySQL 数据库
Auto Backup MySQL database with CodeIgniter
我在 Codeigniter 项目上创建了一个备份选项。现在我想每天固定时间自动备份数据库。
这是我的备份代码:
function dbbackup(){
$this->load->dbutil();
$prefs = array(
'format' => 'zip',
'filename' => 'my_db_backup.sql'
);
$backup =& $this->dbutil->backup($prefs);
$db_name = "backup_on_" . date("d_m_Y_h_i_s_a") . ".zip";
$save = 'uploads/dbbackup/'.$db_file_name;
$this->load->helper('file');
write_file($save, $backup);
$this->load->helper('download');
force_download($db_name, $backup);
}
是否有任何特定的自动备份查询?
如果您在实时服务器上有它,您可以设置一个 cron 作业来调用 php 文件。如果你想在本地设置它,那么你可以使用相应操作系统的任务调度程序之类的东西来调用 php 脚本,然后是 url 作为参数。或者您可以创建一个 bat
文件并将其添加到调度程序中,其中包含如下内容:
php 'path/to/project/index.php' dbbackup
如果您使用实时服务器,您可以在终端上使用此命令打开 cron table:
crontab -e
然后添加条目以制定适合您需要的时间表,
crontab 文件的每一行都有六个参数,顺序是:
- 分钟(0 到 59)
- 小时(0 到 23)
- 一个月中的第几天(1 到 31)
- 月(1 到 12)
- 星期几 (0 – 6)
- command(要执行的命令)
示例:
0 13 * * * php [application_path]/index.php dbbackup
为什么不用crontab
和mysqldump
在需要的时候备份,其实没必要用dbutil
class,[=与 dbutil
class.
相比,13=] 会更快更可靠
如果您阅读 mysqli_utility
, _backup
method 的源代码,您将了解它如何影响性能。
举个例子每天在14:30
备份
crontab -e
像下面这样输入
30 14 * * * /usr/bin/mysqldump --user=USER --password=PASSWORD --databases DBNAME1 DBNAME2 | gzip > /home/someuser/backup.$(date +"%d_%m_%Y_%H_%M_%S").sql.gz
保存 crontab
我在 Codeigniter 项目上创建了一个备份选项。现在我想每天固定时间自动备份数据库。
这是我的备份代码:
function dbbackup(){
$this->load->dbutil();
$prefs = array(
'format' => 'zip',
'filename' => 'my_db_backup.sql'
);
$backup =& $this->dbutil->backup($prefs);
$db_name = "backup_on_" . date("d_m_Y_h_i_s_a") . ".zip";
$save = 'uploads/dbbackup/'.$db_file_name;
$this->load->helper('file');
write_file($save, $backup);
$this->load->helper('download');
force_download($db_name, $backup);
}
是否有任何特定的自动备份查询?
如果您在实时服务器上有它,您可以设置一个 cron 作业来调用 php 文件。如果你想在本地设置它,那么你可以使用相应操作系统的任务调度程序之类的东西来调用 php 脚本,然后是 url 作为参数。或者您可以创建一个 bat
文件并将其添加到调度程序中,其中包含如下内容:
php 'path/to/project/index.php' dbbackup
如果您使用实时服务器,您可以在终端上使用此命令打开 cron table:
crontab -e
然后添加条目以制定适合您需要的时间表,
crontab 文件的每一行都有六个参数,顺序是:
- 分钟(0 到 59)
- 小时(0 到 23)
- 一个月中的第几天(1 到 31)
- 月(1 到 12)
- 星期几 (0 – 6)
- command(要执行的命令)
示例:
0 13 * * * php [application_path]/index.php dbbackup
为什么不用crontab
和mysqldump
在需要的时候备份,其实没必要用dbutil
class,[=与 dbutil
class.
如果您阅读 mysqli_utility
, _backup
method 的源代码,您将了解它如何影响性能。
举个例子每天在14:30
crontab -e
像下面这样输入
30 14 * * * /usr/bin/mysqldump --user=USER --password=PASSWORD --databases DBNAME1 DBNAME2 | gzip > /home/someuser/backup.$(date +"%d_%m_%Y_%H_%M_%S").sql.gz
保存 crontab