1监控系统状态
1.1w命令
使用 w查看当前系统的负载,Linux管理员最常用的命令就是这个 w。
在平时使用时不加参数。
-h:不显示标题。
-u:列出当前进程和CPU时间时忽略用户名。这主要是用于执行su命令后的情况。
-s:使用短模式。不显示登录时间、JCPU(终端机阶段作业)和PCPU(程序消耗)时间。
-f:切换显示FROM项,也就是远程主机名项。默认值是不显示远程主机名
-V:显示版本信息。
Linux常用系统命令

17:33:02 up:当前时间
5:14:开机了多少时间
2 users:有多少个用户
load average: 0.00, 0.00, 0.00:平均负载,分别是每分钟负载,5分钟平均负载,15分钟平均负载。一般情况下这个值只要不超过服务器的 cpu数量就没有关系,如果服务器
cpu数量为 8,那么这个值若小于 8,就说明当前服务器没有压力,否则就要关注一下了。
查看cpu核数命令:cat /proc/cpuinfo |grep processor |wc –l
User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的
[email protected]:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行
w命令区别于其他命令:
who命令,w命令不仅可以看到登录服务器的用户信息,而且可以看到这些用户做了什么
who am i命令,显示出自己在系统中的用户名,登录终端,登录时间
whoami命令,显示自己在系统中的用户名
logname命令,可以显示自己初次登录到系统中的用户名,主要识别sudo前后情形
last命令,查看最近1个月用户登录服务器的情况
tty命令,来查看所连接的设备或终端
top命令,相同:可以显示时间,开机时间,负载。不同:cpu 内存,进程占用信息。

1.2vmstat命令
Linux常用系统命令

w 查看的是系统整体上的负载,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,不用关注);
IO部分的 bi以及 bo也是要经常参考的对象。如果磁盘 io压力很大时,这两列的数值会比较高。另外当 si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。
查看状态时通常这样使用:vmstat 1 5。表示,每隔一秒钟打印一次状态,共打印 5次。
Linux常用系统命令

1.3top命令
top 显示进程所占系统资源,监控Linux系统状况。用于动态监控进程所占系统资源,每隔 3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘 IO等)最高的进程放到最前面。
Linux常用系统命令

多核CPU监控:在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况。

统计信息区:前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

06:57:21 当前时间
up 42 min 系统运行时间,格式为时:分
2 user 当前登录用户数
load average: 0.00, 0.01, 0.05 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 351 total 进程总数
2 running 正在运行的进程数
347 sleeping 睡眠的进程数
2 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s): 0.1%us 用户空间占用CPU百分比
0.0%sy 内核空间占用CPU百分比
0.0%ni 用户进程空间内改变过优先级的进程占用CPU百分比
99.9%id 空闲CPU百分比
0.0%wa 等待输入输出的CPU时间百分比
0.0% hi 硬件中断
0.0% si 软件中断
0.0%st 实时

最后两行为内存信息。内容如下:
Mem: 1001332 物理内存总量
578456 used 使用的物理内存总量
245244 free 空闲内存总量
177632 buffers 用作内核缓存的内存量
Swap: 2097148k total
交换区总量

315424k used 使用的交换区总量

208860k free 空闲交换区总量

625832k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

语法
top [-] [d] [p] [q] [c] [C] [S] [s] [n]

参数

d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式。
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名。
下面介绍在top命令执行过程中可以使用的一些交互命令。
从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。
这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些Linux命令会被屏蔽掉。
Ctrl+L 擦除并且重写屏幕。
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
c 切换显示命令名称和完整命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
Shift+M 可按内存占用情况进行排序。
top -bn1 它表示非动态打印系统资源使用情况. 和 top 命令唯一的区别就是,它一次性全部把所有信息输出出来而非动态显示。
参考:http://www.linuxeye.com/command/top.html
1.4free命令
free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
free –h会以合适单位输出结果,显示友好一些。
Linux常用系统命令

输出简介:
Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。

1.5ps命令
专门显示系统进程的命令,Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
Linux常用系统命令

命令参数:
a 显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A”
e 显示环境变量
f 显示程序间的关系
-H 显示树状结构
r 显示当前终端的进程
T 显示当前终端的所有程序
u 指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-C<命令> 列出指定命令的状况
–lines<行数> 每页显示的行数
–width<字符数> 每页显示的字符数
–help 显示帮助信息
–version 显示版本显示

输出含义:
USER:该 process 属于那个使用者账号的
PID :该 process 的号码
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比VSZ :该 process 使用掉的虚拟内存量 (Kbytes)RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
D 不能中断的进程(通常为 IO)
W 这个好像是说,从内核 2.6xx 以后,表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有
关系。如果太多,就有问题了。一般不会出现。
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程

  • 代表在前台运行的进程
    START:该 process 被触发启动的时间
    TIME :该 process 实际使用 CPU 运作的时间
    COMMAND:该程序的实际指令
    2.Linux网络相关
    2.1netstat命令
    netstat命令用来打印网络连接状况、系统所开放端口、路由表等信息。
    Linux常用系统命令

