03Linux常用命令(系统运行监测相关操作)

Linux常用命令(系统运行监测相关操作)

linux开机流程:加电---加载Bios---加载boot---将系统内核加载到内存--加载配置文件--加载内核模块---完成相应的初始化工作和启动服务---启动系统进程---显示登录页面--开机完成

关于进程Process

线程(thread) 是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。是程序执行的最小单位。

进程和程序的区别?什么是进程?
程序是二进制文件,是静态存放在磁盘上的,不会占用系统运行资源(cpu/内存)。
进程是用户执行程序或者触发程序的结果,可以认为进程是程序的一个运行实例。进程是动态的,会申请和使用系统资源,并与操作系统内核进行交 互。在后文中,不少状态统计工具的结果中显示的是system类的状态,其实system状态的同义词就是内核状态。[进程是已启动可执行的运作实例]
进程状态:在多任务处理操作系统中,每个cpu在一个时间点上只能处理一个进程。在进程运行时,它对cpu时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而变化

查看进程process

静态查看

ps aux | less (分页)
参数解释:
ps :process nsapachot
-A:所有的进程均显示出来,与-e具有同样的作用。
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
[root@xiaoqiang ~]# ps aux 
USER	PID	%CPU	%MEM	VSZ	RSS	TTY	STAT	START	TIME	COMMAND
进程的所有者	进程ID号	运算器占用率	内存占用率	虚拟内存使用量(单位是KB)	占用的固定内存量(单位是KB)	所在终端	进程状态	被启动的时间	实际使用CPU的时间	命令名称与参数
===================================================================================================================
USER:#运行进程的用户
PID: #进程id
%CPU:#CPU占有率
%MEM:#内存占有率
VSZ:#进程占用虚拟内存的大小
RSS:#占用物理进程的内存大小
TTY:#表示此进程哪个终端打开的
STAT:#进程状态
? 表示没占用终端
R 运行
S 可终端睡眠 SLeep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
5 个基本状态后,还可以加一些字母,比如:Ss、R+,如下图:它们含意如下::
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 表示当前进程运行在前台
START:#进程的启动时间
TIME: #进程占用CPU的总时间
COMMAND:#进程文件,进程名
查看tty的方法:
tty

查看进程(二)

ps -ef
参数解释:-e 显示所有进程
         -l 长格式显示
         -f 完整格式

UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:04 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
]

UID 用户的ID
PID 进程的ID
PPID 父进程ID
c cpu占有率
STIME 开始时间
TTY 开始此进程的TTY--终端设备
TIME此进程运行的总时间
CMD 命令名

查看单个PID

yum install -y httpd #安装apache软件
systemctl start httpd #启动
cat /var/run/httpd/httpd.pid

查看指定PID

ps aux | grep sshd #用过滤查看sshd的pid

查看端口:lsof、netstat、ss

yum install lsof #安装软件包
lsof -i:80 #指定端口号,这能查看带端口的进程
lsof -i #列出所有网络连接
lsof -i tcp #列出所有tcp网络连接信息
lsof -i udp #列出所有udp网络连接信息
#查看网络进程和正在监听的端口
yum install -y net-tools#安装net-tools
 netstat -lntp
 netstat -tulpn
 参数:
 -a 显示全部的进程
 -u 显示udp
 -n 以数字的形式显示协议名称
 -t tcp
 -p 显示进程的名称和pid
 -l 只显示被监听的端口
 -r 显示路由信息,路由表
 -e 显示扩展信息,例如uid等
 -s 按各个协议进行统计
 -c 每隔一个固定时间,执行该netstat命令。
w  #看已经登录到终端的进程信息,远程登录会有ip地址
# load average: 0.03, 0.02, 0.05 (cpu平均负载)

echo “get out” > /dev/pts/

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。

