一.总结脚本高级命令trap, install, mktemp, expect, 进程优先级命令:nice, renice, 进程管理工具: ps, pstree, prtstat, pgrep, pidof, uptime,mpstat,top,htop, free, pmap, vmstat, iostat, iotop, iftop, nload, nethogs, iptraf-ng, dstat, glances, cockpit, kill, job, 任务相关的命令: at, crontab, 命令,选项,示例。
1.trap 命令可以捕捉信号,修改信号原来的功能实现自定义功能
运行格式
trap命令的参数分为两部分,前一部分是接收到指定信号时将要采取的行动,后一部分是要处理的信号名。
trap command signal
Trap `触发指令`信号
#忽略信号的操作
Trap `` 信号
#恢复信号的操作
Trap `-` 信号
#列出自定义信号操作
Trap -p
#当脚本退出时,执行finish函数
2.Install 安装复制文件
install 功能相当于cp,chmod,chown,chgrp,mkdir 等相关工具的集合。
Install [OPTION] [-T] SOURCE DEST 单个文件
Install [OPTION] SOURCE... DIRECORY
Install [OPTION] -t DIRECORY SOURCE
Install [OPTION] -d DIRECORY... #创建空目录
root@Centos7 ~]# install -m 700 mo -g zhi srcfile desfile
[root@Centos7 ~]# install -m 770 -d /testdir/installdir
install -m 600 -o mo -g bin anacnda-ks.cfg /nmt/a.cfg
install -m 600 -o mo -g bin anaconda-ks.cfg /mnt/a.cfg
3.mktemp 创建临时文件
mktemp命令用户创建并显示临时文件,可避免冲突。
语法:
mktemp [-qu][文件名参数]
参数:
-q 执行时若发生错误,不会显示任何信息。
-u 暂存文件会在mktemp结束前先行删除。
-d 创建临时目录
-p 指明临时文件存放的目录
[文件名参数] 文件名参数必须是以"自订名称.XXXXXX"的格式。
[root@Centos7 ~]# mktemp
/tmp/tmp.ldCJ7rSQTj
[root@Centos7 ~]# mktemp /temp/testXXX
4.expect 交互式转化批处理工具
expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 其交互流程是:
spawn启动指定进程 -> expect获取指定关键字 -> send想指定进程发送指定指令 -> 执行完成, 退出.
由于expect是基于tcl的, 所以需要确保系统中安装了tcl:
expect的常用命令
命 令 说 明
spawn 启动新的交互进程, 后面跟命令或者指定程序
expect 从进程中接收信息, 如果匹配成功, 就执行expect后的动作
send 向进程发送字符串
send exp_send 用于发送指定的字符串信息
exp_continue 在expect中多次匹配就需要用到
send_user 用来打印输出 相当于shell中的echo
interact 允许用户交互
exit 退出expect脚本
eof expect 执行结束, 退出
set 定义变量
puts 输出变量
set timeout 设置超时时间
二.进程优先级命令
1.nlce命令以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,内定的 adjustment 为 10,范围为 -20(最高优先序)到19(最低优先序)
语法
nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]
参数说明:
-n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
--help 显示帮助信息
root@Centos7 ~]# vim & //后台运行
[1] 3058
[root@Centos7 ~]# nice vim & //设置默认优先级
[2] 3059
[1]+ 已停止 vim
[root@Centos7 ~]# nice -n 19 vim & //设置优先级为19
[3] 3068
- + 已停止 nice vim
显示进程
2.renice命令
Linux 命令大全 Linux 命令大全
Linux renice命令用于重新指定一个或多个行程(Process)的优先序(一个或多个将根据参数而定)。
注意:每一个行程(Process)都有一个唯一的(unique)id。
语法
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
参数说明:
-p pid 重新指定行程的 id 为 pid 的行程的优先序
-g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
-u user 重新指定行程拥有者为 user 的行程的优先序
实例
将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1
renice +1 987 -u daemon root -p 32
- 进程管理工具
1.ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
语法 ps [options] [--help]
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程
au(x) 输出格式 :
查看进程详细信息:
查看进程的父子关系
按CPU利用率倒序排序
2.Pstree可以显示进程的父子关系,以树状结构显示
格式
Pstree [option] [PID] [user]
选项
-p 显示PID
-T 不显示线程thread,默认显示线程
-u 显示用户切换
-H 高亮显示指定进程及其前辈进程
pstree 1
Pstree mo
pstree -T
3.prtstat 查看进程信息
可以显示进程信息。来自于psmic包
格式
Prtstat [options] PID ...
选项
-r raw格式显示
prtstat -r 1856
- pgrep根据用户给出的信息在当前运行进程中查找并列出符合条件的进程
选项
-o:仅显示找到的最小(起始)进程号;
-n:仅显示找到的最大(结束)进程号;
-l:显示进程名称;
-P:指定父进程号;
-g:指定进程组;
-t:指定开启进程的终端;
-u:指定进程的有效用户ID。
-a: 显示完整格式的进程名
- pidof 查找正在运行进程的进程号
选项
-s:仅返回一个进程号;
-c:仅显示具有相同“root”目录的进程;
-x:显示由脚本开启的进程;
-o:指定不显示的进程ID。
- uptime
/proc/uptime 包括两个值,单位s
系统启动时长
空闲进程的总时长(按总的CPU合数计算)
当前时间
系统已启动时间
当前在线用户
系统平均负载(1,5,15分钟的平均负载,一般不会超过1,超过5时建议报警)
系统平均负载:指在特定时间间隔内运行队列中的平均进程数,通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题。
- mpstat 显示CPU相关统计
- top和htop 查看进程实时状态
top 提供动态的实时进程状态
有许多内置命令
帮助:h 或 ?,按q或esc退出帮助
排序:p 以占据的cpu百分比,%cpu
M 占据内存百分比,%MEN
T:累积占据CPU时长,TIME
首部信息显示:
uptime信息:l
tasks及cpu信息:t
cpu分别显示:1
memory内存信息:m
退出命令:q
修改刷新时间间隔:s
终止指定进程:k
保存文件:w
top命令栏位信息简介
us: 用户空间
Sy:内核空间
ni:调整nice时间
wa:等待IO时间
hi:硬中断
si:软中断
st:虚拟机偷走的时间
top选项
-d :指定刷新时间间隔
-b:全部显示所有进程
-n:刷新多少次后退出
-H:线程模式
htop命令是增强版的top命令,来自于epel源,比top功能更强
选项
-d:指定延时时间
-u:username:仅显示指定用户的进程
-s:以指定字段进行排序
子命令
s:跟踪选定进程的系统调用。
l:显示选定进程打开的文件。
a:将选定的进程绑定至某指定的cpu核心
t:显示进程数。
- free内存空间
选项
-b:以字节为单位
-m:以MB为单位
-g:以GB为单位
-h:以人类易读格式显示
-o:不显示-/+buffers/cache行
-t:显示RAM+swap的总和
-s: n刷新间隔时间为n
-c: n 刷新n次后退出。
- Pmap 进程对应的内存映射
格式pmap [option] PID [...]
选项 -x 显示详细格式信息
- vmstat 虚拟内存信息
显示项说明
Procs:
r:可运行进程的个数,和核心数有关
b:处于不可中断睡眠态的进程个数
memory:
Swpd:交换内存的使用量
free:空闲物理内存 总量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
swap:
si:从磁盘交换至内存的数据速率(kb/s)
so:从内存交换至磁盘的数据速率(kb/s)
io:
bi:从块设备读入数据到系统的速率(kb/s)
bo:保存数据至块设备的速率。
system:
in:中断速率,包括时钟
cs:进程切换速率
cpu:
us:用户CPU时间
sy:系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id:空闲 CPU时间
wa:Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。
st:被虚拟机所盗用的 CPU 百分比。
- iostat 统计CPU和设备IO信息
Iostat可以提供更丰富的IO性能状态数据。
选项:
-c :只显示CPU行
-d :显示设备(磁盘)使用状态
-k :以千字节为单位显示输出
-t :在输出中包括时间戳
-x :在输出中包括扩展的磁盘指标。
- iotop 磁盘监视
Iotop命令是一个用来监视磁盘I/O使用状况的top类工具iotop具有与top类似的界面。
Iotop输出
第一行:Read和Write速率总计。
第二行:实际的Read和Write速率总计。
第三行:线程ID,优先级,用户,磁盘读速率,磁盘写速率,swap交换百分比,IO等待所占百分比。
Iotop常用参数:
交互按键:
- iftop显示网络使用情况。
Iftop -ni eth0
- nload 查看网络实时吞吐量
- nethogs 查看进程网络带宽的使用情况
用来按进程或程序实时统计网络带宽使用率。
- iptraf-ng 网络监视工具
- dstat 系统资源统计
安装dstat包即可,可以用于替代vmstat,iostat功能。
选项
- glances综合监控工具
此工具可以通过EPEL源安装
选项
20.losf 查看进程打开文件
查看当前系统文件的工具
选项
列出当前所有打开的文件
查看当前哪个进程在使用此文件
查看由登录用户启动的而非系统启动的进程
[root@Centos7 ~]# lsof /dev/pst/1
[root@Centos7 ~]# lsof tty
指定进程号,可以查看改进程号打开的文件
查看指定的程序打开的文件
查看指定用户打开的文件
使用lsof恢复正在使用中文件误删除的文件
- cockpit 是Centos8支持的新特新,是有cockpit提供Ubuntu和Centos7也支持此工具,是一个基于Web界面的应用,提供对系统图形化管理。
在浏览器输入地址,打开页面使用系统用户名和密码进行登录
- Kill 可以用来向进程发送控制信号,以实现对进程管理,每个信号对应一个数字。
显示当前系统可用信号
kill -l
trap -l
常用信号
- linux的作业控制
前台作业:通过终端启动,且启动后一直占据终端。
后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端)
让作业运行于后台:
运行中的作业:Ctrl+z
尚未启动的作业:COMMAND&
后台作业虽然被送往后台运行,但其依赖与终端相关;退出终端,将关闭作业。
nohup COMMAND &>dev/null &
Jobs 查看当前终端所有作业
并行运行
利用后台执行,实现并行功能,即同时运行多个进程,提高效率。
三.计划任务
通过计划任务,可以让系统自动的按时间或周期性的执行任务
- at 一次性任务
选项
- cron 周期性任务计划
分钟,小时,日,月,星期
Crontab -l 查看当前用户的任务
Crontab -e 对当前用户的任务进行编辑修改或增加
11月每天6-12点之间
标签:显示,管理工具,指定,命令,进程,root,CPU From: https://www.cnblogs.com/m490545607/p/17418950.html