背景介紹
本機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