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