ss -t -a 【显示TCP连接】
  -t: 只显示tcp套接字
  -u:  udp
  -d: uccp
  -a:  all
  -l:  listening         【ss -l列出所有打开的网络连接端口】
  -s:  summary        【显示 Sockets 摘要】
  -p:  progress  [显示使用套接字的进程]
  -n:  numeric         【不解析服务名称】
  -r:  resolve        【解析服务名称】
  -i:显示tcp内部信息
  -m: memory        【显示内存情况】
  
查看进程使用的socket:ss –pl
找出打开套接字/端口应用程序:ss -lp | grep 22
显示所有udp:ss -u –a
查看主机监听的端口: ss -tnl
通过 -r 选项解析 IP 和端口号:ss -tlr

动态查看进程:

top、htop命令

用于动态地监视进程活动与系统负载等信息,其格式为top。
top命令相当强大能够动态地查看系统运维状态,完全将它看作Linux中的“强化版的Windows任务管理器”
安装:yum install -y htop
top #动态显示信息,默认三秒刷新一次

在这里插入图片描述

第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着有97.1%的CPU处理器资源处于空闲。
第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
####在工作中必须监控的东西  load average(平均负载)等待cpu处理的队列长度 也是个数.
1分钟 第一个数字
5分钟 第二个数字
15分钟 第三个数字
echo 3> /proc/sys/vm/drop_caches #清除 buff/chache缓储
Kib Swap:
PID:展示进程ID ID为1 所有进程的父进程
PR:优先级
NI:配合PR值
RES:占用虚拟内存和物理内存的比例
S:代表进程的状态 出现R前台运行的意思
======================
计算cpu负载 :local average的三个值:0.10,0.16,0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。


top操作:[root@linux-server ~]# top
h|? 帮助
> 往右翻页
< 往左翻页

M 按内存排序
P 按cpu排序
q 退出   
z 彩色显示
W 保存
=============================
PR   优先级

进程状态了解
Sl	以线程的方式运行
Ss  s进程的领导者,父进程
R+	+表示是前台的进程组
S< <优先级较高的进程 	
SN  N优先级较低的进程

在这里插入图片描述

ni:nice值
id:cpu空闲率
wa:cpu等待,等待输入/输出的进程占用的cpu百分百。如果使用率过高,表示硬盘该换了
进程优先级nice:
nice值越高:表示优先级越低,列如:+19,该进程容易将cpu使用量让给其他进程
nice值越低:表示优先级越高,列如:-20,该进程更不倾向于让出cpu

pidof命令【查询每个进程的pid】

pidof命令用于查询某个指定服务进程的PID值,格式为“pidof [参数] [服务名称]”。

每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。例如,可以使用如下命令来查询本机上sshd服务程序的PID:

[root@linuxprobe ~]# pidof sshd
2156

查看进程相关性(进程树):pstree

pstree [A|U] [-up]
参数:
-A:各进程树之间的连接以ASCII字符来连接。
-U:各进程树之间的连接以utf8码来连接,在某些终端接口下可能会有错误。
-P:同时列出每个进程的PID。
-u:同时列出每个进程的所属账号名称

进程控制(kill、pkill)

按pid杀死进程,kill命令用于终止某个指定PID的服务进程,格式为“kill [参数] [进程PID]”。

kill,pkill
语法:kill  信号 PID #信号也是进程间通信的一种方式
kill -l #查看所有信号
-1   HUP  重新加载进程或者重新加载配置文件,PID不变     kill-l + 端口号
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)
-18  CONT 激活进程/继续运行
-19  STOP 挂起进程/暂停进程

pkill命令用于终止某个指定名称的服务所对应的全部进程
pkill -9 -t tty1 #将tty1踢出去,不能登录系统

killall命令

killall命令用于终止某个指定名称的服务所对应的全部进程,格式为:“killall [参数] [服务名称]”

-Z 只杀死拥有scontext 的进程
-e 要求匹配进程名称
-I 忽略小写
-g 杀死进程组而不是进程
-i 交互模式,杀死进程前先询问用户
-l 列出所有的已知信号名称
-q 不输出警告信息
-s 发送指定的信号 killall -s pid
-v 报告信号是否成功发送
-w 等待进程死亡

