我正在使用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);
}
如何为此编码?有人能帮助我吗?
答案 0 :(得分:0)
您要做的是设置脚本以从命令行运行或cli
然后您可以使用C-Panel或crond在Linux上设置简单的定时cron作业。
答案 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
答案 3 :(得分:-1)
@sundar nivash:请检查一下,这可能会有帮助。
http://stackoverflow.com/questions/14093020/backup-mysql-database-with-codeigniter