如何自动备份整个数据库30分钟?

时间:2015-08-11 06:32:42

标签: php mysql codeigniter

我正在使用codeigniter。我在控制器中有一个功能来备份整个数据库。仅当我单击按钮时才会发生这种情况。如何自动执行此操作。 这是我的控制器文件。

public function backup_db()       
{
    $this->load->dbutil();
    $prefs = array(
                    'format'      => 'zip',
                    'filename'    => 'ospos.sql'
            );       
    $backup =& $this->dbutil->backup($prefs);                
    $file_name =  'elfanto_billing-' . date("Y-m-d-H-i-s") .'.zip';
    $save = 'uploads/'.$file_name;
    $this->load->helper('download');
    while (ob_get_level())
    {
        ob_end_clean();
    }
    force_download($file_name, $backup);
}

如何为此编码?有人能帮助我吗?

4 个答案:

答案 0 :(得分:0)

您要做的是设置脚本以从命令行运行或cli然后您可以使用C-Panel或crond在Linux上设置简单的定时cron作业。

https://help.ubuntu.com/community/CronHowto

答案 1 :(得分:0)

您可以为自动化设置cron作业

使用: php index.php控制器方法

作为crontab中的命令。 E.g:

30 * * * * php /home/username/index.php welcome show

来源:http://ellislab.com/codeigniter/user-guide/general/cli.html

答案 2 :(得分:0)

试试这个..

您必须创建cron作业并设置每30分钟运行一次并添加以下代码

$this->load->dbutil();

        $prefs = array(     
                'format'      => 'zip',             
                'filename'    => 'my_db_backup.sql'
              );


        $backup =& $this->dbutil->backup($prefs); 

        $db_name = 'backup-on-'. date("Y-m-d-H-i-s") .'.zip';
        $save = 'pathtobkfolder/'.$db_name;

        $this->load->helper('file');
        write_file($save, $backup); 


        $this->load->helper('download');
        force_download($db_name, $backup); 

http://w3facility.org/question/backup-mysql-database-with-codeigniter/

http://www.codeigniter.com/user_guide/database/utilities.html#backup-your-database

http://www-scf.usc.edu/~adportno/apache/htdocs/adportno/hw5/user_guide/database/utilities.html#backup

答案 3 :(得分:-1)

@sundar nivash:请检查一下,这可能会有帮助。

http://stackoverflow.com/questions/14093020/backup-mysql-database-with-codeigniter