为了账号安全,请及时绑定邮箱和手机立即绑定

使用 CodeIgniter 自动备份 MySQL 数据库

使用 CodeIgniter 自动备份 MySQL 数据库

PHP
GCT1015 2022-01-24 09:46:43
我在 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);}是否有任何特定的查询可以自动备份?
查看完整描述

2 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

如果你有它在一个实时服务器上,你可以设置一个 cron 作业来调用 php 文件。如果要在本地进行设置,则可以使用相应操作系统的任务调度程序之类的东西来调用 php 脚本,然后将 url 作为参数。或者您可以创建一个bat文件并将其添加到调度程序中,其中包含以下内容:

php 'path/to/project/index.php' dbbackup

如果您使用的是实时服务器,您可以在终端上使用以下命令打开 cron 表:

crontab -e

然后添加一个条目来制定一个适合您需要的计划,
crontab 文件的每一行都有六个参数,它们依次是:

  • 分钟(0 到 59)

  • 小时(0 到 23)

  • 一个月中的某天(1 到 31)

  • 月(1 至 12)

  • 星期几(0 - 6)

  • 命令(要执行的命令)

例子 :

0 13 * * * php [application_path]/index.php dbbackup


查看完整回答
反对 回复 2022-01-24
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

你为什么不直接使用crontabmysqldump在需要的时间进行备份,实际上不需要使用dbutil类,与类mysqldump相比会更快更可靠dbutil

如果您阅读mysqli_utility_backupmethod的源代码,您将了解它如何影响性能。

举个例子,每天备份 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


查看完整回答
反对 回复 2022-01-24
  • 2 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号