一、知识点回顾
1、网络?
1、传输介质
2、 硬件
2、两台主机之间进行通信?
3、交换网络(局域网内多台计算机之间通讯)
交换机的原理(2层网络 数据链路层 MAC---->表)
|----->主机-----MAC地址
广播风暴的问题
|--->降低减轻
1、路由器的概念
2、子网掩码(划分)
交换网络中的数据格式
源信息(MAC地址)+目地信息(MAC地址)+数据内容 = 数据格式
ARP
4、局域网和局域网之间计算机之间的通讯(路由器 3级网络设备)
路由器的概念
路由器的工作原理
|---->主机 ----IP地址
路由表
|---->静态 优点 大型 快 专业人士
|---->动态 优点 小型 慢 一般
5、TCP/IP协议名词解释
IP协议
TCP协议
UDP协议
ICMP协议
DNS协议
ARP协议
6、OSI和TCP/IP模型
7层 5(4)层
7.TCP/IP协议名词解释
TCP/IP协议的报文格式
TCP/IP协议的C/S 建立连接 3次握手的过程
TCP/IP协议的C/S 断开连接 4次挥手的过程
TCP/IP协议的C/S 建立连接 3次握手的过程状态转换
TCP/IP协议的C/S 断开连接 4次挥手的过程状态转换
8、IP地址
分类 A B C D E
C类 面试 C类地址 192.168.0.x x主机位
D类 组播
特殊的IP地址
0.0.0.0 没有意思
192.168.0.0没有 -1
192.168.0.255广播地址-1
192.168.0.254网关地址-1
(网关地址有可能是192.168.0.1 也有192.168.0.254)
127.0.0.1
等
9.子网掩码
255.255.255.0 C类
255.255.0.0
255.0.0.0
10、网络划分
1.C类网络中 192.168.0.100 50台主机划分网络计算子网掩码。 2^n-3 公式
一.静态路由项目
1.网络中比较重要的协议
1.DNS域名解析协议
ARP 交换机 主机------MAC地址
路由器 主机------IP地址
DNS域名 域名------ip地址
2.企业真实需求
1.hosts文件
2.内网DNS服务器
3.常见的网络命令
1.ping 命令
ping域名 DNS问题
ping公网IP
ping网关
2.iftop监控网络流量用的
linuix服务器下的第三方命令
yum install iftop –y
4.企业网络问题排查流程
1.检查网卡和传输介质网线(水晶头)路由器(WAN LAN){检查硬件}
交换法(换其他网线和网卡试试等)
2.ping网关路由)
3.ping公网ip
4.ping DNS
5.ping自己服务器的地址
5.静态路由项目
1.第一个虚拟机:添加静态路由
route add -net 192.168.0.0/24 gw 10.0.0.12
del(删除)
route –n“查看路由表”
2.第二个虚拟机:
echo“net.ipv4.ip_forward=1”>>/etc/sysctl.conf
sysctl -p 使命令生效
配置虚拟机主机修改内核转发参数,强制开启
3.第三个虚拟机:
route add –net 10.0.0.0/24 gw 192.168.0.12
day 2
Shell编程基础
1.为什么要学shell编程?
linuix系统中大量使用shell,工作中我们需要自动化实现业务(备份,监控,自动安装服务等)
编程也是运维人员必须具备的本领
2.什么是Shell?
shell就是一个命令解释器,命令行的命令及脚本都会通过shell解释
传给操作系统,处理后再输出给用户
[root@oldboy58centos7.6 ~]# tail -1 /etc/passwd
gaopan1:x:1234:1234::/home/gaopan1:/bin/bash---->创建用户时,系统指定的翻译官
3.shell的分类?
1.Bourne shell 2.C shell
C7:支持的shell:
[root@oldboy58centos7.6 ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
4.C7:默认的shell
echo $SHELL
/bin/bash
5.什么是shell脚本
程序,命令放入文件里执行,这个文件称之为shell脚本文件
工作中最多的编程写脚本,存放在文件里。
6.shell变量:
1.全局变量(环境变量)
在整个系统中生效,一般是大写,系统中默认就存在一些这样的变量,满足系统和程序运行的需要
举例:[root@oldboy58centos7.6 ~]# echo $PS1
[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\$
举例:[root@oldboy58centos7.6 ~]# export OLDBOY="I am oldboy"
[root@oldboy58centos7.6 ~]# echo $OLDBOY $<-----输出一个变量就要加$
I am oldboy
永久生效:
推荐以后把环境变量放入 /etc/bashrc
2.局部变量(普通变量)
是编写shell脚本最常用的变量
变量名=值
a=1
变量名:数字,字母,下划线,不能是数字开头
=:赋值符,把什么东西给谁
值:东西,变量内容
单引号,双引号,反引号,不加引号
举例:[root@oldboy58centos7.6 ~]# a=1
[root@oldboy58centos7.6 ~]# echo $a
1
[root@oldboy58centos7.6 ~]# echo ${x}y
1y
7.表达式
[表达式] 中括号表达式,中括号里面两端必须要有空格
字符串要加双引号
举例:[root@oldboy58centos7.6 ~]# [ "a"="a" ] && echo 1||echo 0
1
1)整数表达式:
> -gt
< -lt
= -eq
>= -ge
<= -le
不等于 -ne
举例:[root@oldboy58centos7.6 ~]# a=1
[root@oldboy58centos7.6 ~]# [ $a -eq 1 ] && echo 1||echo 0
1
[root@oldboy58centos7.6 ~]# [ $a -eq 2 ] && echo 1||echo 0
0
1.整数表达式 两端必须要有空格
2.中括号里面两端必须要有空格
3.变量和比较的内容,不需要加引号
2)字符表达式:
-z 变量内容长度为0时,为真。 zero
-n 变量内容长度【不】为0时,为真。 not zero
举例:[root@oldboy58centos7.6 ~]# oldboy="I am oldboy"
[root@oldboy58centos7.6 ~]# [ -z "$oldboy" ] &&echo 1 ||echo 0
0
[root@oldboy58centos7.6 ~]# oldboy=""
[root@oldboy58centos7.6 ~]# [ -z "$oldboy" ] &&echo 1 ||echo 0
1
[root@oldboy58centos7.6 ~]# [ -n "$oldboy" ] &&echo 1 ||echo 0
0
== 字符串是否相同
1.字符串要加双引号
举例:[root@oldboy58centos7.6 ~]# [ "ls" == "ll" ] &&echo 1||echo 0
0
[root@oldboy58centos7.6 ~]# [ "ls" == "ls" ] &&echo 1||echo 0
1
判断句:
1.如果***那么
if [表达式]
then
命令
fi
举例:[root@oldboy58centos7.6 ~]# vim t.sh
#!/bin/bash
a=1
if [ $a -eq 1 ] <---如果a=1
then <---那么
echo 1 <---输出1
fi <---结束标记
[root@oldboy58centos7.6 ~]# bash t.sh
1
else 否则
举例:if [ $a -lt 0 ]
then
echo 1
else echo 2
date
1.书写脚本习惯:以.sh结尾
2.脚本第一行 #!/bin/bash <----脚本内容由谁解释
由于Linuix下默认是bash,所以可以不写这一行
read命令 读取用户输入
-p 提醒
-t 多长时间内等待输入
举例:[root@oldboy58centos7.6 ~]# read -t 10 -p "请输入一段话" boy
请输入一段话潜力号
[root@oldboy58centos7.6 ~]# echo $boy
潜力号
脚本举例:
[root@oldboyedu ~]# cat test.sh
#!/bin/bash
read -p "请输入你喜欢的男孩的一句话:" boy
if [ "$boy" == "潜力股" ]
then
echo "先和你谈谈朋友"
else
echo "白白"
fi
[root@oldboyedu ~]# sh test.sh
请输入你喜欢的男孩的一句话:我没钱
白白
[root@oldboyedu ~]# sh test.sh
请输入你喜欢的男孩的一句话:潜力股
先和你谈谈朋友
多条件案例:
oot@oldboy58centos7.6 ~]# vim tt.sh
▽
#!/bin/bash
read -p "输入数字" a b
if [ $a -gt $b ]
then
echo "$a>$b"
elif [ $a -eq $b ]
then
echo "$a=$b"
elif [ $a -lt $b ]
then
echo "$a<$b"
fi
2.for循环
for n in 取值列表
do
echo $n
done
案例:#!/bin/bash
for n in {1..5}
do
echo "10.0.0.$n"
done
day3
diff 比较
例子:
diff /etc/passwd{,.ori}
25c25
< #gaopan1:x:1234:1234::/home/gaopan1:/bin/bash
---
> gaopan1:x:1234:1234::/home/gaopan1:/bin/bash
rpm 安装,卸载,升级,查询,验证
缺点:需要很多依赖
yum 背后使用rpm ,不需要直接使用rpm了
linuix系统如何安装软件
1.rpm安装
简单,快。依赖多
2.yum安装
简单,快。自动解决依赖,不能选择软件版本
3.编译安装(源码编译)
慢,复杂。需要GCC编辑器可以自定义安装(版本,软件路径等)
4.将源码制作成rpm ,然后放到yum仓库,实现yum安装
一次性慢,复杂。安装快,可以自定义安装(版本,软件路径等)
CentOs6和 CentOs7的区别
1.服务相关
CentOs6服务:service 服务 stop|start|restart|reload
等价于 /etc/init.d 服务 stop|start|restart|reload
CentOs7服务: systemctl stop|start|restart|reload|status +什么服务
停止 开启 重启 平滑重启 查看状态
2.开机自启动等相关
CentOs6 chkconfig +服务 off| chkconfig --list +服务 查看开机自启动状态
CentOs7 systemctl disable|enable +服务
3.查看服务开机启动列表
CentOs6: chkconfig --list|grep“3 on”
CentOs7: systemctl list-unit-files
4.默认防火墙
CentOs6:iptables
CentOs7:firewalld
5.默认数据库
CentOs6:MySQL
CentOs7:MariaDB
6./etc/rc.local
CentOs6:放置开机启动命令
CentOs7:需要授予执行权限 -rw-r--r-- chomd +x
7.查看ip地址
CentOs6:ifconfig
CentOs7:ip(默认没有ifconfig或route)
第一阶段复习
1.数据安全,服务不宕机,用户体验更好
2.U 1U=4.45cm
4.3DELL HP IBM DELL最多
R410,420,610,620 R710,720,730
5.内存速度快,临时存储,存放正在运行的进程,数据先写到内存,再放磁盘
6.程序:放在计算中的代码文件(磁盘),进程:运行的程序(内存)守护进程:持续运行进程
7.buffer 写入缓冲区 cache 读取缓存区 sync 把buffer内容写到磁盘
Linuix默认策略,把没有使用的内存,都会作为缓冲区或缓存区
8.远程控制卡 远程操作服务器
9.磁盘常见接口
10.32位和64位
64位快,支持内存大 ,
网卡连接方式: NAT 仅主机 桥接
修改网卡默认名称为eth0
远程连接工具?
查端口:
netstat -lntup|grep sshd
systemctl status sshd
客户端查服务
telnet 10.0.0.200 22 检查tcp端口是否开放
ifconfig 别名ip
ip 辅助ip
ifconfig eth0:0 10.0.0.202/24 up (给一个网卡增加一个ip)
ip addr add 10.0.0.203/24 dev eth0 label eth0:1 (给一个网卡增加一个ip)
tcp 三次握手,四次挥手 *****
11种状态
day 5
中小规模集群架构
1.什么是集群?
一堆机器做同一件事
2.为什么企业要用集群?
a.业务7*24小时服务,需要多台机器同时工作,互为实时备份。
b.高并发访问,需要多台服务器同时提供服务。
3.集群的特点?
a.数据量大,用户多
b.持续服务,高可用
c.高并发
d.用户分布广泛,网络情况复杂
4.描述集群
1.规范目录
mkdir -p /server/tools ----存放软件
mkdir -p /server/scripts -----脚本
2.配置主机解析
cat >/etc/hosts<<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01
EOF
3.修改主机名
4.更新yum源
第一个:就近使用yum源地址,安装软件更快。
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
第二个:安装RHEL/CentOS官方源不提供的软件包
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
5.安全优化 关闭selinuix
# 1、关闭selinux
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0 ----临时关闭
getenforce -----查看selinux
6.关闭防火墙
7.增加一个普通用户给root权限
克隆三台:
B1-web服务器1 10.0.0.7/24 172.16.1.7/16 web01
C1-NFS存储服务器 10.0.0.31/24 172.16.1.31/16 nfs01
C2-rsync备份服务器 10.0.0.41/24 172.16.1.41/16 backup