Moodle平台自动远程备份策略研究与实现

张继高Moodle平台自动远程备份策略研究与实现
叶晓波,李晓刚,王 松
(楚雄师范学院计算机信息管理中心,云南楚雄675000
)摘 要:M
oodle平台课程数据安全、完整备份是一个非常重要的工作。Moodle平台提供课程自动备份功能,但缺少数据库、文件上传的备份功能,且不能远程备份。针对Moodle平台备份功能的缺陷,以楚雄师范学院Moodle平台为
例,提出了Moodle平台数据完整备份策略,通过编写Shell脚本实现数据库和用户上传文件的备份功能,结合Linux系统下的自动任务服务,定时自动执行Shell脚本,实现自动登录远程FTP,将备份数据定时传输到远程FTP服务器,从而实现了Moodle平台数据的自动远程备份功能。
关键词:M
oodle平台;远程备份;自动备份策略DOI:10.11907/rj
dk.143232中图分类号:TP301     文献标识码:A     文章编号:1672-7800(2014)009-0032-
04基金项目:楚雄师范学院数字化校园信息系统开发研究项目(SZZX1302
)作者简介:叶晓波(1975-)
,男,云南大姚人,硕士,楚雄师范学院计算机信息管理中心副教授,研究方向为模式识别、现代教育技术;李晓刚(1962-),男,云南楚雄人,楚雄师范学院计算机信息管理中心副教授,研究方向为教育信息化、现代教育技术;王松(1
976-),男,云南楚雄人,硕士,楚雄师范学院计算机信息管理中心高级实验师,研究方向为数据挖掘。0 引言
Moodle是澳大利亚教师Martin Doug
iamas基于建构主义教育理论而开发的课程管理系统,是一个免费的开放
源代码的软件,目前在各国已广泛应用[
1]
。我国有许多学校已开始使用这一免费且功能强大的课程管理平台,但在使用过程中也碰到诸多难题,如何安全、有效地备份Moo-
le平台数据就是其中一个问题。Moodle平台仅提供课程备份功能,对数据库和用户上传文件等重要内容没有提供有效而安全的备份措施,如果不能安全、有效地备份
Moodle平台数据,
氧化锡就有可能丢失课程信息、学生信息等数据,从而影响Moodle平台的使用与推广。笔者通过对M
oodle平台数据备份的研究,提出一种自动远程备份Moodle平台数据的策略与方法,成功解决了Moodle平台数据备份的问题。
1 Moodle平台数据备份
oodle平台包含的重要数据有:学生基本信息、学生学习数据、教师课程信息以及用户提交的各种资源文件,因此,Moodle
平台数据的备份必须要完整涵盖所有用
户图5 出库管理员出库活动
参考文献:网络神话
[1] 朱永鑫.SCM供应链管理[J].企业管理信息化,2005(8):20-21.[2] 谯斯允.
供应链管理系统研究及设计[D].武汉:华中科技大学,2
006.[3] STEVENS G.Integrating 
the supply chain[J].International Jour-nal of Physical Distribution and Materials Management,1989(19):3-
8.[4] 孙军,
陈启祥,彭招生.基于电子商务的供应链管理系统(eSCM)的设计[J].现代计算机,2002(7):23-
25.(责任编辑:孙 娟)
信息、课程数据、学习数据等等,当Moodle平台出现灾难性损毁事件时可完整恢复整个站点,从而保证Moodle平台安全、平稳地运行。Moodle平台的数据备份可分为站点备份、课程备份、课程自动备份3方面内容。
1.1 Moodle平台站点备份
Moodle平台站点备份指系统管理员备份Moodle站点所有相关数据,站点备份结果可让Moodle站点恢复到备份之前的状态。为了减少因站点故障而丢失大量数据或缩短站点恢复时间,Moodle官方站点建议经常进行Moodle平台站点备份。Moodle平台站点备份由以下3部分组成:①存储在数据库系统中的数据。Moodle平台支持多种主流数据库,其中,MySQL数据库和Post-greSQL数据库是Moodle平台开发过程中主要使用的数据库,有非常丰富的相关文档可供查询,是Moodle官方站点推荐使用的数据库。Moodle平台也完全支持微软公司的MSSQL数据库,但Moodle的部分插件可能没有在MSSQL数据库上进行测试,因此,选择MSSQL可能存在部分插件无法正常工作的情况。Moodle平台不完全支持Oracle数据库,Moodle官方站点不推荐使用Oracle数据库。Moodle平台的数据库备份方法与所选数据库种类的不同而不同;②Moodle平台使用过程中由用户上传的文件存储在Moodledata文件夹内;③Moodle平台的源文件,也就是Moodle平台的源程序文件。
Moodle平台源文件目录下的config.php文件中记录有以上3部分文件的相关信息,相应的查看方法如下:①$CFG→dbname数据库名称;②$CFG→prefix数据表名称前辍;③$CFG→dataroot所有用户上传的文件存储路径;④$CFG→wwwroot Moodle平台源文件存储路径。
Moodle平台数据变化最频繁的是数据库和用户上传的文件,因此,经常备份这两部分数据显得非常重要。而Moodle平台源文件只有在代码发生变化、Moodle系统升级、安装插件等情况下才需要备份。
1.2 Moodle课程备份
使用Moodle课程备份功能可以保存一门课程的部分或所有内容。有编辑权限的任课教师可以通过Moodle课程备份功能备份课程,也可下载已经备份成功的课程文件保存或用于其它Moodle站点。在实际应用中,课程备份一般由任课教师完成,而Moodle平台的站点管理员应该设置课程自动备份参数,对整个Moodle站点的所有课程进行备份。
1.3 Moodle课程自动备份
课程自动备份可以为整个Moodle站点的各门课程执行备份程序,因此,在Moodle服务器
访问量较小时执行自动备份功能很适用。当执行自动备份程序时,所有Moo-dle站点内符合备份条件的课程都会被备份,备份结果是每一门课程生成一个备份文件,此项工作将占用处理器的大部份资源,因此,当Moodle站点有许多学生正在访问时不宜执行自动备份。为了正常执行自动备份程序,Moodle站点必须定期执行cron.php程序,该程序是Moodle的维
护程序,cron.php程序位于Moodle源程序中的/admin/cli/文件夹下。
2 Shell脚本和自动任务命令Crontab
自动远程备份策略的实现用到了Linux系统中的Crontab(自动任务命令),该命令可让操作系统在指定时间内自动执行Moodle平台自动远程备份脚本,脚本文件使用Shell语言书写。
2.1 Shell脚本
Shell是用户与内核进行交互操作的一种接口,是Linux最重要的软件之一[2]。Shell是命令解释器,读取标准输入设备或文件从而执行命令。Shell脚本文件是一个纯文本文件,包含一些Shell的语法与命令,就像Windows操作系统下的批处理文件,其最简单的功能就是将许多命令写在一起,执行Shell脚本文件就可以执行它所包含的命令。
2.2 自动任务命令Crontab魏书生
Crontab是Linux系统中的一个命令,用于设置周期性被执行的指令[3],类似于Windows操作系统中的计划任务。Crontab从标准输入设备读取指令,并以用户名为文件名将其保存在/usr/spool/cron/文件夹内。Crontab设置周期性命令执行指令格式如下:
*****command to be executed
命令格式的前5个字段(星号)代表命令执行时间,每个字段所代表的时间分别为:分钟、小时、每月的第几天、每年的第几个月、星期,第6个字段是命令字段,也就是周期性执行的命令,Crontab命令格式的各个字段之间用空格或tab字符分隔。
Crontab命令格式中允许使用一些特殊符号以满足复杂的定时功能,这些特殊符号有:‘*’表示任何时刻,‘,’表示分隔,’-’表示一个时段,’/n’表示时间的执行频率为n。例如:第一个字段如果是’*/15’,就表示每隔15分钟执行命令一次。
3 Moodle自动远程备份策略及实现
为了更好地阐述Moodle自动远程备份策略及实现方法,笔者以楚雄师范学院Moodle平台
为例进行说明,备份内容包括:数据库备份、Moodle平台自动备份结果、Moo-dledata文件夹备份。因Moodle源程序更新较少,当有更新时由系统管理员手工备份即可,无需定期自动备份。上述所有备份内容的结果最终都是以文件的方式存储在指定目录下,笔者指定所有备份文件存储的位置均为/usr/moodle_backup/。
3.1 实验软件环境
操作系统:CentOS6.4,Moodle平台版本:2.5.2,数据库系统:MySQL 5.1。保存用户上传Moodledata文件夹的绝对路径是:/var/www/moodledata/。
·
·
第9期          叶晓波,李晓刚,王 松:Moodle平台自动远程备份策略研究与实现
3.2 楚雄师范学院Moodle课程平台状况
楚雄师范学院尝试将Moodle平台作为学校的一个教学平台,最先在Moodle平台上开设的课程是“大学生就业创业教育”,该课程面向全校1万多名学生开设,学生通过Moodle平台进行自主学习、自主考试,当学生学习程度达到考试要求,Moodle平台中的考试项目即自动开放,因此,每天都有不少学生登录Moodle平台进行学习、考试,课程处于繁忙状态,数据库、Moodledata文件夹每天都有不少更新。
3.3 Moodle数据库备份策略
Moodle数据库备份策略应根据站点使用情况进行设计,一般来说,使用频繁的数据库系统应该经常进行备份。如果数据量巨大,则可考虑使用数据库完全备份+数据库差异备份相结合的策略。针对楚雄师范学院Moodle平台的使用情况,笔者采取每天备份数据库一次、完全备份的方式,在CentOS平台下使用以下语句可完成备份工作:/usr/bin/mysqldump–h localhost–u root–password=MySQL-root-password moodle>/usr/moodle_backup/moo-dle-database.sql
“MySQL-root-password”指MySQL数据库root用户的密码。
3.4 Moodle平台自动备份策略
Moodle平台自动备份功能可以备份站点内所有符合备份条件的课程数据,备份策略的选择应根据课程内数据的变动频率和学生访问的频率制定。Moodle平台自动备份可选择每周的某天进行自动备份、运行自动备份的具体时间、是否跳过上次备份后没有更改过的课程及备份课程的哪些模块内容等。针对楚雄师范学院Moodle平台的使用情况,笔者采取一周7天每天都进行备份,备份时间设定为凌晨1点(此时没有学生使用),备份所有课程的所有内容,备份文件保存路径设置为:/usr/moodle_backup/。在Moodle平台中点击“网站管理→课程→备份→自动备份→自动备份设置”进行参数设置。
为了保证Moodle平台自动备份能够正常执行,Moo-dle平台服务器必须定期执行Moodle系统的维护程序cron.php,定期执行cron.php程序也是保证Moodle平台正常运行的要求,该程序保存在Moodle源程序下的/ad-min/cli/文件夹内,执行命令如下:
/usr/bin/php/var/www/html/moodle/admin/cli/
cron.php
为了能够定期执行cron.php程序,可使用CentOS中的Crontab命令进行设置。
3.5 Moodledata文件夹备份策略
Moodledata是Moodle系统中一个非常重要的文件夹,其中保存着用户上传的所有文件、Moodle系统的临时文件、缓存和会话数据,备份该文件夹时应尽量选择用户使用较少的时间进行操作,笔者采取一周7天每天都进行备份(使用Crontab命令实现定时备份),备份该文件夹可使用CentOS自带的tar压缩命令进行压缩备份。在Cen-tOS平台下使用以下语句可完成Moodledata文件夹的压缩备份工作:
tar-zcvf/usr/moodle_backup/moodledata.tar.gz/var/www/moodledata/
3.6 自动远程备份策略及实现
上述所有数据备份的结果都以文件的方式保存在/usr/moodle_backup/下,也就是保存在Moodle服务器硬盘里,如果服务器硬盘发生故障将会导致备份数据完全丢失,Moodle站点无法恢复,笔者采用自动将所有备份文件通过FTP命令上传至远程多台FTP服务器的策略来解决这个问题,这样,就算Moodle服务器彻底损毁,也可通过自动远程备份文件轻松恢复。自动远程备份策略如图1所示
图1 Moodle平台自动远程备份策略
(1)创建脚本文件实现文件备份及上传。在CentOS服务器上创建脚本文件,文件名为moodle_backup.sh,并使用Chmod命令为脚本文件增加执行权限,该脚本文件实现的主要功能有:MySQL数据库备份、Moodledata文件夹备份、自动登录远程FTP服务器并以当前日期为文件名创建文件夹、上传/usr/moodle_backup/目录下的所有文件到刚创建的文件夹内。为了减少备份对Moodle用户操作的影响,脚本文件在备份数据库之前就停止Cen-tOS上的Apache服务,当备份完成时启动Apache服务。moodle_backup.sh脚本文件内容如下:
#!/bin/sh
UserName="root"#具有Moodle数据库备份权限的MySQL用户名
PassWord="Mysql-root-password"#相应的MySQL用户密码
ServerName="localhost"#MySQL服务器名
Today=$(date+"%Y-%m-%d")#取得当前日期并保存在变量中
service httpd stop#停止Apache服务
/usr/bin/mysqldump-h$ServerName-u$UserName-p$PassWord moodle>/usr/moodle_backup/moodle-data-base.sql#备份Moodle数据库
tar-zcvf/usr/moodle_backup/moodledata.tar.gz/var/www/moodledata/#备份moodledata文件夹
service httpd start#开启Apache服务
·
·软件导刊                      2014年
#以下F
TP命令代码块请查看后续说明ftp-v-n
 211.83.176.31<<END-SCRIPTuser FTP-user-name FTP-user-passwordtype binarymkdir$Today
