云运维-初级1段-Linux日常运维

更多系统管理技巧可参考:Linux系统管理技巧解析及课后习题解答----工坊学习记录–7.1


知识技能篇

 

任务1.1 监控系统的状态

 
 
任务描述

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

 

任务实施
 

1.1.1 查看当前系统的负载,示例代码如下:
在这里插入图片描述

第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。我们最应该关注的应该是第一行中的 ‘load average:’后面的三个数值。
第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。

 

1.1.2 查看服务器有几个cpu,示例代码如下:

在这里插入图片描述

 
查看物理cpu个数,示例代码如下:
在这里插入图片描述
 

查看每个物理CPU中核数,示例代码如下:

在这里插入图片描述
 

1.1.3 使用 vmstat 监控系统的状态,示例代码如下:

 
在这里插入图片描述

通过 vmstat 就可以知道具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system,cpu
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时间百分比;

 

使用技巧:
 

下面的代码表示,每隔一秒钟打印一次状态,共打印5次。

在这里插入图片描述
 

1.1.4 top 显示进程所占系统资源,示例代码如下:

在这里插入图片描述

这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。

 
使用技巧:

 

非动态打印系统资源使用情况,示例代码如下:

在这里插入图片描述
 

1.1.5 查看内存使用状况,示例代码如下:

在这里插入图片描述
 

使用技巧:

可以加-m 或者-g选项分别以M或G为单位打印内存使用状况,示例代码如下:

在这里插入图片描述
 

1.1.6 ps 查看系统进程

 

在这里插入图片描述
 

参数:

  • PID :进程的id,若想终止某一个进程,则用 ‘kill 进程的 pid 有时并不能杀掉,则需要加一个-9选项了 kill -9 进程pid

 

1.1.7 查看网络状况,示例代码如下:

在这里插入图片描述
 

使用技巧:

 

netstat -an (打印网络连接状况),示例代码如下:

在这里插入图片描述
 
 

任务1.2 Linux网络相关

 
任务描述

本任务主要使用Linux网络命令查看网卡信息
 

知识学习

 

1.2.1 如果Linux上有多个网卡,而只想重启某一个网卡的话,可以使用这个命令,示例代码如下:

#ifdown eth0;ifup eth0

 

1.2.2 给一个网卡设定多个IP:

#cd /etc/sysconfig/network-scripts/
#cp ifcfg-ens33 ifcfg-ens33\:1
#vi ifcfg-ens33:1
DEVICE 要改为 “ens33:1”.
改 ip ,重启网卡,之后再查看网卡ip

#systemctl restart network

在这里插入图片描述
 

1.2.3 更改主机名

在这里插入图片描述

若想重启后依然生效,示例代码如下:

#hostnamectl set-hostname linux
#bash

 

1.2.4 设置DNS

在Linux下面设置dns非常简单,只要把dns地址写到一个配置文件中即可。这个配置文件就是/etc/resolv.conf。

在这里插入图片描述

resolv.conf有它固有的格式,一定要写成 “nameserver IP” 的格式

 

在Linux下面有一个特殊的文件/etc/hosts也能解析域名,不过是需要我们手动在里面添加 IP+域名,它的作用是临时解析某个域名,示例代码如下:

在这里插入图片描述
 

1.2.5 Linux的防火墙

SeLinux是Redhat/CentOS系统特有的安全机制。不过因为这个东西限制太多,配置也特别繁琐所以几乎没有人去真正应用它。所以装完系统,我们一般都要把seLinux关闭,以免引起不必要的麻烦。关闭seLinux的方法为,使 “SELinux=disabled”, 默认为 enforcing,示例代码如下:

在这里插入图片描述
 

保存该配置文件后,重启机器方可生效,临时关闭seLinux的命令,可以使用setenforce 0.我们可以使用 getenforce 命令获得当前seLinux的状态,示例代码如下:

在这里插入图片描述

 
 

任务1.3 Linux系统任务计划

 
任务描述

本任务主要使用crontab工具来定时处理脚本或任务

 

知识学习

如何定期执行某一个脚本呢?这就要借助Linux的cron功能了。其中常用的参数有:

  • -u :指定某个用户,不加-u选项则为当前用户;
  • -e :制定计划任务;
  • -l :列出计划任务;
  • -r :删除计划任务。

 

演示–创建任务计划

#crontab -e
01 10 05 06 3 echo “ok” > /root/cron.log
每个字段的数字分表表示: 从左到右,依次为:分,时,日,月,周,命令行

而上面的例子的含义是:在6月5日(这一天必须是星期3)的10点01分执行命令 echo "ok" > /root/cron.log

crontab -e 实际上是打开了 “/var/spool/cron/username” (如果是root则打开的是/var/spool/cron/root)这个文件。
使用的是vim编辑器,所以要保存的话则在命令模式下输入:wq即可。但是,你千万不要直接去编辑那个文件,
因为可能会出错,所以一定要使用 crontab -e 来编辑。

 

查看已经设定的任务计划使用 crontab -l 命令,示例代码如下:

在这里插入图片描述
 