# pidof httpd
13581 13580 13579 13578 13577 13576
# killall httpd
# pidof httpd
给vsftpd进程发送信号l,15 VSftpd信号测试
安装:yum install -y vsftpd 
启动:systemctl start vsftpd 
[root@linux-server ~]# ps aux | grep vsftpd
root      59363  0.0  0.0  53212   576 ?        Ss   16:47   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@linux-server ~]# kill -1 59363  #发送重启信号,例如vsftpd的配置文件发生改变,希望重新加载
[root@linux-server ~]# ps aux | grep vsftpd
root      59363  0.0  0.0  53212   748 ?        Ss   16:47   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@linux-server ~]# kill 59363 #正常杀死进程,信号为-15可以默认不写。我们可以使用systemctl stop vsftpd 停止服务。
[root@linux-server ~]# ps aux | grep vsftpd
root      62493  0.0  0.0 112660   968 pts/0    S+   16:51   0:00 grep --color=auto vsftpds

进程状态解释--了解:
+:表示运行在前台的进程组
S+:休眠状态
T+:暂停,挂起状态
s:父进程
给你VSftpd进程发送信号-9,VSftpd信号测试
启动服务进程:systemctl start vsftpd
[root@linux-server ~]# ps aux | grep vsftpd
root      67003  0.0  0.0  53212   572 ?        Ss   16:57   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      67089  0.0  0.0 112660   972 pts/0    S+   16:57   0:00 grep --color=auto vsftpd
#强制杀死,一般用于不能正常停止的情况下 kill -9 67003 
#或者可使用pkill可以指定进程名字 pkill -9 vsftpd
ps aux | grep vsftpd
root      67190  0.0  0.0 112660   972 pts/0    S+   16:57   0:00 grep --color=auto vsftpd

作业控制

作业控制之jobs:

作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。
-1: jobs默认不会列出后台工作的PID,加上T会列出进程的PID
-r:显示后台工作处于run状态的jobs
-s:显示后台工作处于stopped状态的jobs
# jobs   #查看后台的工作号
[1]+  已停止               ps aux | less
工作号  状态                程序执行命令
ctrl+z暂停(把程序放到后台) ctrl+c中断
# sleep 7000 &   #  &:让命令或者程序后台运行
# sleep 8000    #ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
# fg %1  #将后台的程序调到前台
# bg %2  #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
# kill -9 %2  #通过kill杀死进程

查看内存的使用情况:free

# free -m #查看内存使用情况
-h:人类可读方式显式单位
-m:以MB为显示单位
-w:将buffers和cache分开单独显示。只对CentOS 7上有效
-s:动态査看内存信息时的刷新时间间隔
-c: 一共要刷新多少次退岀free
              total        used        free      shared  buff/cache   available
Mem:           1984         154        1508           8         321        1632
Swap:          2047           0        2047

Mem是物理内存的量,Swap是虚拟内存的量,total是总量,used是已被使用的量,free是剩余可使用的量。shared/buffers/cached是已被使用的量当中用来作为缓冲及快取的量。
-m:单位M -g:单位G -k:单位k -h人性化显示
仅清除页面缓存(PageCache)

# sync; echo 1 > /proc/sys/vm/drop_caches       
清除目录项和inode

# sync; echo 2 > /proc/sys/vm/drop_caches       
清除页面缓存,目录项和inode

# sync; echo 3 > /proc/sys/vm/drop_caches 
#需要注意的是swap的量,一般来说,swap最好不要被使用,尤其swap最好不要被使用超过20%以上,如果超过20%,说明物理内存不足。

查看系统与内核相关信息:uname

