1.磁盘管理+进程管理+linux网络命令
crond
while True;do echo "erg";sleep 1;done
定时任务与邮件服务
crontab -e编辑定时任务的配置文件,写入新的定时任务,提供语法检查功能,写入绝对路径,把标准输出和错误输出,写入到/dev/null
crontab -l :查看一下自己所写的是否有问题
shell
bsah 的命令历史
!
!!
mbr 分区:硬盘容量受限制,最大2T
swap交换分区
linux系统磁盘管理的一块特殊的分区,当实际的物理内存不够的时候,操作系统会从整个内存中,取出一部分暂时没有使用的内存,拿出来放到交换分区,从而提供给当前正在使用的程序,可以使用更多的内存
作用:
buffers:缓冲区,是给写入数据加速使用的
cached:缓存,用于读取数据时,加速使用的
都是基于内存的存储中间层
cached解决时间问题,加速读取数据,利用内存的高速读写特性
buffer解决空间存储问题,给数据一个临时存放的区域,利用了内存的存储空间特性
我的内存被吃了,无辜提示内存不足怎么办?但是在cache,buff中又看到大量的内存,如何释放
解决方案:1.释放cache的命令
echo 1 > /proc/sys/vm/drop_caches等同于sysctl -w vm.drop_caches=1
2.清理目录缓存和inodes
echo 2 >/proc/sys/vm/drop_cache sysctl -w vm.drop_cache=2
3.清理内存页的缓存
echo 3 >/proc/sys/vm/drop_cache 也可以用sysctl -w vm.drop_cache=3
除了以上3种,还可以用sync
sync作用:将内存缓冲区的数据,写入到磁盘中
df命令的实际案例:
可使用的命令参数:
-h:显示kb, mb单位大小
-i:显示inode数量
du命令 ,显示磁盘空间大小,文件大小的命令
linux文件存储最小单位4k,也就是8个扇区
du -h 显示文件大小,以kb mb显示单位
du -h * 显示当前目录所有文件的大小
du -a 显示出目录中所有文件的大小
#显示所有文件的大小信息
du -ah *
#统计/opt目录下 2层文件夹的大小
du -ah --max-depth=2 /opt/
#显示当前目录下所有文件,除了.pyc文件的大小,参数作用是指定排除文件名的作用
du -ah --exclude="*.pyc" /opt/
raid技术-Redundant Arrays of Independent Drives
即磁盘冗余阵列,是将多块独立的磁盘,组成了一个磁盘组
radid特性:是能够保证数据安全性的,但是也增加了磁盘的成本,raid除了能够保障数据丢失造成的严重损失,提升硬盘读写效率,因此广泛被企业使用
饮水机和磁盘的关系
standalone 独立模式
一块硬盘单独的工作,读写数据
一台饮水机,一桶水,提供服务
hot swap 热备份模式
为了防止单独的一块硬盘损坏,随时准备好另外一块硬盘准备接替工作
cluster模式:集群模式
一堆硬盘共同提供服务,提高读写效率
raid 分类
raid0 1 5 10
raid0 特点是数据依次写入到物理硬盘,在理想的状态下,写入速度是翻倍
radi0 但凡任意坏了一块硬盘,数据都将被破坏,数据写入到2块硬盘中,没有备份的功能
适用于追求极致性能的场景,而不关注于数据安全性的场景
读写效率更高,但是数据没有安全性保障
raid 1 场景:
由于raid0的特性,数据依次写入到多块硬盘中,数据时分开存储的,因此坏了任意一块,数据都将被破坏,对于企业非常重要的数据来说,肯定是不允许使用的
raid1 将2块以上的硬盘绑定关系,数据写入的时候,同时写入多个硬盘,因此即使硬盘故障损坏,也不怕,因为有备份
raid极大的降低了磁盘的利用率,假如你有2块硬盘共4T大容量,你做了raid1,你可使用的就只有2T,利用率50%
raid3 计算机的异或运算概念,数字相同为0,数字不同为1
磁盘的异或运算
AxorBxorC A异或B异或C异
多个值的异或计算概念是:
1的个数是奇数,结果则为1
1的个数为偶数,结果则为0
异或的作用是只要知道异或的结果,任何一个值都能够被反推出来,且计算的数据只有0和1
raid3 必须需要3块以上的磁盘
存储的异或值得的磁盘不得损坏
raid10 目前企业用的是raid10
既吸收了raid0的特点,提升了数据大的写入,提高效率
又吸收了raid1的安全性,实现了磁盘的两两备份,数据安全性较高
硬raid和软raid
raid常见组合
数据润宇性能从好到坏:raid 1 raid10 raid5 raid 0
数据读写性能从好到坏 0 10 5 1
成本从高到低:0 10 1 5
硬raid 卡
软raid 由CPU控制硬盘驱动器,进行数据转换,计算的过程就是软件raid的实现原理
硬raid和软raid的区别:软件raid 额外消耗CPU资源,造成服务器压力
硬raid更加稳定,并且软raid可能造成磁盘发热过量,造成损坏,
硬raid兼容性更好,软raid兼容性依赖于操作系统,可能会出问题
硬raid完胜
raid10的搭建
1.搭建raid10,就是raid1加上raid0,准备4块磁盘,用于创建raid10,配置vmware虚拟机,创建4个硬盘
2.检查磁盘信息
ls /dev/sd*
fdisk -l |grep sd
3.学习mdadm命令,用于建设、管理和监控RAID奇数的命令
如何使用命令创建raid10
madam -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
-C表示创建RAID阵列
-v显示创建过程
/dev/md0 表示raid阵列的名字
-a yes 自动创建阵列设备文件
-n 4 表示用4块硬盘创建阵列
-l 10 表示指定raid的级别
最后跟上4块硬盘的名字
4.针对磁盘阵列设备,进行文件系统格式化,将/dev/md0格式化为xfs文件系统
mkfs.xfs /dev/md0
5.针对分区进行文件夹挂载,使用磁盘分区
新建一个文件夹,用于和阵列分区进行挂载
mkdir /chaogeraid
6.使用mount命令进行挂载,
mount 设备名 挂载点
mount /dev/md0 /chaogeraid
7.检查挂载情况
mount -l|grep md0
8.还可以使用df命令,检查挂载空间的使用情况
df -h |grep md0
9.检查raid10的详细信息
mdadm -D /dev/md0
10.可以向磁盘阵列中写入数据,检查使用空间
df -hT|grep md0
11.取消挂载,查看文件夹情况
umount /dev/md0 #取消挂载之后,无法使用磁盘阵列分区的空间,还得重新挂载
12.把磁盘阵列的分区设备,加入到开机挂载文件中,每次重启后,自动挂载使用了
tail -l /etc/fstab
raid10故障修复
当raid10故障了一块硬盘怎么办?
1.模拟坏掉一块硬盘,从raid10硬盘组中,剔除一块硬盘
fdisk -l |grep sd[a-z]
2.踢出raid10中一块硬盘的命令
mdadm /dev/md0 -f /dev/sdd
3.检查raid10的状态
mdadm -D /dev/md0
4.即使挂掉一块硬盘也不会影响整个raid10的使用
需要重启,重新读取raid信息
reboot
5.只需要购买新的硬盘设备,重新加入raid10磁盘阵列组中即可
注意可能您的raid设备,已经添加了开机自动挂载,因此还需要取消挂载
/etc/fstab文件中定义的挂载参数
重新加入磁盘阵列,必须先取消挂载
umount /dev/md0
重新添加新的硬盘,加入到阵列组中
mdadm /dev/md0 -a /dev/sdd
6.此时可以检查磁盘阵列组的信息,等待一个修复的过程
mdadm -D /dev/md0
7.等待修复完毕,且激活的设备回到4块,raid10故障修复完毕
Active Devices 1 4
working Devices 1 4
raid10的重启
1.创建raid的配置文件
echo DEVICE /dev/sd[b-e] > /etc/mdadm.conf
cat /etc/mdadm.conf
2。扫描磁盘阵列信息追加到配置文件中
mdadm -Ds >> /etc/mdadm.conf
3.取消raid的挂载
umount /chaogeraid/
4.可以停止raid10了
mdadm -s /dev/md0
5.检查磁盘阵列组的信息
mdadm -D /dev/md0 #此时看不到设备文件即是正常状态了
6.在存在配置文件的情况下,可以正常的再启动raid10了
mdadm -A /dev/md0
7.此时可以正常的查看raid10的信息了
mdadm -D /dev/md0
raid10的删除
1.卸载挂载中的设备
umount /dev/md0
2.停止raid服务
mdadm -s /dev/md0
3.卸载raid10中所有的磁盘信息
mdadm --misc --zer0-superblock /dev/sdb
mdadm --misc --zer0-superblock /dev/sdc
mdadm --misc --zer0-superblock /dev/sdd
mdadm --misc --zer0-superblock /dev/sde
4.删除raid的配置文件
rm /etc/mdadm.conf
5.此时再清除开机自动挂载的配置文件
清除/etc/fstab文件的自动挂载信息配置
raid与备份盘
1.还用刚刚的4块盘做实验,3块盘搭建raid陈列组,有一个当作备份盘
可以使用raid5来搭建三块硬盘的阵列组
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
参数解释:
-n:指定3块硬盘
-l:指定raid的级别是raid5
-x 1:指定一个备份盘
/dev/sd[b-e]:代表指定使用的4块硬盘
2.检查一下raid阵列组的信息与状态
mdadm -D /dev/md0
3.针对阵列组进行格式化文件系统
mkfs.xfs -f /dev/md0
4.开始挂载使用阵列组
mount /dev/md0 /chaogeraid/
5.检查挂载情况,以及数据的写入情况
mount -l |grep md0
df -hT|grep md0
6.此时可以写入数据,检查raid是否正常使用
df -hT|grep md0
7.见证备份磁盘的作用,从磁盘阵列组中删掉一块硬盘,检查阵列情况
mdadm /dev/md0 -f /dev/sdb
8.检查备份盘是否自动加入了阵列组,实验完成
mdadm -D /dev/md0
lvm原理
raid的缺点:当你配置好了raid磁盘阵列组,容量的大小,以及是限定了,如果存储的业务非常多,磁盘容量不够用的问题就会出现,你想要扩容磁盘的空间就会非常麻烦
不同的磁盘分区相对式独立的,没有任何联系,可能利用率很低
如果一个分区满了,默认磁盘管理式无法直接扩容的,只能重新的分区,重新分配容量的大小,创建文件系统,很是麻烦
如果你要合并分区,还是得重新格式化磁盘分区,还是得数据备份,麻烦
lvm(logical volume manager)逻辑卷管理技术
lvm技术他是将一个或多个硬盘在逻辑上进行了合并,相当于一个大的硬盘去使用,当你的硬盘空间不够了的话,可以直接去其他硬盘中拿来容量去使用,这就是一个动态的磁盘容量管理技术
lvm相对于普通的磁盘分区管理,有较大的灵活性,当一个磁盘空间不够了,可能就会造成很大的麻烦
lvm的使用方式:
1.基于分区形式创建lvm
硬盘的多个分区,由lvm统一进行管理为卷组,可以弹性的调整卷组大小,加入新硬盘,可以充分的利用磁盘容量
文件系统式创建在逻辑卷上的,
2.基于硬盘创建lvm
lvm常见的名词:
PP(physical parttion):物理分区,lvm直接创建在物理分区之上
PV(physical volume):物理卷,处于lvm的最底层,一般一个PV物理卷对用一个pp
PE(physical extends):物理区域,PV中可以用于分配的最小存储单位,同一个VG所有的PV中的PE的大小相同,
VG(volume group):卷组,卷组创建在pv之上,可以划分为多个pv
LE(logical extends):逻辑扩展单元,LE是组成lv的基本单元,一个LE对应了一个PE
LV(logical volume):逻辑卷,创建在VG之上,是一个可以动态扩容的分区概念
lvm原理
lvm优点:lvm的文件系统可以跨越多个磁盘,分区大小不受磁盘容量限制
可以在系统运行中,直接动态扩容文件系统大小
可以直接增加新的硬盘,到lvm的vg卷组中
lvm的创建流程
1.物理分区阶段,针对物理磁盘或者分区,进行fdisk格式化,修改系统的id,默认83,改为8e类型,是lvm类型
2.pv阶段,通过pvcreate,pvdisplay将linux分区改为物理卷PV
3.创建VG的阶段,通过vgcreate,vgdisplay ,将创建好的物理卷PV改为物理卷组VG
4.创建lv,通过lvcreate,将卷组分为若干个逻辑卷
转化为命令操作就是这样的过程
1.fdisk 修改磁盘的系统id
2.pvcreate,创建PV,以及显示pv信息,pvdisplay 也可以直接输入pvs查看简单的信息
3.创建VG卷组,vgcreate,vgs显示卷组信息
4.创建lv逻辑卷 lvcreate lvs显示逻辑卷信息
5.开始格式化文件系统,使用lv分区
LVMd
进程线程讲解
linux的进程管理命令:
ps命令:用于报告当前系统的进程状态的命令
ps命令主要用于查询进程信息,主要和kill命令搭配,进行对进程的管理,杀死
1.ps找出进程的号码
2.kill杀死进程,重启线程
ps命令可以查询哪些进程正在运行(好比ps命令是一个工头)以及哪些进程已经停止,以及错误的进程
以及ps可以查看进程使用的资源情况
ps命令语法
ps 选项(功能参数) 要操作的对象
ps的实操:
ps命令什么参数都不加
参数解释:
PID,代表这个进程对应的id号码
CMD:就是正在执行的系统命令行是什么
TTY:进程所属的控制台号码
TIME:进程所使用CPU的总时间
可以通过grep命令过滤出某一个进程的信息,以及进程管理
kill -9 pid号码 #强制杀死进程
PS的组合命令:
ps -ef 显示出linux机器所有详细的进程信息(列出系统所有运行的进程)
-e 参数的作用是列出所有进程的环境变所有信息
-f 显示ID PID PPID C STIME TTY TIME CMD等信息
UID:这个进程是哪个用户执行的命令
PID:进程的标识号码,用于启停进程
PPID:进程的父进程标识号
c:表示cpu使用的资源百分比
STIME:表示进程开始执行的时间
TTY:该进程在哪个终端上执行的
TIME:该进程使用的CPU总时长
CMD:用户执行某条命令,产生的进程信息
过滤出系统指定的进程信息:
PS -ef |grep vim #找出vim相关的进程信息
ps命令的参数分为2种系统形式
第一种:不带减号的参数
ps ef #不带减号的参数 e 列出进程信息时,添加每个进程所在的环境变量 f 以ASCII码字符显示进程间的关系
第二种:带减号的参数
ps -e -f #-e 显示所有的进程信息 -f 显示出UID PPID 开始时间信息等
ps查看进程的组合命令:
ps aux #参数 a 显示当前终端下所有的进程,包括其他用户的进程信息 u以用户为主的格式显示进程情况
x参数 显示所有进程
参数解释:
%MEM:显示内存的百分比使用情况
VSZ:进程使用的SWaP内存单位
RSS:表示进程所占用的内存量
TTY:这个进程所在的终端信息
STAT:表示进程此时的状态
S:终端睡眠中,可以被唤醒
s:这个进程含有子进程,就会显示有s
R:这个进程运行中
D:这个进程不可终端睡眠
T:表示进程已停止
Z:进程已经是僵尸进程了,父进程异常崩溃
+:前台进程
N:低优先级进程
<:高优先级进程
L:该进程已经被锁定
TIME:进程运行的时间
CMD:进程执行的命令是什么
ps命令进程的2大命令:
ps aux |grep nginx
ps -ef |grep mysql
显示指定用户的进程信息
ps -u #指定查看某个用户的进程
ps -u root
ps -u chaoge #显示chaoge用户的进程信息
显示进程树的信息,用unix风格的命令,就是携带者减号的参数
PS -eH #显示父进程,子进程的目录结构信息
自定义进程查看的格式:
ps -eo pid,args,psr
终止进程
1.查看进程树的命令:
pstree:能够清晰的表达程序之间的层级相互关系
在centos/redhat系列linux中,需要单独安装此命令
yum install psmisc -y
2.pgrep命令 #通过程序的名字去查询相关进程,一般用来判断进程是否存活
pgrep nginx #查询nginx进程是否存在
pgrep ssh #输出ssh进程的id 号,判断ssh是否存活
pgrep -l ssh #输出进程id,以及进程名
3.kill命令
发送相关信号,给进程,达到不同的停止效果
kill的参数
-l :列出所有的杀死,终止信号
常用信号如下:
1).SIGHUP 挂起进程,终端突然掉线,用户突然退出
2).SIGINT 中断信号,一般用ctrl+c 发送信号2
3).SIGQUIT 退出信号,一般用ctrl+\ 发送信号3
9)SIGKILL 强制中断信号,一般用于立即杀死某些进程
15)SIGTERM kill默认使用的就是15信号,终止进程
20)SIGTSTP 暂停进程,通常是组合键ctrl+z发出暂停信号
终止进程
kill pid #发送15信号,终止进程
kill -9 pid #立即停止进程
4. kill特殊信号之0
kill的特殊信号0,常用在shell脚本中
kill -o $pid 表示不发送任何的信号给pid,但是会对这个pid进行检查,如果执行结果是0,表示此进程存在,如果是1,进程不存在(信号0可以判断pid是否存在)
kill -0 pid #进程id存在的话,不做任何事,可以检测出pid是否存货
echo $? #shell的特殊变量,取出上一次命令的执行结果,为0表示命令正确,不为0 表示错误状态码
5. killall命令
kill杀死进程,只能杀死一个pid进程,通过killall可以直接通过名字杀死进程
killall vim #杀死所有的vim进程
killall nginx #终止所有的nginx进程
6. pkill命令
pkill可以通过进程名字杀死多个进程,killall杀死进程可能一次杀不死(进程可能包含子进程,killall要杀死多次)
pkill可以直接杀死父进程和子进程
pkill nginx #杀死所有的nginx进程
pkill ping #杀死所有的ping进程
通过终端的名字杀死进程
top资源管理器
top命令用于实时的监控系统处理器状态,以及其他硬件负载信息还有动态的进程信息等等
还可以按照排名,先后的显示某个进程cpu,内存的使用情况排名
top实际使用如下
进入top命令的状态栏之后,可以输入如下命令
z 指令:打开关闭颜色
us 用户占用的cpu百分比情况
sy 系统内核空间占用的cpu百分比
ni 用户进程空间占用的cpu百分比
id 空闲的cpu百分比情况
wa 等待输入输出的cpu百分比情况
进入top命令后,输入数字1指令,表示查看linux的逻辑cpu个数
top -c 显示命令的绝对路径
top -d 秒数 #设置top进程刷新的时间
top -n 3 刷新3次后结束 #设置top命令的刷新次数
top -p pid 指定查看某一进程的信息,指定进程,单独观察动态的资源信息
指定某一列高亮显示:输入z,打开颜色 输入x 某一列高亮 输入b,某一列加粗
nohup后台运行此程序
nohup命令可以将程序以忽略挂起信号的形式在后台运行,也就是被运行的程序,输出的结果不打印到终端
无论是否将nohup命令的输出重定向到终端,nohup命令执行的输出结果都会写入到当前目录的nohup.out文件中,如果当前目录的nohup.out文件禁止写入数据,nohup的命令结果会自动输出到$HOME/nohuo.out文件中
文件中语法:nohup [你要执行的命令]
nohup命令的执行案例:
1.nohup直接加上要执行的命令,即使你的终端关闭,程序也会在后台继续运行
nohup ping baidu.com
nohup:忽略输入并把输出追加到”nohup.out"
nohup ping baidu.com #输出结果会写入到当前目录的nohup.out文件中,但是程序会卡在前台
#关闭终端,命令不会挂掉,进程还会一直在运行,直到进程被杀死
2.一般使用nohup不会敲完命令后,直接关闭窗口,而是希望能够继续进行命令行,只需要在结尾加上一个&符号即可 nohup ping baidu.com &
3.不显示命令的执行结果,直接重定向到垃圾站(linux的黑洞文件)
#把命令结果,重定向写入到nohup.out文件中,把标准错误输出到标准输出,写入到黑洞文件
标准错误输出 2
标准输出 1
nohup ping www.pythonav.cn >chaoge.out 2>&1 & #把ping进程的正确输出结果,以及错误输出结果,都写入到chaoge.out文件中
#把命令放在后台运行,且无论是正确的输出还是错误的输出,都直接扔进黑洞,直接销毁
nohup ping www.pythonav.cn > /dev/null 2>&1 &
#bg命令,将进程放进后台运行,使前台可以执行其他的任务
bg命令=命令&
1.使用一个不中断的命令
ping baidu.com
2.可以使用ctrl+z快捷键,暂停进程且放入后台
3.通过命令检查后台的任务
jobs #可以查到后台正在进程的程序,序号
4.如果想要前台运行,输入,后台中的序号,通过序号,放入前台继续执行
fg 序号
fg 1
5.此时可以继续用ctrl+z命令,把ping进程暂停且放入后台,此时可以使用bg序号
bg 1
6.如果不想让入职输出到前台,可以输出到文件或黑洞文件中
此处有3种方式,可以忽略标准输出和标准错误输出
nohup ping baidu.com > /dev/null 2>&1 #将程序执行正确/错误的输出结果,都写入到黑洞文件
nohup ping baidu.com 1>/dev/null 2>/dev/null #同上
nohup ping baidu.com &>/dev/null #同上
#linux系统运行级别
读取系统的/var/run/utmp 系统定位的运行级别
renlevel #检查当前系统的运行级别 who -r
htop命令检测
比top更好看 需要安装
1.进入htop,直接输入htop命令
2.按下f2或者点击setup进入设置界面
3.可以使用上下左右进行状态栏选择,以及用空格切换风格
4.可以再次进入htop,输入f3,进行进程查找
5.定位到某一个进程后,如果要杀死,可以按下f9,且输入enter回车,给进程发送终止信号
6.按下f5,显示进程的层级关系,父进程,子进程
7.支持一些快捷键
M 以内存大小排序
P 以CPU使用量排序
T 以进程运行的时间排序
/进入搜索输入,查找指定的进程
glances资源检测命令
cpu使用率
内存使用情况
内核统计信息
磁盘的io速度,读取数据,写入数据的一个熟读,传输的速率
文件系统的剩余空间
动态进程信息
系统负载信息
1.必须安装此工具,第一种用python的软件包管理工具pip
pip3 install glances
第二种yum
2.glances的界面信息
h 显示帮助信息
q:退出
c:以cpu排序
i:以io速率排序
m:以内存排序
p:以进程名排序
d :打开,关闭磁盘读写情况
f:打开,关闭文件系统剩余空间情况
3.web服务功能
此功能能够glances监控到的数据,以网站形式做一个展示,用浏览器去查看
yum install python python-pip python-devel gcc -y
再用python的包管理工具,安装一个模块,用于启动web服务
pip install bottle
网络通信介绍
tcp/ip协议标准
ifconfig命令
用于配置网卡ip地址信息,等网络参数信息
或者查看显示网络接口信息,类似于windows的ipconfig命令
黑可以临时性的配置ip地址,子网掩码,广播地址
route路由命令
路由:静态和动态
linux:静态
ip命令
ip可以操作的对象
OBJECT对象
link网络设备
address 定义ipv4,ipv6的地址
neighbour 查看ARP缓存地址(ARP用于解析MAC地址)
route 路由表对象
maddress 多播地址
tunel ip上的通道
1.查看,显示网络设备信息 ip addr show
指定网络设备信息 ip link show dev ens33
显示网络设备,详细的数据包收发大小情况 ip -s link show dev ens33
2.关闭、激活网络设备 ip link set ens33 down/up #关闭/开启网卡
3.修改网卡mac地址信息 ip link set ens33 address 0:0c:29:13:10:11
4.显示网卡信息 ip a #简写 ip addr show
5.ip命令添加,删除ip信息
ip address add 192.168.15.200/24 dev ens33
ip address del 192.168.15.200/24 dev ens33
6.ip命令给网卡添加别名
ip address add 192.168.15.200/24 dev ens33 label ens33:1#注意添加完毕后,用ifconfig命令能看到别名网卡信息
7.通过ip命令检查路由信息
default via 192.168.15.2 dev ens33 proto dhcp metric 100
8.ip检查arp缓存(显示网卡邻居的信息),检查mac地址信息
ip neighbour
netstat命令
显示网络连接情况,路由表情况,端口状态,网络连接情况等等信息
一个进程服务,运行之后,会暴露一个端口号,以及产生响应的进程信息
1.查看所有的网络连接情况
netstat -an #-a 显示all所有的套接字(socket)信息 -n 显示数字地址信息,而非主机名
1.常用的参数的组合 netstat -tunlp #查看机器上正在运行的所有端口情况以及他的进程
参数解释如下:
-t:显示出TCP的连接情况
-u:显示出UDP的连接情况
-n:不进行dns解析
-l:只显示正在监听中的套接字的情况
-p:显示出套接字所属的进程和进程名的情况
127.0.0.1 #本地回环地址,用于机器内部应用通信,外人无法访问,每个机器都有自己的127.0.0.1
0.0.0.0 #绑定机器所有的网卡信息
2.netsta -tunlp |grep 3306 #检查服务器是否运行了3306端口(查看是否运行了mysql数据库)
3.显示系统的路由表情况 netstat -rn 等同于route -n
4.显示网络的接口情况
netstat -i # -i 显示出所有网络接口的列表情况
查看tx-erp rx-erp最好是0,否则表示网络情况不健康,有丢包的现象
5.查看服务器监听
netstat -tunlp| grep 3306 #监听数据库是否运行
netstat -tunlp| grep 80 #监听web服务是否正常运行
netstat -tunlp| grep 443 #监听https服务是否运行
6.linux还有一个在cengtos7之后出现的网络查看工具叫做ss(需要安装)
yum install iproute -y
ss -an #显示所有的socket套接字连接情况
7.显示出所有的正在监听中的套接字情况
ss -tunlp |grep 80
ping命令
## telnet命令
以前是用于登录远程主机的命令
1.用于检测远程主机是否打开了某端口telnet需要安装(yum安装
2.检测远程主机的22端口是否打开
3.检测远程服务器,是否开放了数据库的3306端口 telnet 123.206.16.61
ssh命令
ssh 用户名@ip地址
1.-p port 默认ssh端口改成了 24489
ssh chaoge@123.206.16.61 -p 22489 #指定端口远程连接
2.远程执行服务器的命令:ssh root@123.206.16.61 "free -m"
wget命令
下载指定的url资源文件,非常稳定,还支持断点续传,当下载一个大文件,突然失败,下次还会继续对该文件下载,知道结束
特点:
1.支持断点续传
2.还支持ftp及http协议下载
3.也支持代理
需求:
1.下载wget
2.下载文件,且保存指定的文件名字,通过wget的功能参数-O即可,下载url资源后,指定linux目录保存,且修改文件名
wget -O /tmp/刘岩2.jpy http:、、;;;;
3.限制wget的现在速度,通过--limit-rate=1K 限制下载速度
wget --limit-rate=1K http://;;;;
4.支持断点续传的形式 -c(小写)是支持文件断电续传的
当下载任务断开之后,可以再次敲打该命令,即可是实现续传功能
wget -c--limit-rate=2k http://;;;
5.让wget命令在后台运行,使用-b参数即可
通过-b参数,让wget命令在后台运行,日志默认输出到wget-log中
wget -b --limit-rate= 2k http://;;;;
6.当你需要下载不同的网页,比如pc段网页,和移动端网页的时候,利用wget命令可以指定客户端的身份(伪装客户端)
wget不加参数,默认下载pc端页面
wget -O /tmp/luffy.html www.luffycity.com
可以通过--user-agent参数,设置客户端身份,伪装成手机端的信息
wget --user-agent="链接"
需求7:
利用wget可以检测网站是否存活
利用wget的-q安静输出 -T 指定访问网站的超时时间 -t 表示重试访问网站几次
wget -q -T 3 -t 1 --apider www.pythonav.cn
bash的特殊变量 $?
当上一次命令执行失败,$?就是非0的错误状态码
上一次命令正确执行,$?就是0
输入echo $? 查看本次命令的结果,为0 表示www/pythonav.cn是存活的
dns讲解与ip地址划分
流浪网页的原理:
1.通过互联网找到对方的机器
2.然后从对方的机器中,找到对应的文件,下载到本地来
3.通过浏览器进行渲染这样的数据
域名和ip的关系
你手机中电话本
超哥————110
alex-----1192630602
佩奇——————1354506905
我们使用电话本的名字----转化成了电话号码
域名是更容易让人们记住的字符串
ip地址比较难记,因此各互联网定制了DNS
通过nslookup命令查看域名的解析关系
1.该命令需要单独安装
需要单独安装dns的套件软件包
yum install bind-utils -y
2.使用nslookup命令
nslookup www.pythonav.cn
或nslookup
也可以直接ping命令查看关系
【linux的dns配置文件】
1.linux的本地dns解析文件 /etc/hosts文件中,这个文件是运维人员自由定义域名和ip强制解析关系的
127.0.0.1 www.pythonav.cn
ping www.pythonav.cn 解析到了127.0.0.1 因此可以证明hosts文件的解析优先级是高于dns客服端配置文件的
2./etc/resolv.conf 该文件,填入的是互联网dns服务器的地址
文件中定义了域名服务器地址,填入公网的dns服务器地址即可
3.dns服务器的配置,以及什么是dns劫持
/etc/hosts文件 ---自己本地的电话本
/etc/resolv.conf-----填写dns服务器地址的配置文件---(阿里云的dns服务器,收集了世界上所有的域名--ip的对应关系)指定一个专门做电话号码收集的公司
dns服务器一般是安装bind服务
如果是小型的域名解析需求,使用dnsmasq即可
#首先需要安装该软件
yum install dnsmasq -y
#dnsmasq的主配置文件
/etc/dnsmasq.conf
#dnsmasq内部解析所需要的ip和域名,也就是用户所需要自定义的域名和ip的对应关系编写
/etc/dnsmasq.hosts #该文件需要手动创建
#dnsmasq的上游DNS服务器地址
/etc/resolv.dnsmasq.conf #也需要手动创建
【修改dnsmasq.conf,大概如下参数】
vim /etc/dnsmasq.conf #打开且修改如下参数
#指定上游dns服务器地址的参数
resolv-file=/etc/resolv.dnsmasq.conf
#自定义某些域名及其子域名,都解析到某一个ip地址,添加如下参数
address=/baidu.com/123.206.16.61
#定义dnsmasq的监听地址的配置文件
listen-address=123.206.16.61
#定义一个本地域名配置文件,需要自定义的一些域名解析
addn-hosts=/etc/dnsmasq.hosts
#记录dns查询的日志参数
log-queries
#包含目录的语法,能够包含某一个文件夹下的所有符合定义类型的配置文件
conf-dir=/etc/dnsmasq.d
第三章1.6
集群架构的组成
组成:
前端服务部分
(1)顾客-用户
是一个访问者,请求访问网站页面
(2)保安-防火墙设备
对访问架构用户进行策略控制,正常访问网站用户,可以放行进入,非法人员(黑客)访问网站,禁止进入
(3)对讲机——交换机(外网)
提供架构中服务器相互通讯交流的需求(提供外部人员访问)
(4)迎宾人员——负载均衡服务器
对用户的访问请求进行调度处理
(5)服务员——网站web服务器
对用户的请求进行访问处理
后端服务部分
(1)对讲机——交互机(内网)
提供架构中服务器相互通讯交流的需求(提供内部局域网服务器通讯交流)
(2)厨师-数据库服务器
主要用于存储用户提交文字(字符中)数据信息
(3)厨师-存储服务器
主要用于存储用户上传视频,音频,图片,附件等数据资料
(4)厨师——备份服务器
主要用于对用户存储(上传)数据信息进行统一备份管理
(5)厨师——缓存服务器
主要用于存储用户经常访问的数据信息,提升请求数据信息的响应请求
拓展架构组成(用于让运维人员远程管理架构中的服务器)
(1)员工——运维人员
可以远程管理架构中服务器
(2)审计——跳板机服务器
用于监管内部运维人员操作记录信息,一旦出现架构问题,可以快速定位问题原因,进行相应人员失误问责
(3)经理——批量管理服务器
通过批量管理服务器可以批量管理架构中多台服务器,提升工作效率
(4)监控——监控服务器
用于监控架构管理架构中的服务器运行情况,一旦出现问题进行发送报告警给相关运维管理人员
DNS讲解与IP地址
ip 地址
shell编程
1.创建shell脚本
统一脚本存放的目录 /service/scripts
推荐使用vim编辑器编辑脚本,脚本使用.sh为扩展名
第一行指出由哪个解释器来执行脚本中的内容
#!/bin/bash 必须写在第一行,如果不是写在第一行,则为脚本注释行,又可以写成#!/bin/sh
cat /server/scripts/ip.sh
#!/bin/bash
#desc: show ip address
#author: 作者
#time:2017111
#version :v1.0
2.执行脚本
sh /server/scripts/ip.sh
3.shell脚本深入
echo 10day
echo ${week}day
普通变量(局部变量)
1.命名规则,字母数字下划线组合,必须以z
2.引用变量${}