删除计划任务要用 crontab -r,,示例代码如下:

在这里插入图片描述
 
 

任务1.4 Linux系统数据备份

 

任务描述

本任务主要使用rsync工具来备份数据

 

知识学习

Rsync不仅可以远程同步数据,当然还可以本地同步数据,rsync不像cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。

 

演示–例子

#yum install -y rsync
#touch /root/sync.txt
#rsync -av sync.txt  /tmp

在这里插入图片描述

上面例子表示把当前目录下的sync.txt同步到/tmp/目录下,也可以更改目标文件的名字, rsync -av sync.txt /tmp/newsync.txt

 

如果是远程拷贝的话就是这样的形式了: IP:path (如:10.0.2.34:/root/),示例代码如下:

在这里插入图片描述

rsync的命令格式
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… SRC [USER@]HOST::DEST

第一个例子即为第一种格式,第二个例子即为第二种格式,但不同的是,并没有加user@host 如果不加默认指的是root. 第三种格式是从远程目录同步数据到本地。第四种以及第五种格式使用了两个冒号,这种方式和前面的方式的不同在于验证方式不同。

 

rsync常用选项

  • -a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一个 --no-OPTION 这个表示关闭-rlptgoD中的某一个例如 -a–no-l 等同于-rptgoD
  • -r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项
  • -v 打印一些信息出来,比如速率,文件数量等
  • -l 保留软链结
  • -L 向对待常规文件一样处理软链结,如果是SRC中有软连接文件,则加上该选项后将会把软连接指向的目标文件拷贝到DST
  • -p 保持文件权限
  • -o 保持文件属主信息
  • -g 保持文件属组信息
  • -D 保持设备文件信息
  • -t 保持文件时间信息
  • --delete 删除那些DST中SRC没有的文件
  • --exclude=PATTERN 指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)
  • --progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等
  • -u 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖

 
 

任务1.5 Linux系统日记

 

任务描述

本任务主要使用Linux系统自带的日记系统来判定系统状况

 

知识学习

dmesg 命令,它可以显示系统的启动信息,如果你的某个硬件有问题(比如说网卡)用这个命令也是可以看到的,示例代码如下:

在这里插入图片描述

 

last命令用来查看登录Linux历史信息,从左至右依次为账户名称、登录终端、登录客户端ip、登录日期及时长。last命令输出的信息实际上是读取了二进制日志文件/var/log/wtmp, 只是这个文件不能直接使用cat, vim, head, tail等工具查看。示例代码如下:

在这里插入图片描述
 
 

任务1.6 Linux命令xargs与exec用法

 

任务描述

本任务主要使用Linux中xargs与exec工具结合其他命令来实现业务需求

 

知识学习

xargs的作用就是把管道符前面的输出作为xargs后面的命令的输入,示例代码如下:

在这里插入图片描述

 这里可能会有读者问:怎么不echo完直接cat 123.txt不是更直接吗? 
 首先上面的例子只是表示xargs的命令是可以结合管道符和其它命令进行使用的,例如,查找当前目录创建时间大于10天的文件,然后再删除, 示例代码如下:
 #find . -mtime +10 |xargs rm    //xargs后面的 rm 也可以加选项,当是目录时,就需要 -r 选项

 

再例如:查找当前目录下所有.txt的文件,然后把这些.txt的文件变成.txt_bak。正常情况下,我们不得不写脚本去实现,但是使用xargs就一步,示例代码如下:

在这里插入图片描述

xargs -n1 –i{} 类似for循环,-n1意思是一个一个对象的去处理,-i{}把前面的对象使用{}取代,mv {} {}_bak 相当于 mv 1.txt 1.txt_bak。

 

使用find命令时,经常使用一个选项就是这个-exec了,可以达到和xargs同样的效果。比如,查找当前目录创建时间大于10天的文件并删除,示例代码如下:

#find . -mtime +10 -exec rm -rf {}\;
这个命令中也是把{}作为前面find出来的文件的替代符,后面的 \ 为 ; 的脱意符,不然shell会把分号作为该行命令的结尾。

 
 

任务1.7 screen工具

 

知识学习

有时候,我们也许会有这样的需求,要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。

  1. 使用nohup,示例代码如下:

在这里插入图片描述
 

  1. screen工具的使用

简单来说,screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的SSH连接窗口那样。介绍screen的一个简单应用:

1)打开一个会话,直接输入screen命令然后回车,进入screen会话窗口。示例代码如下:

#yum install -y screen
#screen

 

  1. screen -ls 查看已经打开的screen会话,示例代码如下:

在这里插入图片描述

 

3)Ctrl +a 再按d退出该screen会话,只是退出,并没有结束。结束的话输入Ctrl +d 或者输入exit

 

4)退出后还想再次登录某个screen会话,使用sreen -r [screen 编号],这个编号就是上例中那个 48705. 当只有一个screen会话时,后面的编号是可以省略的。当你有某个需要长时间运行的命令或者脚本时就打开一个screen会话,然后运行该任务。按ctrl +a 再按d退出会话,不影响终端窗口上的任何操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值