知识技能篇

前期环境

  1. 配置网络: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
    Linux日常应用管理 - 图1
    2.重启网络
    systemctl restart network
    之后测试网络
    Linux日常应用管理 - 图2
    3.关闭防火墙
    临时:systemctl stop firewalld
    永久:systemctl disable firewalld
    Linux日常应用管理 - 图3
    4.关闭selinux
    setenforce 0
    vi /etc/selinux/config
    Linux日常应用管理 - 图4
    5.挂载光驱
    mkdir /mnt/centos
    mount -o loop /dev/cdrom /mnt/centos/
    Linux日常应用管理 - 图5
    6.把其他repo文件移动到/media
    mv /etc/yum.repos.d/* /media/
    Linux日常应用管理 - 图6
    7.配置yum源
    vi /etc/yum.repos.d//local.repo
    [centos]
    name=centos7
    baseurl=file:///mnt/centos
    gpgcheck=0
    enabled=1
    Linux日常应用管理 - 图7
    8.安装常用工具
    Vim是vi编译器的升级版
    Linux日常应用管理 - 图8
    Net-tools自带两个命令
    Linux日常应用管理 - 图9
    Linux日常应用管理 - 图10

    单元一 Linux常用系统命令

    任务1.1 监控系统的状态

    任务描述

    主要实现的是查看查看系统负载信息和查看系统内存、网卡、进程等信息

    任务实施

    1.使用w查看当前系统的负载
    代码:w
    Linux日常应用管理 - 图11
    第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。

2.查看服务器有几个cpu
代码:cat /proc/cpuinfo |head -n20
Linux日常应用管理 - 图12
Linux日常应用管理 - 图13

3.使用 vmstat 监控系统的状态
代码:vmstat
Linux日常应用管理 - 图14
上面讲的 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
Linux日常应用管理 - 图15

4.安装httpd服务并启动
Linux日常应用管理 - 图16
Linux日常应用管理 - 图17

  1. top 显示进程所占系统资源
    Linux日常应用管理 - 图18
    这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。其实上面这些内容可以通过其他命令来查看,所以用top重点查看的还是下面的进程使用系统资源详细状况。这部分东西反映的东西还是比较多的,不过需要你关注的也就是几项:%CPU, %MEM, COMMAND 这些项目所代表的意义,不用笔者介绍相信你也能看懂吧,RES 这一项为进程所占内存大小,而 %MEM 为使用内存百分比。在 top 状态下,按 “shift + m”, 可以按照内存使用大小排序。按数字 ‘1’ 可以列出各颗cpu的使用状态。
    另外,笔者经常用的一个命令 top -bn1 它表示非动态打印系统资源使用情况,示例代码如下:top -bn1
    Linux日常应用管理 - 图19
    和 top 命令唯一的区别就是,它一次性全部把所有信息输出出来而非动态显示。

  2. free查看内存使用状况,示例代码:free
    Linux日常应用管理 - 图20
    只需要敲一个 free 然后回车就可以当前系统的总内存大小以及使用内存的情况。
    free -m 以兆为大小
    Linux日常应用管理 - 图21
    free -g
    Linux日常应用管理 - 图22
    free -h 更加清晰明了
    Linux日常应用管理 - 图23
    同上清晰明了
    Linux日常应用管理 - 图24

  3. ps 查看系统进程
    作为系统管理员,一定要知道你所管理的系统都有那些进程在运行,在windows下只要打开任务管理器即可查看。在Linux下,其实在上面介绍的top命令就可以,但是不容易看,当然还有专门显示系统进程的命令,示例代码:ps aux
    Linux日常应用管理 - 图25
    同上:ps -elf
    Linux日常应用管理 - 图26
    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
    Linux日常应用管理 - 图27
    Linux日常应用管理 - 图28
    8. netstat 查看网络状况,示例代码: netstat -lntp
    Linux日常应用管理 - 图29
    netstat命令用来打印网络连接状况、系统所开放端口、路由表等信息。笔者最常用的关于netstat的命令就是这个 netstat -lnp (打印当前系统启动哪些端口)以及 netstat -an (打印网络连接状况)这两个命令非常有用,请一定要记住。
    Linux日常应用管理 - 图30

任务1.2 Linux网络相关

任务描述

本任务主要使用Linux网络命令查看网卡信息
Linux日常应用管理 - 图31
Linux日常应用管理 - 图32
1.配置多网卡
Linux日常应用管理 - 图33
进行配置
Linux日常应用管理 - 图34
Linux日常应用管理 - 图35
进行重启systemctl restart network
Linux日常应用管理 - 图36
可以连两块网卡
Linux日常应用管理 - 图37
如果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.当前名字
Linux日常应用管理 - 图38
使用hostname可以临时更改你的主机名,示例代码:hostname linux
Linux日常应用管理 - 图39
重启之后就会没有了
永久修改:hostnamectl set-hostname+名字
Linux日常应用管理 - 图40
也可以加上路径修改:vim /etc/hostname
Linux日常应用管理 - 图41

3.设置DNS
两种方法

  1. vim /etc/sysconfig/network-scripts/ifcfg-ens33
  2. vim /etc/resolv.conf

域名解析:vim /etc/hosts
Linux日常应用管理 - 图42
访问的是主机的地址
Linux日常应用管理 - 图43
1)一个IP后面可以跟多个域名,可以是几十个甚至上百个;
2)每行只能有一个IP,也就是说一个域名不能对应多个IP;
3)如果有多行中出现相同的域名(前面IP不一样),会按最前面出现的记录来解析。

  1. Linux的防火墙
    临时:setenforce 0
    永久:vi /etc/selinux/config
    Linux日常应用管理 - 图44

任务1.3 Linux系统任务计划

任务描述

本任务主要使用crontab工具来定时处理脚本或任务
关于cron任务计划功能的操作都是通过crontab这个命令来完成的。其中常用的选项有:
-u :指定某个用户,不加-u选项则为当前用户;
-e :制定计划任务;
-l :列出计划任务;
-r :删除计划任务。
创建第一个任务计划,示例代码:crontab -e
一分钟追加一次: * echo date >> /root/1.txt
Linux日常应用管理 - 图45
Linux日常应用管理 - 图46
用 crontab -l 命令,示例代码:crontab -l
Linux日常应用管理 - 图47
删除计划任务要用 crontab -r
Linux日常应用管理 - 图48

任务1.4 Linux系统数据备份

任务描述

本任务主要使用rsync工具来备份数据
先下载yum install -y rsync
Linux日常应用管理 - 图49