知识技能篇
前期环境
- 配置网络:vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
OOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.200.50
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=114.114.114.114
2.重启网络
systemctl restart network
之后测试网络
3.关闭防火墙
临时:systemctl stop firewalld
永久:systemctl disable firewalld
4.关闭selinux
setenforce 0
vi /etc/selinux/config
5.挂载光驱
mkdir /mnt/centos
mount -o loop /dev/cdrom /mnt/centos/
6.把其他repo文件移动到/media
mv /etc/yum.repos.d/* /media/
7.配置yum源
vi /etc/yum.repos.d//local.repo
[centos]
name=centos7
baseurl=file:///mnt/centos
gpgcheck=0
enabled=1
8.安装常用工具
Vim是vi编译器的升级版
Net-tools自带两个命令
单元一 Linux常用系统命令
任务1.1 监控系统的状态
任务描述
主要实现的是查看查看系统负载信息和查看系统内存、网卡、进程等信息任务实施
1.使用w查看当前系统的负载
代码:w
第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。
2.查看服务器有几个cpu
代码:cat /proc/cpuinfo |head -n20
3.使用 vmstat 监控系统的状态
代码:vmstat
上面讲的 w 查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压力,但是具体是哪里(CPU, 内存,磁盘等)有压力就无法判断了。通过 vmstat 就可以知道具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu. 请重点关注一下r b si so bi bo几列。
1)procs 显示进程相关信息
r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了;
2)memory 内存相关信息
swpd :表示切换到交换分区中的内存数量 ;
free :当前空闲的内存数量;
buff :缓冲大小,(即将写入磁盘的);
cache :缓存大小,(从磁盘中读取的);
3)swap 内存交换情况
si :由交换区写入到内存的数据量;
so :由内存写入到交换区的数据量;
4)io 磁盘使用情况
bi :从块设备读取数据的量(读磁盘);
bo: 从块设备写入数据的量(写磁盘);
5)system 显示采集间隔内发生的中断次数
in :表示在某一时间间隔中观测到的每秒设备中断数;
cs :表示每秒产生的上下文切换次数;
6)CPU 显示cpu的使用状态
us :显示了用户下所花费 cpu 时间的百分比;
sy :显示系统花费cpu时间百分比;
id :表示cpu处于空闲状态的时间百分比;
wa :表示I/O等待所占用cpu时间百分比;
st :表示被偷走的cpu所占百分比(一般都为0,不用关注);
以上所介绍的各个参数中,笔者经常会关注r列,b列,和wa列,三列代表的含义在上边说得已经很清楚。IO部分的bi以及bo也是要经常参考的对象。如果磁盘io压力很大时,这两列的数值会比较高。另外当si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。
每隔一秒钟打印一次状态,共打印10次
代码:vmstat 1 10
4.安装httpd服务并启动
top 显示进程所占系统资源
这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。其实上面这些内容可以通过其他命令来查看,所以用top重点查看的还是下面的进程使用系统资源详细状况。这部分东西反映的东西还是比较多的,不过需要你关注的也就是几项:%CPU, %MEM, COMMAND 这些项目所代表的意义,不用笔者介绍相信你也能看懂吧,RES 这一项为进程所占内存大小,而 %MEM 为使用内存百分比。在 top 状态下,按 “shift + m”, 可以按照内存使用大小排序。按数字 ‘1’ 可以列出各颗cpu的使用状态。
另外,笔者经常用的一个命令 top -bn1 它表示非动态打印系统资源使用情况,示例代码如下:top -bn1
和 top 命令唯一的区别就是,它一次性全部把所有信息输出出来而非动态显示。free查看内存使用状况,示例代码:free
只需要敲一个 free 然后回车就可以当前系统的总内存大小以及使用内存的情况。
free -m 以兆为大小
free -g
free -h 更加清晰明了
同上清晰明了ps 查看系统进程
作为系统管理员,一定要知道你所管理的系统都有那些进程在运行,在windows下只要打开任务管理器即可查看。在Linux下,其实在上面介绍的top命令就可以,但是不容易看,当然还有专门显示系统进程的命令,示例代码:ps aux
同上:ps -elf
PID :进程的id,这个id很有用,在Linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 ‘kill 进程的pid 有时并不能杀掉,则需要加一个-9选项了 kill -9 进程pid
STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解)
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态
T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 sleep 10 如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态
W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程
+ 代表在前台运行的进程
用来查看某个进程或者它的数量,代码: ps aux |grep -c mingetty
8. netstat 查看网络状况,示例代码: netstat -lntp
netstat命令用来打印网络连接状况、系统所开放端口、路由表等信息。笔者最常用的关于netstat的命令就是这个 netstat -lnp (打印当前系统启动哪些端口)以及 netstat -an (打印网络连接状况)这两个命令非常有用,请一定要记住。
任务1.2 Linux网络相关
任务描述
本任务主要使用Linux网络命令查看网卡信息
1.配置多网卡
进行配置
进行重启systemctl restart network
可以连两块网卡
如果Linux上有多个网卡,而只想重启某一个网卡的话,可以使用这个命令,示例代码:ifdown eth0; ifup eth0
ifdown 即停掉网卡,ifup即启动网卡。有一点要提醒你的是,如果我们远程登录服务器,当使用ifdown eth0这个命令的时候,很有可能后面的命令ifup eth0不会被运行,这样导致我们断网而无法连接服务器,所以请尽量使用 service network restart 这个命令来重启网卡。
给一个网卡设定多个IP
在Linux系统中,网卡是可以设定多重IP的,笔者曾经管理的一台服务器的eth1就设定了5个IP,实在是够变态的,示例代码如下:
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0\:1
2.当前名字
使用hostname可以临时更改你的主机名,示例代码:hostname linux
重启之后就会没有了
永久修改:hostnamectl set-hostname+名字
也可以加上路径修改:vim /etc/hostname
3.设置DNS
两种方法
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
- vim /etc/resolv.conf
域名解析:vim /etc/hosts
访问的是主机的地址
1)一个IP后面可以跟多个域名,可以是几十个甚至上百个;
2)每行只能有一个IP,也就是说一个域名不能对应多个IP;
3)如果有多行中出现相同的域名(前面IP不一样),会按最前面出现的记录来解析。
- Linux的防火墙
临时:setenforce 0
永久:vi /etc/selinux/config
任务1.3 Linux系统任务计划
任务描述
本任务主要使用crontab工具来定时处理脚本或任务
关于cron任务计划功能的操作都是通过crontab这个命令来完成的。其中常用的选项有:
-u :指定某个用户,不加-u选项则为当前用户;
-e :制定计划任务;
-l :列出计划任务;
-r :删除计划任务。
创建第一个任务计划,示例代码:crontab -e
一分钟追加一次: * echo date
>> /root/1.txt
用 crontab -l 命令,示例代码:crontab -l
删除计划任务要用 crontab -r
任务1.4 Linux系统数据备份
任务描述
本任务主要使用rsync工具来备份数据
先下载yum install -y rsync