Python人工智慧總目錄
人工智慧總目錄網頁連結
13、Python運維
Day01
13.1 運維
1. 運維概述
1、運維概述
1、什麼是運維
伺服器執行維護
2、名詞
1、IDC(網際網路資料中心)
伺服器租用、伺服器託管、機櫃租用
2、監控軟體
常用監控軟體 :zabbix、nagios、cactti
3、常用Linux作業系統
RedHat
CentOS
Ubuntu
4、虛擬化(見圖)
5、Web正向代理
1、訪問原來無法訪問的資源(google)
2、對Web伺服器隱藏使用者資訊
6、nginx反向代理
1、流程
客戶端->代理伺服器->將請求轉發給公司內部網路的伺服器
2、作用
1、保證內網安全,使用反向代理阻止WEB攻擊
2、負載均衡,優化網站負載
3、負載均衡規則
1、輪詢 :逐一迴圈排程
2、權重(weight) : 指定輪詢機率,權重值和訪問比例成正比
3、ip_hash:根據客戶端IP分配固定的後端伺服器
3、nginx反向代理實現負載均衡
修改nginx配置檔案配置nginx排程器
upstream servers{
server 10.10.10.11;
server 10.10.10.12 weight=2;
server 10.10.10.13;
server 10.10.10.14 backup;
}
server{
listen 80;
server_name www.lion.com;
localtion /{
proxy_pass http://servers
...
...
}
}
2. 運維工具
2、運維工具
1、xshell(軟體,安裝在windows)
安全終端模擬軟體
2、xshell使用方法
檔案-新建-輸入伺服器IP-輸入使用者名稱-輸入密碼-確認連線
3、windows <-> Linux
1、安裝lszrz
sudo apt-get install lrzsz
2、windows -> Linux
xshell終端 :rz
3、Linux -> windows
xshell終端 :sz 檔名
3. Linux常用命令
3、Linux常用命令
1、ifconfig : IP地址和MAC地址
2、ping :測試網路連通性
ping IP地址 -c 次數
3、nslookup : 解析域名對應的IP地址
nslookup www.baidu.com
4、sudo /etc/init.d/networking restart
重啟網路
5、top
Linux下工作管理員,動態顯示CPU及記憶體使用率
6、ps -aux
顯示系統程式命令(PID)
ps -aux | grep 'mysql'
7、ssh
遠端連線到伺服器
ssh 使用者名稱@IP地址
8、scp
複製檔案到遠端伺服器
scp 檔名 使用者名稱@IP地址:絕對路徑
9、kill
殺死一個程式
sudo kill 程式PID號
10、df -h
檢視磁碟使用情況
11、ls -lh 檔名: h提供易讀容量單位
12、chmod
修改檔案許可權
chmod +x 檔名
chmod 644 檔名
rw-r--r--
r : 4
w : 2
x : 1
13、wc -l
統計檔案行數
wc -l /etc/passwd
14、sort
對檔案內容進行排序
sort 檔名
15、uniq -c
去重重複行,並統計每行出現的次數(相鄰行)
sort 檔名 | uniq -c
16、du -sh 目錄名: 顯示目錄大小
17、du -ah 目錄名: 顯示目錄下所有檔案,子目錄,子目錄中檔案所佔空間
18、grep
ps -aux | grep mysql
^ : 開頭
$ : 結尾
19、find
1、find 路徑 -name '檔名'
find 路徑 -iname '檔名' ##忽略大小寫
2、find 路徑 -ctime +3 # 3天以前檔案
-1 # 1天以內檔案
find 路徑 -cmin +5
3、find 路徑 -size +10M
find 路徑 -size -1G
4. 週期性計劃任務
4、週期性計劃任務
1、進入週期性計劃任務設定
crontab -e
按4
2、設定週期性計劃任務
* * * * *
分 時 日 月 周
分:0-59
時:0-23
日:1-31
月:1-12
周:0-6
* :所有可能值
, :多個時間點
00 00 1,5 * * python3 /home/tarena/a.py
/ :指定時間間隔頻率
*/10 * * * * python3 /home/tarena/a.py
- :指定一個時間段
0點到6點之間,每隔1個小時執行命令
0 0-6/1 * * * python3 /home/tarena/a.py
1、每分鐘執行一次a.py
* * * * * python3 /home/tarena/a.py
2、每小時的第3分鐘和第15分鐘執行
3,15 * * * * python3 /home/tarena/a.py
3、每天18:00-23:00,每小時執行
0 18-23/1 * * * python3 /home/tarena/a.py
4、每週六、日的0點0分執行
0 0 * * 6,0 python3 /home/tarena/a.py
5. awk的使用
5、awk的使用
1、語法格式 :awk 選項 '動作' 檔案列表
2、用法 :Linux 命令 | awk 選項 '動作'
3、示例
1、awk '{print "AAA"}' ip.txt
2、df -h | awk '{print $1}'
3、顯示當前系統的所有使用者名稱
cat /etc/passwd | awk -F ":" '{print $1}'
4、提取本機的IP地址
ifconfig | head -2 | tail -1 | awk '{print $2}' | awk -F ':' '{print $2}'
5、nginx的訪問日誌路徑:
/var/log/nginx/access.log
訪問記錄 :
127.0.0.1 - - [29/Jan/2019:19:34:42 +0800] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0"
1、把訪問過我的IP地址輸出
awk '{print $1}' access.log | sort | uniq
2、統計有多少個IP訪問過我
awk '{print $1}' access.log | sort | uniq | wc -l
*3、統計每個IP地址訪問我的次數,把訪問次數最多的前10個IP輸出
awk '{print $1}' access.log | sort | uniq -c | sort -rn -k 1 | head -10
4、sort的引數
sort -n : 以數值方式來排序
sort -r : 倒序排列
sort -k 數字: 按照第 幾 列進行排序
sort -rnk 1 : 將第1列按照數值方式倒序排
14、Python專案部署
Day01
14.1 專案部署
1. 概念
目標:
開啟瀏覽器輸入:www.tiger.com進入django專案首頁
1、概念
1、Django專案(Web應用)
2、Web服務
1、nginx :高併發處理的好
2、apache:穩定
LAMP :Linux、Apache、MySQL、Python/Php
LNMP :Linux、Nginx、MySQL、Python/Php
3、uwsgi
是Web服務與Web框架之間簡單而通用的介面
2. 專案部署(nginx+uwsgi+django)
2、專案部署(nginx+uwsgi+django)
1、部署環境準備
1、確保django專案能夠執行
2、安裝nginx(使用apt-get安裝)
1、安裝 :sudo apt-get install nginx
2、啟動 :sudo /etc/init.d/nginx restart
3、驗證 :開啟瀏覽器,輸入127.0.0.1:80-->出現Welcome to Nginx介面
3、安裝uwsgi(必須使用pip3安裝)
1、安裝 :sudo pip3 install uwsgi
2、驗證 :uwsgi --http :8888 --chdir /home/tarena/project/fruitday/ --module fruitday.wsgi
3. 部署線上商城專案
3、部署線上商城專案
1、配置uwsgi(配置檔案)
1、在專案目錄(manage.py所在路徑)中新建uwsgi配置檔案:fruitdayUwsgi.ini
2、vi fruitdayUwsgi.ini
[uwsgi]
# 指定和nginx通訊的埠
socket=127.0.0.1:8001
# 指定專案路徑
chdir=/home/tarena/project/fruitday
# 指定wsgi.py路徑
wsgi-file=fruitday/wsgi.py
# 程式數
processes=4
# 執行緒數
thread=2
# 本專案的uwsgi自身佔用埠
stats=127.0.0.1:8080
2、配置nginx(配置檔案)
1、sudo -i
2、cd /etc/nginx/sites-enabled
3、vi projectNginx.conf
server{
# 監聽本專案的埠,瀏覽器輸入的埠
listen 80;
server_name www.lion.com;
charset utf-8;
# 收集專案靜態檔案的路徑
location /static{
alias /home/tarena/project/fruitday/static;
}
# 和uwsgi通訊埠和通訊檔案uwsgi_params
location /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
}
}
4、sudo /etc/init.d/nginx restart
5、拷貝uwsgi_params檔案到專案目錄
cp /etc/nginx/uwsgi_params /home/tarena/project/fruitday/
6、關閉nginx預設監聽埠80
1、sudo -i
2、cd /etc/nginx/sites-enabled/
3、vi default
# 把原來預設的80改為800
listen 800 default_server
listen [::]:800 default_server;
7、sudo /etc/init.d/nginx restart
3、收集靜態檔案(配置django專案)
1、在settings.py中新增路徑(STATIC_ROOT)
STATIC_ROOT = '/home/tarena/project/fruitday/static/'
2、收集靜態檔案
python3 manage.py collectstatic
4、uwsgi啟動專案
1、切換到專案目錄
cd /home/tarena/project/fruitday
2、利用uwsgi啟動專案
uwsgi --ini fruitdayUwsgi.ini
5、新增本地DNS解析
1、sudo -i
2、vi /etc/hosts
## 新增如下內容:
127.0.0.1 www.lion.com
3、重啟網路
/etc/init.d/networking restart
6、最終驗證
開啟瀏覽器,輸入:www.lion.com/user/login
跳轉到登入介面,部署成功
#### pip3不能使用的解決方法 #####
1、cd /home/tarena/project/setuptools-33.1.1
2、sudo python3 setup.py install
3、sudo apt-get autoremove python3-pip
4、sudo python3 easy_install.py pip
5、sudo apt-get install python3-pip
## 執行pip3 list會報錯 ##
錯誤:cannot import name 'main'
6、sudo vi /usr/bin/pip3
把原來的3行程式碼註釋掉,新增新程式碼後儲存退出:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
7、pip3 list