听·时光

# hustoj备份到本地虚拟机

开发 Tags: 无标签 阅读: 1499

hustoj安装在阿里云,现在需要备份到本地。记录一下处理过程。

第一步,在阿里云服务器上打包data文件夹(评测数据),以及upload文件夹(图片)和bs3文件夹(模板),导出数据库信息。
1.压缩data文件夹:

tar -zcvf data.tar.gz data

其他文件夹类似,data比较大,压缩后有5.4G。
2.导出数据库信息:wget phpMyAdmin下载地址。登录数据库,导出jol数据库。


第二步,本地(Win10)在虚拟机中安装Ubuntu16.04 Server,并搭建hustoj。
1.在VirtualBox5.2.32版本中安装Ubuntu虚拟机,并安装hustoj。

wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh
sudo bash install-ubuntu16+.sh


第三步,设置VirtualBox中的虚拟机和Win10系统实现文件共享。
1.在VirtualBox“共享文件夹”处设置好一个文件夹(名称为:Share),并勾选“自动挂载”(Ubuntu开机前)。
2.在Ubuntu系统中做如下设置。
2.1)安装VirtualBox驱动:

sudo apt-get install virtualbox-guest-utils

2.2)安装增强功能:
安装依赖工具:

sudo apt-get install dkms  
sudo apt-get install build-essential

2.3)重启
2.4)在VirtualBox菜单栏点击“安装增强功能”。
2.5)挂载cdrom:

sudo mount /dev/cdrom /mnt/

2.6)执行安装命令:

sudo /mnt/VBoxLinuxAdditions.run

2.7)卸载:

sudo umount /mnt/

3.Ubuntu中创建共享文件夹:

sudo /mnt/file

4.将Share和file进行关联:

sudo mount -t vboxsf Share /mnt/file

以上设置之后,就可以在Ubuntu系统中的file文件夹共享Win10系统中Share文件夹的文件了。


第四步,更新hustoj数据。
1.将第一步操作中备份好数据拷贝到对应位置。
将data.tar.gz等文件拷贝到Share文件夹,然后再在Ubuntu系统中拷贝到对应位置,并解压。

sudo cp /mnt/file/data.tar.gz /home/judge/
sudo cp /mnt/file/upload.tar.gz /home/judge/src/web/
sudo cp /mnt/file/bs3.tar.gz /home/judge/src/web/template

2.删除原来的文件夹,并解压对应的文件。

sudo rm -rf data
tar -zxvf data.tar.gz

其他的类似。
3.最后,登录数据库,替换jol数据库。
数据库文件接近100M,需要更改一下php上传文件的大小限制。
3.1修改php配置文件

sudo vim /etc/php/7.0/fpm/php.ini
post_max_size = 250M      
upload_max_filesize = 245M 

3.2修改ngnix配置文件

sudo vim /etc/nginx/nginx.conf
client_max_body_size 250m

3.3重启服务

sudo /etc/init.d/php7.0-fpm restart
sudo /etc/init.d/nginx reload

4.登录hustoj后台,更新数据库,即可。


参考资料:
hustoj#基于ubuntu1604安装
VirtualBox创建Windows与Ubuntu的共享文件夹
VirtualBox 安装增强功能 ubuntu server版
ubuntu+nginx+php7.0修改上传文件大小限制

发表评论