【问题标题】:How to backup the whole database 30mins once automattically?如何自动备份整个数据库30分钟一次?
【发布时间】:2015-08-11 06:32:41
【问题描述】:

我正在使用 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);
}

如何为此编码?有人可以帮我吗?

【问题讨论】:

  • 您要查找的词是cron,通常只需要一个词。
  • 我正在使用 Windows。并且对 C-panel 的了解较少。为此需要网络托管?
  • 不,但显然是定时触发它。我建议在 Windows 上查找如何做到这一点。
  • windows 有调度器
  • 你能给我一些参考吗? @达贡

标签: php mysql codeigniter


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    试试这个..

    您必须创建 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】:

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

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

      作为 crontab 中的命令。例如:

      30 * * * * php /home/username/index.php 欢迎秀

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

      【讨论】:

      • 这应该用在我有保存数据库按钮的php页面中吗?
      • 你必须通过shell来完成,因为你必须设置crontab
      • 如果你使用 Cpanel 或类似的东西,他们也可能提供一个 GUI 来设置 Cron Job。
      • 这是一篇不错的文章,可让您开始使用 Cron Job:glennstovall.com/blog/2013/01/07/…
      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-09
        • 2011-01-14
        • 1970-01-01
        • 1970-01-01
        • 2020-09-25
        • 1970-01-01
        相关资源
        最近更新 更多