背景介绍
本机windows上写了django项目,并写了5个接口用作将来的接口自动化。jenkins运行在linux上。当通过git-dev push代码自动触发jenkins执行接口测试用例的时候,
因为django运行在本机上,权限受限,无法触发脚本执行。所以需要把本机的django项目移行到linux上。
准备内容
本机一直使用的putty访问linux,但是在用文件上传时出现错误。所以改用secureCRT。
secureCRT为付费软件,本机为日文系统,需要找日文或者英文的破解版。scrt834.rar
secureCRT使用
安装rz,sz命令
yum list installed | grep lrzsz 查询lrzsz是否az
yum list | grep lrzsz 列出lrzsz安装包
yum install lrzsz.x86_64 安装lrzsz
文件上传与下载
右键选择session options>X/Y/Zmodem设置upload和download路径
rz回车,弹出设置的upload路径,选择要上传的文件add即可
sz filename,即将指定文件下载到如上download路径下了
注意
有时,文件上传不成功提示Zmodem transfer canceled by remote side。加上-be参数。rz -be file
-b:以二进制方式传输(binary)
-e: 对控制字符转移(escape),这可以保证文件传输正确
-a:以文本格式传输(如果能确定传输文件为文本格式的,加此参数)
django项目从windows上迁移至linux上
- 将windows上django项目(Guest)打包上传至linux,linux上解压到指定文件夹
- cd到django项目目录下,pip install django pymysql django-bootstrap3 msgpack
- django settings.py中的database环境修改, 'PASSWORD':改成linux访问mysql的密码, HOST改为'localhost'
- 在做python manage.py makemigrations
- python manage.py migrate
- python manage.py runserver linux_host:8080
- windows上用浏览器打开 linux_host:8080 此时会报错DisallowedHostxxx。
需要在linux的django settings.py中将ALLOWED_HOSTS处加*使所有host均可访问的设定(ALLOWED_HOSTS = ['*'])
哇咔咔,然后终于大功告成啦~~~~~~~~~~~~~~~~~~~~~~~~~
mysql从windows到linux的迁移
- windows上cd到mysql的bin目录,mysqldump -u root -p database_name > file_name.txt
- 将上述导出的txt备份文件上传到linux
- 打开linux,进入mysql,创建与windows同名的数据库
- 查看字符集是否与windows一致,不一致则进行修改 show create database guest; alter database guest character set utf8; show create database guest;
- 导入数据 use guest; source file_name.txt
一个大坑
linux上默认安装的mysql版本是5.1,但windows上安装的版本是5.7.因为版本差距很大,导致导表的时候出现错误。
所以导表之前需要先将linux默认的sql卸载掉,重新安装5.7版本的sql。具体步骤如下:
- rpm -qa | grep -i mysql 查看是否已经安装了mysql
- find / -name mysql 查找mysql文件路径
- service mysqld stop 停止mysql服务
- yum remove mysql mysql-* 删除旧版mysql
- rm -rf /etc/my.cnf 删除配置文件
- rpm -qa | grep mysql 再次查看是否有mysql存在
- 下载yum安装包到本地https://dev.mysql.com/downloads/file/?id=479058,选出common,libs,client,server四个包上传至linux
- rpm -ivh xxxcommonxxx.rpm xxxlibsxxx.rpm xxxclientxxx.rpm xxxserverxxx.rpm 使用rpm命令依次安装这四个包
- service mysqld start 启动mysql
- service mysqld status 查看mysql启动状态
- cat /var/log/mysqld.log | grep password 查看日志找到临时密码并复制该临时密码
- mysql -u root -p 登录mysql,粘贴临时密码
- alter user 'root'@'localhost' identified by 'new_password' 修改root密码(新密码规则要求8位以上,并有大小写和特殊字符组合)
- exit退出mysql,chkconfig --list 显示服务列表,查看mysql是否设定成了自动开机(mysql的3,4,5项目是否为on)
- chkconfig mysqld on 设置开机启动项(chkconfig mysqld off 开闭开机启动)
关于防火墙:/etc/init.d/iptables status 查看防火墙状态; /etc/init.d/iptables stop 关闭防火墙服务
遗留问题
参照Linux文件上传下载
putty上传文件为什么报connection error time out
关于文件上传下载:putty不好用,可以试试下面这些工具
- 传文件用scp(公司内gateway原因此方法一直报access denied)
- python开个webserver
- xshell