cd$Today
lcd/usr/moodle_backup/mput*by
大豆糖蜜
eEND-SCRIPT
TP命令代码块的说明:脚本中的“ftp–n-i 211.83.176.31”是登录远程FTP服务器的命令,其中“2
11.83.176.31”是FTP服务器的IP地址;ftp命令中的“–n”参数表示登录FTP服务器不使用读取用户目录下的“.netrc”文件自动登录方式;ftp命令中的“–i”参数是关闭上传多个文件时的交互提示;“F
TP-user-name”和“FTP-user-password”是登录远程FTP的用户名和密码;“mkdir$Today”是以当前日期为名称在远程FTP服务器上创建文件夹;“<<”
是shell命令的输入重定向符,之后的“END-SCRIPT”和结尾的“E
ND-SCRIPT”是Here文档标记,必须配对使用,用于将标记内的脚本作为标准输入传给程序,Here文档标记可自定义,只需配对使用即可。如果有多个远程FTP服务器,可将脚本中的FTP命令代码块复制修改后使用。(2)自动执行任务建立。笔者设定Moodle平台自动备份开始时间是每天凌晨1点,自动备份所有课程大概要花费2个多小时,因此,设定系统自动执行moodle_back-up
.sh文件的时间是每天凌晨5点;Moodle平台维护程序cron.php则每隔15分钟就运行一次。上述两个自动执行任务使用Crontab命令进行添加。在CentOS下输入以下
命令,打开自动执行任务的编辑窗口:
crontab–e
在打开的窗口中按Insert键,
输入以下内容:*/15****/usr/bin/php/var/www/html/moodle/admin/cli/cron.php>/
dev/null 2>&1*5***/usr/bin/moodle-backup.sh>/dev/null 2>&
1按ESC键,输入:wq,按回车键,退出编辑窗口完成设置。
4 结语
本文提出运用Linux操作系统下的Shell scrip
ts对Moodle平台数据库及用户上传文件进行完整备份,
再运用操作系统所提供的自动任务运行服务,定时执行自动上传备份文件的脚本,成功解决了Moodle平台不能完整备份数据及不具有远程备份功能的不足,为Moodle平台的备份功能提供了有效、安全的技术思路,在实际应用中具有较好的参考价值。
参考文献:
吴迪 网球[1] 百度百科.魔灯[EB/OL].2014-3-6.http
://baike.baidu.com/view/1365722.htm?fromTag
list.[2] 华清远见嵌入式培训中心.Linux 
Shell编程从初学到精通[M].北京:电子工业出版社,2
011.[3] .Cron[EB/OL].2014-3-6.http://zh.wikipedia.org
/wi-ki/Cron.
[4] Moodle.Moodle官方站点[EB/OL].2014-3-6.http
://www.moo-dle.org
.(责任编辑:杜能钢)
The Research and Imp
lementation of the AutomaticRemote Backup Strategy 
of Moodle PlatformAbstract:The course data s
ecurity and backup is a very 
important work for Moodle platform,it provides course automaticbackup function,but it lacks backup 
function of database and user upload files,in addition,It can't realize remote backup.This paper aims at the defects of the Moodle platform in backup function,takes Chuxiong Normal University Moodle plat-form as an example,puts forward a sort of full backup strategy.It realizes the backup 
function of database and user uploadfiles by writing shell scripts,combining with automatic task service under Linux system,realizes automatic login remoteFTP and transfer the b
ackup data to the remote FTP server by timing to execute the shell script automatically,so as to re-alize the automatic remote backup 
for Moodle platform data.Key 
Words:Moodle Platform;Remote Backup;Automatic Backup Strategy·
53·第9期          叶晓波,李晓刚,王 松:Moodle平台自动远程备份策略研究与实现

本文发布于:2024-09-22 23:32:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/394611.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:备份   自动   平台   课程   文件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议