netstat常见参数
-a (all) 显示所有选项,默认不显示LISTEN相关。
-t (tcp) 仅显示tcp相关选项。
-u (udp) 仅显示udp相关选项。
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态。
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
LISTEN和LISTENING的状态只有用-a或者-l才能看到。
列名解释:
Proto:显示连接使用的协议。
RefCnt:表示连接到本套接口上的进程号。
Types:显示套接口的类型。
State:显示套接口当前的状态。
Path:表示连接到套接口的其它进程使用的路径名

2.2ifconfig
Linux常用系统命令

ifconfig类似与 windows的 ipconfig,不加任何选项和参数只打印当前网卡
的 IP 相关信息(子网掩码、网关等)
单网卡绑定多IP在Linux系列中的实现方法:
假设需要绑定多IP的网卡是eth0,请在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,
内容样例为:
DEVICE=”eth0:0″
IPADDR=”192.168.0.2″
BROADCAST=”172.168.0.255″
NETMASK=”255.255.255.0″
ONBOOT=”yes”  
其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,BROADCAST是广播地址,NETMASK为子网掩码,ONBOOT 表示在系统启动时自动启动。
如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。
LINUX最多可以支持255个IP别名

2.3设置 DNS
三种配置dns的方法:

1.在网卡文件中修改
echo 'DNS1=“114.114.114.114” ’ >> /etc/sysconfig/network-scripts/ifcfg-eth0
Linux常用系统命令

2.在主机表文件host文件中修改
echo “223.231.234.33 www.baidu.com” >> /etc/hosts
Linux常用系统命令

3.在域名服务器中修改
echo ‘nameserver 114.114.114.114’ >> /etc/resolv.conf
Linux常用系统命令

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

临时关闭selinux的方法:
查看状态:getenforce .(默认会输出 “enforcing”)
设置关闭:setenforce 0 (用 setenforce 0 这个命令后,再 getenforce 会输出permissive)
3.Linux系统任务计划
3.1crontab工具
定期自动执行某脚本的工具。
常用的选项有:
-u:指定某个用户,不加-u选项则为当前用户;
-e:修改任务,如果不存在,则创建任务。
-l:列出计划任务;
-r:删除计划任务。
-ir:删除文件前提醒用户
Linux常用系统命令

从左到右,依次为:分,时,日,月,周,命令行。而上面的例子的含义是:在 6月 5日(这一天必须是星期 3)的10点 01分执行命令 echo “ok” > /root/cron.log 。
4.Linux数据系统备份
4.1rsync工具
rsync. 从字面上的意思你可以理解为 remote sync (远程同步)这样可以让你理
解的更深刻一些。Rsync不仅可以远程同步数据,当然还可以本地同步数据,
rsync不像 cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已
经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。如
果你的 Linux没有 rsync命令请使用 yum install -y rsync 安装。
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还新的文件排除掉,不会覆盖
选项确实有点多。(重点熟记:-a -v --delete --exclude)。
例子:
把当前目录下的 sync.txt同步到/tmp/目录下(更改目
标文件的名字, rsync -av sync.txt /tmp/newsync.txt。远程拷贝: IP:path (如:10.0.2.34:/root/)。
Linux常用系统命令

5.Linux系统日志
5.1/var/log/message日志文件
日志主要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等
/var/log/message是核心系统日志文件。包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO错误、网络错误和其他系统错误都会记录到这个文件中。
除了关注/var/log/messages外,还应该多关注一下 dmesg 这个命令,它可
以显示系统的启动信息,如果你的某个硬件有问题(比如说网卡)用这个命令
也是可以看到的
Linux常用系统命令

5.2last命令
last命令用来查看登录 Linux历史信息,从左至右依次为账户名称、登录终
端、登录客户端 ip、登录日期及时长
参数:
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。
-f <记录文件>  指定记录文件。
-n <显示列数>或-<显示列数>  设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息
Linux常用系统命令

6. Linux命令xargs 与screen用法
6.1xargs与 screen工具
xargs它的作用就是把管道符前面的输出作为 xargs后面的命令的输入。它的好
处在于可以把本来两步或者多步才能完成的任务简单一步就能完成
实列:查找当前目录下所有.txt的文件,然后把这些.txt的文件变成.txt_bak
Linux常用系统命令

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

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

  1. 使用 nohup:,nohup的作用就是不挂断地运行命令
    示例代码如下:
    [[email protected]_10_10_centos ~]# cat /usr/local/sbin/sleep.sh
    #!/bin/bash
    sleep 1000
    [[email protected]_10_10_centos ~]# nohup sh /usr/local/sbin/sleep.sh&
    [1]19997
  2. screen工具的使用
    如果你没有 screen命令,请用 yum install -y screen 安装
    语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

参数说明
-A  将所有的视窗都调整为目前终端机的大小。
-d <作业名称>  将指定的screen作业离线。
-h <行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的shell。
-S <作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或–list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。
常用参数:
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
Linux常用系统命令

相关文章:

  • 2021-11-23
猜你喜欢
  • 2022-12-23
  • 2022-01-05
  • 2021-09-28
  • 2021-05-22
相关资源
相似解决方案