运维概述
1 什么是运维
服务器的运行维护
2 名词
IDC(互联网数据中心)
3 监控软件
zabbix(用的最多), nagios, cactti
4 常用的linux操作系统
1 CentOS
2 Redhat
3 Ubuntu
5 虚拟化
esxi 6.5 (用vsphere client 连接)
6 web正向代理(客户端知道自己使用的代理IP)
1 用途
1 访问原来无法访问的资源(goole)
2 对web服务器隐藏用户信息
7 nginx反向代理(客户端没有感觉)
1 流程
客户端 --> 反向代理服务器 --> 把请求转发给内部网络服务器
2 作用
1 保证内网安全,可以使用方向代理提供WAF功能,阻止WEB攻击
2 实现负载均衡,优化网站的负载
负载均衡规则:(通过nginx反向代理)
1 轮询 :逐一循环调度
2 权重(weight) : 指定轮询几率,权重值和访问比例成正比
3 ip_hash : 根据客户端ip分配固定的后端服务器
8 负载均衡实现(修改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;
... ...
}
linux 常用命令
1, ifconfig 查看IP地址和MAC地址
2 nslookup :解析域名对应的ip地址
3 top :linux下的任务管理器,动态显示当前所有进程CPU以及内在的使用率,q退出
4 ps -aux | grep '服务名':显示系统进程(PID号) 6 df -h:查看磁盘使用情况 ,一般查看根('/')
7 ls -lh : l 表示长格式,h 提供易读单位
8 ls -lhd 文件夹名 :查看文件夹大小
9 chmod : 修改文件权限
chmod +x 文件名
chmod 644 文件名
r :4 w:2 x:1
10 wc -l :统计文件的行数
wc -l /etc/password :统计linux系统有多少个用户
11 sort : 对文件中的内容进行排序
sort ip.txt
12 uniq -c : 配合sort使用效果更好
1 作用:去除重复的行,并统计每行出现的次数(相邻行才能去重)
13 find命令:根据指定条件查找文件/目录
1
1 -name :文件名查找
find 路径 -name "文件名"
2 -iname :不区分大小写
2 -type :根据类型查找(文件|目录)
1 常用选项
f :文件
d :目录
l : 链接(link快捷方式)
find . -name 'mysql*' -type f
3 按大小查找
1 + :大于...的文件/目录
2 - :小于...的文件/目录
3 查找/home/treana/software大于20m的文件
find /home/tarena/software/ -size +20M -type f
4 -ctime :根据时间查找
1 -ctime + 1 :表示1天以前的文件/目录
2 -ctime - 1 :表示1天以内的文件/目录
3 find . -ctime -1
5 处理动作
find ... -exec Linux命令 {} \;
1 当前目录下查找1天以内的.doc文件,然后删除
find . -name '*.doc' -ctime -1 -type f -exec rm -rf {} \;
6 根据指定内容查找-->(#changsouce)
find . -type f -name "*.html" |xargs grep -i "#changsource" find . -name "*.html" |xargs grep -i "#changsource"
14 ssh : 远程连接到服务器
1 格式:ssh 用户名@IP地址
15 scp
1 远程复制文件/目录
2 scp 文件名 用户名@IP地址:绝对路径
16 du -sh :显示当前目录大小
du -sh 目录名
运维工具
1 xshell(软件,安装在windows)
安全终端模拟软件
1 xshell的使用方法
文件 - 新建
2 Windows <--> Linux 文件互传
1 安装lszrz
sudo apt-get install lrzsz
2 windows文件 -> Linux
在xshell终端
rz
3 Linux文件 --> windows
在xshell终端
sz 文件名
周期性计划任务
1 crontab -e
选3 或者4
2 设置周期性计划任务
* * * * * python3 /home/tarena/software/..py
分 时 日 月 周
*: 代表所有可能的值
,: 指定多个时间点
每月的1号和5号执行1 个py 文件
0 0 1,5 * * python3 /home/tarena/software/..py
/: 指定时间间隔的频率
每隔10分钟执行1个py 文件
*/10 * * * * * python3 /home/tarena/software/...py
-: 指定一个时间段
0点- 6点之间,每小时去执行1个py文件
0 0-6/1 * * * python3 /home/tarena/software/...py
1 每分钟执行1次 backup.py
*/1 * * * * python3 /home/tarena/software/backup.py
2 每小时的第3分钟和第15分钟执行backup.py
3,15 * * * * python3 /home/tarena/software/backup.py
3 每周六和周日的0点执行backup.py
0 0 * * 6,0 python3 /home/tarena/software/backup.py
4 每天的18点-23点之间,每小时执行1次backup.py
0 18-23/1 * * * python3 /home/tarena/software/backup.py
5 awk 的使用
1 语法格式:awk 选项 '动作' 文件
2 用法: Linux命令 | awk 选项 '动作'
3 使用示例
1 awk '{print "hello"}' ip.txt
2 de -h | awk '{print $1}'
作用:显示de -h 结果第一列的内容(默认以空白分隔不同的列)
3 awk -F '分隔符' '{动作}' ...
## 默认以空白分隔,-F 可手动指定分隔符
4 显示本机的IP地址
ifconfig | head -2 | tail -1
5 sort 的参数
sort -k 1 :按照第1列进行排序
sort -n : 以数字的方式比较排序
sort -r : 倒序排列
sort -rnk 1 :把第1列以数字的方式进行倒序排列 shell编程,,第一句必须要加上#!/bin/bash
在执行时,需要使用 sh xx.sh 来执行
后缀以.sh shell 编程
1 所有的shell程序都是以 .sh结尾
2 执行方式
3 shell 基础
1 变量赋值
1 变量名=值 : =两侧不能有空格
number=10 name="张三丰"
2 获取linux命令的执行结果给变量赋值
1 time=$(date)
2 time=`date`
3 接受用户从终端输入给变量赋值
read -p "提示信息" 变量名
read -p "输入姓名:" name ex:
#!/bin/bash
number=10
time=$(date)
read -p "请输入姓名:" name
echo $number
2 输出语句
echo $变量名
3 '' 和 "" 的区别
在引号内
1 ''无法获取变量的值
2 ""可以获取变量的值
read -p "input name:" name
echo '名字是:$name' --> 结果: 名字是:$name
echo "名字是:$name" --> 结果:名字是:张三丰 4 运算符
1 算术运算符
+ - * / %
++ :自加1运算
--
运算命令(let):
1 let运算表达式
i=1
let i++
echo $i --> 2
2 expr运算表达式
i=1
sum=`expr $i + 5`
echo $sum -->6
2 比较运算符
1 文件状态
-e :文件/目录,是否存在
-d:目录/判断是否为目录
-f:文件 ,判断是否为文件
3 字符比较 = !=
空: -z
非空: !-z 或 -n
4 数值比较
等于 eq
不等于 -ne
小于: -lt -le
大于: -gt -ge 5 逻辑比较
逻辑与:&&
逻辑或: ||
5 if条件判断
1 语法格式:
if [ 条件 ];then
执行条件
elif [];then
执行条件
else
执行语句
fi 6 for 循环
语法:for 变量名 in 值列表
do
执行语句
done
造数方法 : `seq 起始值 步长 中止值`(包括终止值)
例 `seq 5` : 1 2 3 4 5 默认起始值为1 ,步长为1
c 语言的for 循环:for((赋初值;条件判断;步长))
do
执行语句
done
7 while 循环
语法: while [条件]
do
执行语句
done
8 函数:语法:函数名(){
代码块}
调用:函数名