参数:
-a, --all                     以如下次序输出所有信息。其中若-p 和
                                -i 的探测结果不可知则被省略:
  -s, --kernel-name             输出内核名称
  -n, --nodename                输出网络节点上的主机名
  -r, --kernel-release          输出内核发行号
  -v, --kernel-version          输出内核版本
  -m, --machine         输出主机的硬件架构名称
  -p, --processor               输出处理器类型或"unknown"
  -i, --hardware-platform       输出硬件平台或"unknown"
  -o, --operating-system        输出操作系统名称
uname -a
Linux xiaoqiang 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Lin
ux

查看系统的版本和内核:

#cat /etc/redhat-release #查看版本
 cat /etc/centos_release 
#uname -a #查看正在运行的内核版本/hostnamctl
#hostnamectl

Linux linux-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
#unname -r  #查看内核版本

查看系统启动时间与工作负载:uptime

# uptime
 09:45:06 up 12 min,  1 user,  load average: 0.00, 0.05, 0.05
 显示当前时间,己开机运行多少时间,当前有多少用户已登录系统,以及3个平均负载值。 
所谓负载率(load),即特定时冋长度内,cpu运行队列中的平均进程数(包括线程),一般平均每分钟每核的进程数小于3都认为正常,大于5时负载已 经非常高。在UNIX系统中,运行队列包括cpu正在执行的进程和等待cpu的进程(即所谓的可运行runable)。在Linux系统中,还包括不可中断捶眠 态(10等待)的进程。运行队列中每出现一个进程,load就加1,进程每退出运行队列,Load就减1。如果是多核cpu,则还要除以核数。
 
 例如,单核Cpu±的负载值为"1.73 0.60 7.98”时,表示:
最近1分钟:1.73表示平均可运行的进程数,这一分钟要一直不断地执行这1. 73个进程。0. 73个进程等待该核cpuo
最近5分钟:平均进程数还不足1,表示该核cpu在过去5分钟空闲了 40%的时间。
最近15分钟:7. 98表示平均可运行的进程数,这15分钟要一直不断地执行这7. 98个进程。
结合前5分钟的结果,说明前15-前10分钟时间间隔内,该核cpu的负载非常高。


例如4核时,某个最近一分钟的负载值为3. 73,则意味着有3. 73个进程在运行队列中,这些进程可被调度 至4核中的任何一个核上运行。最近1分钟的负载值为1. 6,表示这一分钟内每核cpu都空闲(1-1. 6/4) =60%的时间。

分析内核产生的信息:dmesg

系统在开机的时候,内核会去检测系统的硬件,硬件到底有没有被识别出来,就与这个时候的检测相关。但是这些检测的过程要不是没有显示在屏幕上,就是很飞快地在屏幕上一闪而逝,用dmesg就可以把内核检测的信息打印出来。所有内核检测的信息,不管是开机的时候还是系统运行过程中,只要是内核产生的信息都会被记录到内存中的某个保护区段。dmesg这个命令就能够将该区段的信息读出来。

使用方法:

1、使用|more的方式使界面暂停,dmesg | more
按回车键可以往下继续查看,按q退出。
2、用grep筛选出指定硬件相关信息,如查看硬盘相关信息:dmesg | grep -i hd

