我在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);
}
是否有任何要自动备份的特定查询?
答案 0 :(得分:2)
为什么不只使用crontab
和mysqldump
在需要的时间进行备份,实际上并不需要使用dbutil
类,mysqldump
会更快和dbutil
类比较可靠。
如果您阅读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
答案 1 :(得分:0)
如果您将其安装在实时服务器上,则可以设置cron作业来调用php文件。如果要在本地进行设置,则可以使用相应操作系统的任务计划程序之类的方法来调用php脚本,然后调用url作为参数。或者,您可以制作一个bat
文件并将其添加到包含以下内容的调度程序中:
php 'path/to/project/index.php' dbbackup
如果使用实时服务器,则可以在终端上使用以下命令打开cron表:
crontab -e
然后添加一个条目以制定适合您需求的时间表,
crontab文件的每一行都包含六个参数,依次为:
示例:
0 13 * * * php [application_path]/index.php dbbackup