第六周 day27
一知识点回顾
1、网络
1传输介质
2硬件
2两台主机之间进行通信
3局域网交换网络
交换机的原理 2层网络 数据链路层 mac表
广播风暴的问题
降低 减轻 路由器的概念 子网掩码划分
交换网络中的数据格式 原信息+目的信息+数据内容=数据格式
4局域网和局域网计算机之间的通信路由器 路由器 3级网络设备
路由器的概念
路由器的工作原理
主机 ip地址
路由表
静态 优点 大型 块 专业人士
动态 优点 小型 man 一般
5tcp/ip协议名词解释
ip协议
tcp协议
udp协议
6osi和tcpip协议
7层 5层模型
7tcpip协议名词解释
报文格式
cs建立连接3次握手的过程
cs断开连接4次挥手的过程
cs建立连接3次握手的过程状态的转换
cs断开连接4次挥手的过程状态的转换
8ip地址分类
分类 abcd
c类 面试c类地址 192.168.0.x x主机位
d类 组播
特殊的ip地址没意思 -1
192。168.0.255广播地址 -1
192.168.0.254 网关地址 -1
127.0.0.1
9子网掩码
255.255.255.0
255.255.0.0
255.0.0.0
10网络划分
c类网络中192.168.0.100 50台主机划分计算子网掩码
二静态路由项目
1网络中比较重要的协议
1dns协议 域名解析
arp交换机 主机 mac地址
路由器 主机 ip地址
dns域名 域名 ip地址
2域名
3购买自己的一个域名
根域名服务器 大多在美国 13台
顶级域名服务器
com cn org edu等
公司的商业组织 地区中国
万网 阿里云的
注册邮箱 bj
A记录 网站 记录值 ip地址
dns优化 百度云加速 css js html 预加载到服务器上 cdn加速
2企业真实的需求
1host文件服务器
2内网dns服务器
Linux服务器 dns
本地服务器解析
转发器
| - 主路由 - dns - 公网ip- dns -域名
3常见的网络命令
1ping命令
ping域名 无应答 dns无反应 有问题
ping公网ip
ping网关 一般网关都是路由的ip 不是.1就是.254
2 iftop监控网络流量用的
Linux服务器下用的 第三方命令
yum install iftop -y
iftop -i eth0监控流量信息
4企业网络出现问题的排查流程
第一步 检查硬件 网卡(灯) 网线水晶头 路由器WAN LAN 交换机
交换法
|- 网线
网卡
第二步 ping网关(路由)
第三步 公网Ip
第四步 DNS
第五步 ping自己的服务器地址
5 静态路由项目
1准备三台虚拟机
第一天一块网卡 10.0.0.11
第二台两块网卡 10.0.0.12 192.168.0.12
第三台一块网卡 192.168.0.13
2在第一台主机
从主机1-10.0.0.11 主机2-192.168.0.12
下午扩展:
三剑客
grep 过滤
-E 支持扩展正则
-o 只显示匹配到的内容 显示grep执行过程
-v 取反
-i 不区分大小写 ignore case find /oldboy -type f -iname ".ext"
-n 取行
-w 按照单词进行匹配
-A 9 after 显示grep找出来的行以及接下来的9行 An 在各行结尾标出$区分空行
-B before 之前的几行
-C 上下几行
-r 递归过滤 在所有层下查找所有的内容
1 Unix中在当前目录下所有.cc 的文件中找到含有“asiainfo”内容的文件,命令为_______
找出当前目录下包含127.0.0.1关键字的文件?
find -type f -name“.*.cc”|xargs grep ' asiainfo'
写出查询file.txt以abc结尾的行
4写出删除abc.txt文件中的空行
基础版:
中级版
sed 增删改查
-n 取消默认输出
-i 修改文件内容 -i.avi 修改前先备份并且以avi结尾
-r 支持扩展正则
awk 过滤 取列 统计计算
day28 shell编程基础
1为甚学习shell编程?
Linux系统中会大量使用shell,工作中我们也要自动化实现业务,比如自动备份、监控、自动安装服务。
shell编程是Linux运维人员必须要会的编程语言,最简单的编程语言。
编程也是运维人员必会本领
shell和Python是运维人员必须具备的本领
2shell?
shell是一个解释器,命令行的命令以及脚本都会通过shell解释(翻译官),传给操作系统,处理后再输出给用户。
比如/bin/bash
创建用户时,系统指定的翻译官。
3shell的分类
两大类:bourne shell(sh)
c shell又包括csh、tcsh两类
4centos7的shell默认:echo $shell
/bin/bash
5什么是shell脚本?
程序命令放入文件里执行,这个文件称为shell脚本。
工作中最多的编程是写脚本,存放在文件里。
6shell的变量
1全局变量 (环境变量)
在整个系统中生效的,一般是大写,系统中会自动存在一些这样的变量,满足系统和程序运行的需求。
系统自带的环境变量。
自定义环境变量:
export OLDBOY=“i am oldboy”
OLDBOY ="I am oldboy" export $OLDBOY
推荐吧环境变量放入/etc/bashrc 里面
安装Java服务时候就会配置环境变量
2局部变量 (自定义变量)
是编写shell家里本最常用的变量
变量名=值
a=1
变量名:数字 字母 下划线 不能是数字开头
oldboy 123a _abc
=等号:赋值符 吧什么东西给谁 等号两边不能有空格
值:东西 变量内容
单引号 双引号 反引号 不加引号
7表达式
[]表达式 中括号量表必须要有空格 [ biaodashi ]
整数表达式
> -gt greater than
= -eq equal to
< -lt less than
>= -ge greater than or equal to
<= -le
不等于 -ne unequal to
整数表达式符 量表必须有空格
中括号里面两端表必须要有空格
变量和比较的内容,不需要加引号
字符表达式:
-z 变量内容长度为0时 为真 zero
-n 变量内容长度不为零时 为真 not zero
a == a 字符串是否相同
说明:
字符串要加双引号
判断句:
如果。。。那么。。。
if [ 表达式 ] then 命令为_______
书写脚本习惯:
以.sh结尾
脚本第一行 #!/bin/bash 脚本内容由谁来解释
由于Linux下默认是bash 所以也可以不写这一行
8read命令 交互式读取用户输入
-p “提醒: ”
-t “多长时间内等待输入” 以s秒为单位
read -t 3 -p
9for循环
for n in 取值列表
do 执行命令
done 以done结尾
判断比大小 fi结尾
for循环 done结尾
diff 文本比较工具
vimdiff 文本图形化比较
day29
rpm命令
包管理器 升级 卸载 安装 查询 验证
-i 安装install
-v 显示详细信息
-h
-U 升级软件包
-q 查询
-a 查所有 比如rpm -qa lrzsz 查询上传下载
-e 卸载软件包 --nodeps 忽略依赖直接卸载
-l 显示软件包的所有软件列表
-f 查询文件或命令属于哪个包 (后接全路径)
yum命令
帮我们在rpm安装时解决软件包依赖
背后还是在使用rpm,不需要直接使用rpm,让安装软件更智能,推举幕后工作。
install 安装软件包
groupinstall 安装组包
grouplist 获取组包
list installed 查已经安装的软件
根据命令或配置查属于哪个包
yum provide /bin/bash
remove 移除软件包(禁止使用,Linux不需要卸载)
Linux系统如何安装软件?
yum安装
简单 块 依赖多,解决问题困难繁琐
rpm安装
简单 块 自动解决依赖 不能解决软件版本
编译安装(源码编译)
慢 复杂 需要GCC编译器可以自定义安装(版本 软件路径)
将源码制作成rpm,然后放在yum仓库,实现rpm安装
一次性 慢 安装块 可以自定义
chattr 设置文件属性
chatte +i 文件 锁定文件,不能增删改查
+a 只能追加不能删除
-a 解锁
lsattr 查看文件属性
day29
[root@oldboyedu ~]# diff /etc/passwd{,.ori}
32c32
< #oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
---
> oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
[root@oldboyedu ~]# diff /etc/passwd /etc/passwd.ori
32c32
< #oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
---
> oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
rpm命令全称是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都使用这种形式的命令管理、安装、更新和卸载软件。
概括地说,rpm命令有五种基本功能(不包括创建rpm包):安装、卸载、升级、查询和验证。
[root@oldboyedu ~]# mount /dev/cdrom /mnt
mount: no medium found on /dev/sr0
[root@oldboyedu ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboyedu ~]# cd /mnt/
[root@oldboyedu /mnt]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@oldboyedu /mnt]# cd Packages/
需要很多依赖。
[root@oldboyedu /mnt/Packages]# rpm -ivh dos2unix-6.0.3-7.el7.x86_64.rpm
Preparing... ################################# [100%]
package dos2unix-6.0.3-7.el7.x86_64 is already installed
[root@oldboyedu /mnt/Packages]# rpm -qa|grep tree
tree-1.6.0-10.el7.x86_64
[root@oldboyedu /mnt/Packages]# rpm -qa tree
tree-1.6.0-10.el7.x86_64
[root@oldboyedu ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
[root@oldboyedu ~]# rpm -qf /sbin/ifconfig
net-tools-2.0-0.24.20131004git.el7.x86_64
yum命令:帮我们在rpm安装时解决软件包依赖,
背后还是使用rpm,不需要直接使用rpm了
让安装软件更智能了。底层还是rpm在工作。
yum主要用于自动安装、升级rpm软件包,它能自动
查找并解决rpm包之间的依赖关系。
[root@oldboyedu ~]# yum grouplist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base | 3.6 kB 00:00:00
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
[root@oldboyedu ~]# yum groupinstall "File and Print Server"
[root@oldboyedu ~]# yum list tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
tree.x86_64 1.6.0-10.el7 @base
[root@oldboyedu ~]# yum install tree -y
根据命令或者配置等的路径查属于哪个包
[root@oldboyedu ~]# yum provides /etc/my.cnf
[root@oldboyedu ~]# yum provides /sbin/ifconfig
Linux系统如何安装软件?
1、rpm安装
简单 快。依赖多,解决依赖困难繁琐。
2、yum安装 *****
简单快,自动解决依赖。不能选择软件版本或软件存放路径。
3、编译安装(源码编译)*****
慢 复杂 需要GCC编译器,可以自定义安装(版本、软件路径)
4、将源码制作成rpm,然后放到yum仓库,实现yum自动安装。
一次性慢 复杂,安装快,可以自定义安装(版本、软件路径)
制作RPM YUM仓库搭建
https://blog.oldboyedu.com/autodeploy-rpm/
[root@oldboyedu ~]# chattr +i /etc/passwd #<==锁定文件不能删除,不能修改
[root@oldboyedu ~]# lsattr /etc/passwd
----i----------- /etc/passwd
[root@oldboyedu ~]# lsattr /etc/hosts
---------------- /etc/hosts
[root@oldboyedu ~]# cp /etc/passwd{,.ori}
[root@oldboyedu ~]# rm -f /etc/passwd
rm: cannot remove ‘/etc/passwd’: Operation not permitted
[root@oldboyedu ~]# echo ddd > /etc/passwd
-bash: /etc/passwd: Permission denied
[root@oldboyedu ~]# useradd littleboy
useradd: cannot open /etc/passwd
chattr -i /etc/passwd #<==解锁文件。
给重要文件上锁
[root@oldboyedu ~]# chattr +a oldboy.txt
[root@oldboyedu ~]# rm -f oldboy.txt
rm: cannot remove ‘oldboy.txt’: Operation not permitted
[root@oldboyedu ~]# echo dddd >>oldboy.txt
[root@oldboyedu ~]# echo dddd >>oldboy.txt
day30
Linux默认策略,把没有使用的内存,都会作为缓冲区或者缓存区。
1.常规分区
/boot 1024M
swap 内存1.5倍 大于8G给8G
/ 所有
================================
/home
/var
/usr
2.存储 数据库 备份
/boot 1024M
swap 内存1.5倍 大于8G给8G
/ 100-200G
/data 所有 放数据
3.门户
/boot 1024M
swap 内存1.5倍 大于8G给8G
/ 100-200G
剩下保留。
xshell,secureCRT,putty,ssh
SSH默认22端口
0.VM虚拟网络编辑器设置
1、服务端运行。
[root@oldboyedu /opt]# netstat -lntup|grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6899/sshd
tcp6 0 0 :::22 :::* LISTEN 6899/ssh
[root@oldboyedu /opt]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-10-28 21:09:17 CST; 1 years 6 months left
Docs: man:sshd(8)
2.客户端ping
ping 10.0.0.201
3.客户端检查服务
[c:\~]$ telnet 10.0.0.201 22
Connecting to 10.0.0.201:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
SSH-2.0-OpenSSH_7.4
IP端口别错,就是防火墙问题。
4.xshell连接
c6:/etc/init.d/sshd restart
service sshd restart
c7:systemctl restart sshd
概念:
ifconfig 别名IP
[root@oldboyedu /opt]# ifconfig eth0:0 10.0.0.202/24 up
增加网卡文件/etc/sysconfig/network-scripts/ifcfg-eth0:0
ip 辅助IP
ip addr add 10.0.0.203/24 dev eth0 label eth0:1
7. 如何测试服务器能否连上互联网?
ping www.oldboyedu.com
ping 203.81.19.1 通的 但是ping www.oldboyedu.com不通。
如果网站没问题就是DNS问题
[root@oldboyedu /opt]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5
ping 10.0.0.254
* * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
女生富养,男生穷养。
磁盘体系:
1.磁盘维护
2.挂载
3.文件系统
4.分区
5.raid知识体系
6.内外部结构、读写原理
命令使用:
#/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL 查raid级别
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL 查raid卡信息
#/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL 查看硬盘信息
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -aAll 查看电池信息
#/opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -aALL 查看raid卡日志
#/opt/MegaRAID/MegaCli/MegaCli64 -adpCount 【显示适配器个数】
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpGetTime –aALL 【显示适配器时间】
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll 【显示所有适配器信息】
#/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll 【显示所有逻辑磁盘组信息】
#/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll 【显示所有的物理信息】
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 【查看充电状态】
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL【显示BBU状态信息】
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuCapacityInfo -aALL【显示BBU容量信息】
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuDesignInfo -aALL 【显示BBU设计参数】
#/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuProperties -aALL 【显示当前BBU属性】
#/opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL 【显示Raid卡型号,Raid设置,Disk相关信息】
3.磁带状态的变化,从拔盘,到插盘的过程中。
Device |Normal|Damage|Rebuild|Normal
Virtual Drive |Optimal|Degraded|Degraded|Optimal
Physical Drive |Online|Failed –> Unconfigured|Rebuild|Online
4.查看磁盘缓存策略
#/opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -Cache -L0 -a0
https://www.cnblogs.com/lianzhilei/p/6472038.html
网络部分:
1、tcp三次握手四次挥手。
2、11种状态
3、tcpdump/wireshark/route
4、不能上网如何排查。
手把手带你快速做【最专业】的项目文档实战
http://edu.51cto.com/course/course_id-4992.html
手把手带你快速画【最专业】的逻辑架构图实战
http://edu.51cto.com/course/course_id-4991.html
day31
中小规模综合架构
1什么是集群?
简单的说,就是一堆机器做同一件事。
www.baidu.com 看着就是一个搜索框,背后可能就是上万台服务器。
2为什么要用集群?
7*24小时服务,需要多台机器同时工作,互为备份。
高并发的访问,需要多台服务器同时提供服务。
3集群的特点?
数据量用户多 独行快,众行远。
7*24小时持续服务
高并发
用户分布范围广,网络情况复杂。
4形象的描述集群
基础优化:
规范目录用
mkdir -p /server/tools
mkdir -p/server/scripts
配置所有主机域名解析
修改主机名
莫班级不该
基础优化 :跟新yum原
安全优化:关闭seLinux
setenforce 0 临时关闭enforce
getenforce 查看
关闭防火墙并帮开机自启动
disable firewalld stop firewalld statusfirewalld
添加普通用户并提权
# 提权oldboy可以利用sudo
useradd oldboy
echo 123456|passwd --stdin oldboy
\cp /etc/sudoers /etc/sudoers.ori
echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c
设置系统中文UTF8字符集
cp /etc/locale.conf /etc/locale.conf.ori
localectl set-locale LANG="zh_CN.UTF-8"
cat /etc/locale.conf 防止乱码
设置时间同步
yum install ntpdate -y