检测系统资源的变化:vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 1727208   2108 159620    0    0    35     7   31   62  0  0 99  0  0
1.Procs(进程)
r:当前运行队列中线程的数目,代表线程处于可运行状态,但CPU还未能执行.,这个值可以作为判断CPU是否繁忙的一个指标;当这个值超过了CPU数目,就会出现CPU瓶颈了;这个我们可以结合top命令的负载值同步评估系统性能;
b:等待IO的进程数量;如果该值一直都很大,说明IO比较繁忙,处理较慢;
2:memory(内存)
swpd:虚拟内存已使用的大小;如果swpd的值不为0,但是si,so的值长期为0,这种情况不会影响系统性能;
free:空闲的物理内存的大小;
buff:用作缓冲的内存大小;
cache:用作缓存的内存大小;如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小;
swap(交换空间,单位:KB);内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有时我们看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的;
3.Swap
si:每秒从交换区写到内存的大小;
so:每秒写入交换区的内存大小;
4.IO(现在的Linux版本块的大小为1kb)
bi:每秒读取的块数;
bo:每秒写入的块数;随机磁盘读写的时候,这2个值越大,能看到CPU在IO等待的值也会越大;
5:system(系统);这2个值越大,会看到由内核消耗的CPU时间会越大;
in:每秒中断数,包括时钟中断;
cs:每秒上下文切换数;
6:cpu(以百分比表示)
us:用户进程执行时间(user time);
sy:系统进程执行时间(system time);
id:空闲时间(包括IO等待时间);
wa:等待IO时间;wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.从虚拟机中窃取的时间。在Linux 2.6.11之前,未知。
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
#每二秒显示一次系统内存的统计信息:vmstat 2
#vmstat每二秒显示一次系统内存的统计信息,总共5次:vmstat 2 5
#显示磁盘的信息:vmstat -d 
#显示活跃内存与非活跃内存:vmstat -a 
#查看系统已经被fork多少次:vmstat -f 
#查看特定磁盘设备的:vmstat -p tmpfs  

查看硬盘存取数据信息:iostat

Linux没有安装这个工具的话可以使用yum install sysstat进行安装。
Iostat [-c|-d] [-k|-m] [-t] [间隔秒数] [检测次数]
参数:
-c 显示CPU使用情况
-d 显示磁盘使用情况
-k 以K为单位显示
-m 以M为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS使用情况
-p 可以报告出每块磁盘的每个分区的使用情况
-t 显示终端和CPU的信息
interval:刷新时间间隔
count:总统计次数
输出:
Linux 3.10.0-957.el7.x86_64 (xiaoqiang) 	04/01/2021 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.07    0.07    0.00   99.84
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w
输出内容详解:

%user:CPU处在用户模式下的时间百分比
%nice:CPU处在带NICE值的用户模式下的时间百分比
%system:CPU处在系统模式下的时间百分比
%iowait:CPU等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle:CPU空闲时间百分比
当然了,iostat命令的重点不是用来看CPU的,重点是用来监测磁盘性能的。

Device:设备名称
rrqm/s:每秒合并到设备的读取请求数
wrqm/s:每秒合并到设备的写请求数
r/s:每秒向磁盘发起的读操作数
w/s:每秒向磁盘发起的写操作数
rkB/s:每秒读K字节数
wkB/s:每秒写K字节数
avgrq-sz:平均每次设备I/O操作的数据大小
avgqu-sz:平均I/O队列长度
await:平均每次设备I/O操作的等待时间 (毫秒),一般地,系统I/O响应时间应该低于5ms,如果大于 10ms就比较大了
r_await:每个读操作平均所需的时间;不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间
w_await:每个写操作平均所需的时间;不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间
svctm:平均每次设备I/O操作的服务时间 (毫秒)(这个数据不可信!)
%util:一秒中有百分之多少的时间用于I/O操作,即被IO消耗的CPU百分比,一般地,如果该参数是100%表示设备已经接近满负荷运行了
iostat -d
Linux 3.10.0-957.el7.x86_64 (xiaoqiang) 	04/01/2021 	_x86_64_	(2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
输出内容详解:

tps:每秒I/O数(即IOPS。磁盘连续读和连续写之和)
kB_read/s:每秒从磁盘读取数据大小,单位KB/s
kB_wrtn/s:每秒写入磁盘的数据的大小,单位KB/s
kB_read:从磁盘读出的数据总数,单位KB
kB_wrtn:写入磁盘的的数据总数,单位KB输出内容详解:

显示日期:date

date命令的功能是显示和设置系统日期和时间。
​ 命令参数:
​ -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
​ -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
​ -u  显示GMT。
​ %H 小时(00-23)
​ %I 小时(00-12)
​ %M 分钟(以00-59来表示)
​ %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
​ %S 秒(以本地的惯用法来表示)
​ %a 星期的缩写。
​ %A 星期的完整名称。
​ %d 日期(以01-31来表示)。
​ %D 日期(含年月日)。
​ %m 月份(以01-12来表示)。
​ %y 年份(以00-99来表示)。
​ %Y 年份(以四位数来表示)。
​ 实例:
​ (1)显示下一天
​ date +%Y%m%d --date="+1 day" //显示下一天的日期
​ (2)-d参数使用
​ date -d "nov 22" 今年的 11 月 22 日是星期三
​ date -d '2 weeks' 2周后的日期
​ date -d 'next monday' (下周一的日期)
​ date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
​ date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
​ date -d last-month +%Y%m(上个月是几月)
​ date -d next-month +%Y%m(下个月是几月)

(1)
UTC  (Universal Time Coordinated,UTC)世界协调时间
CST  (China Standard Time UTC+8:00)中国沿海时间(北京时间)
GMT  (Greenwich Mean Time)格林威治标准时间
(2)设置时间
date -s "01:01:01 2017-12-12" //这样可以设置全部时间
date -s "01:01:01 20171212" //这样可以设置全部时间
date -s "2017-12-12 01:01:01" //这样可以设置全部时间
date -s "20171212 01:01:01" //这样可以设置全部时间

date命令为:date "+%Y-%m-%d %H:%M:%S" 
作用是按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间
当前日期:date +"%Y%m%d"

(4)时间的运算-加减
date +%Y%m%d         //显示现在天年月日
date +%Y%m%d --date="+1 day"  //显示后一天的日期
date +%Y%m%d --date="-1 day"  //显示前一天的日期
date +%Y%m%d --date="-1 month"  //显示上一月的日期
date +%Y%m%d --date="+1 month"  //显示下一月的日期
date +%Y%m%d --date="-1 year"  //显示前一年的日期
date +%Y%m%d --date="+1 year"  //显示下一年的日期

date +%F #只显示当前年月日
date +%X  #只显示当前时间到秒
date  ""+%X %F" #显示当前年月日和时间到秒
touch +文件名
touch date %F %X" +文件名
touch `date "+%F %X"`创建以当前年月日和时间命名的两个文件
touch "`date "+%F %X"`"创建以当前年月日和时间命名的一个文件
touch ` date +%F-%T` 创建以当前年月日和时间命名的一个文件

sar命令

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、 系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。sar命令来自于sysstat工具包,如果提示sar命令不存在,需先安装:yum install -y sysstat。
sar命令常用格式
sar [options] [-A] [-o file] t [n]
其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和
-a:文件读写情况
-b:显示I/O和传送速率的统计信息
-B:分页状况
-c:输出进程统计信息,每秒创建的进程数
-d:输出每一个块设备的活动信息
-u:输出CPU使用情况的统计信息[sar -u 1 2]
-v:输出inode、文件和其他内核表的统计信息
-P:显示指定的某颗或某几颗cpu的使用情况。指定方式为,-P 0, 1,2,3或ALL。[ sar -P ALL 1 2]
-r:输出内存和交换空间的统计信息
-R    内存状况
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
-q    队列长度和平均负载
-S    交换空间利用率
-v    Kernel table 状况
-w    任务创建与系统转换统计信息
-W    交换信息
-y    TTY 设备状况
-o {<文件路径>}
       将命令结果以二进制格式存放在指定文件中
-n { <关键词> [,...] | ALL }
        网络统计信息
        关键词可以是:
        DEV     网卡
        EDEV     网卡 (错误)
        NFS     NFS 客户端
        NFSD     NFS 服务器
        SOCK     Sockets (套接字)    (v4)
        IP    IP  流          (v4)
        EIP     IP 流       (v4) (错误)
        ICMP     ICMP 流    (v4)
        EICMP     ICMP 流    (v4) (错误)
        TCP     TCP 流  (v4)
        ETCP     TCP 流  (v4) (错误)
        UDP     UDP 流  (v4)
        SOCK6     Sockets (套接字)    (v6)
        IP6     IP 流       (v6)
        EIP6     IP 流       (v6) (错误)
        ICMP6     ICMP 流 (v6)
        EICMP6 ICMP 流 (v6) (错误)
        UDP6    UDP 流       (v6)

注意:
要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
常用: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
cpu使用情况:sar -u
查看平均负载和队列长度:sar -q
查看内存使用情况:sar -r
查看系统swap分区统计分区:sar -W
查看设备使用情况监控:sar -d 10 3 -p
查看内存分页状况:sar- B
查看系统交换活动信息监控:sar -W 10 3
查看I/O和传送速率监控:sar -b 10 3
查看内存分页监控:sar -B 10 3
查看inode、文件和其他内核表监控:sar -v 10 3
查看指定进程的统计信息:sar -x 2906-->进程号
查看tty设备的活动状态:sar -y
查看CPU资源监控并将采样结果以二进制形式存入当前目录下的文件test中:sar -u -o test 10 3
如果要查看二进制文件test中的内容,需键入如下sar命令:
sar -u -f test

查看网络接口信息:sar -n DEV
查看网络设备通信失败信息:sar -n EDVE
查看统计socket连接信息:sar -n SOCK
查看TCP连接的统计:sar -n TCP 

screen后台实时执行命令备份命令

Screen 中有会话的概念,,用户可以在一个 screen 会话中创建多个 screen 窗口,在每一个 screen 窗口中就
像操作一个真实的 telnet/SSH 连接窗口那样。
安装 screen 软件包
# rpm -ivh /mnt/Packages/screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64.rpm
或者# yum -y install screen

10.3.7 screen 使用方法
# screen 
#进入
# vim a.txt #执行命令, 或执行你自己需要运行的备份命令
此时想离开一段时间,但还想让这个命令继续运行

#在 screen 当前窗口键入快捷键 Ctrl+a+d 
[detached from 44074.pts-3.xuegod63]
#分离出来独立的一个会话
detached [dɪˈtætʃt]
分离,独立
半个小时之后回来了,找到该 screen 会话:
# screen -ls
#查看已经建立的会话 ID
There is a screen on:
44074.pts-1.tivf06 (Detached)
1 Socket in /tmp/screens/S-root.
重新连接会话:
# screen -r 44074
# exit
#不想使用 screen 会话了,执行:exit 退出。
附:常用 screen 参数
screen -S test -> 新建一个叫 test 的会话
screen -ls -> 列出当前所有的会话
screen -r test -> 回到 test 会话

备份命令

Screen 中有会话的概念,,用户可以在一个 screen 会话中创建多个 screen 窗口,在每一个 screen 窗口中就
像操作一个真实的 telnet/SSH 连接窗口那样。
安装 screen 软件包
# rpm -ivh /mnt/Packages/screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64.rpm
或者# yum -y install screen

10.3.7 screen 使用方法
# screen 
#进入
# vim a.txt #执行命令, 或执行你自己需要运行的备份命令
此时想离开一段时间,但还想让这个命令继续运行

#在 screen 当前窗口键入快捷键 Ctrl+a+d 
[detached from 44074.pts-3.xuegod63]
#分离出来独立的一个会话
detached [dɪˈtætʃt]
分离,独立
半个小时之后回来了,找到该 screen 会话:
# screen -ls
#查看已经建立的会话 ID
There is a screen on:
44074.pts-1.tivf06 (Detached)
1 Socket in /tmp/screens/S-root.
重新连接会话:
# screen -r 44074
# exit
#不想使用 screen 会话了,执行:exit 退出。
附:常用 screen 参数
screen -S test -> 新建一个叫 test 的会话
screen -ls -> 列出当前所有的会话
screen -r test -> 回到 test 会话
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BLXXQQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值