1. 进程管理
进程查看
a. 进程简介:
进程是正在执行的一个程序或命令,
每一个进程都是一个运行的实体,都有自己的
地址空间,并占用一定的系统资源。
b. 进程管理的作用:
- 判断服务器健康状态
- 查看系统中所有进程
- 杀死进程
c. 查看系统中所有进程:
1 2 3 4
| $ [root@localhost~]# ps aux $ [root@localhost~]# ps -le
|
参数说明:
□ USER:该进程是由哪个用户产生的;
□ PID:进程的ID号;
□ %CPU:该进程占用CPU资源的百分比, 占用越高,进程越耗费资源;
□ %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源:
□ VSZ:该进程占用虚拟内存的大小,单位KB;
□ RSS:该进程占用实际物理内存的大小,单位KB;
□ TTY:该进程是在哪个终端中运行的。
其中tty1-tty7代表本地控制台终端,
tty1-tty6是本地的字符界面终端,
tty7是图形终端。pts/0-256代表虚拟终端。
□ STAT:进程状态。常见的状态有:
[R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台]
□ START:该进程的启动时间
□ TIME:该进程占用CPU的运算时间,注意不是系统时间
□ COMMAND:产生此进程的命令名
d. 查看系统健康状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| [root@localhost~]$ top [选项] 1) 选项: -d 秒数 #指定top命令每隔几秒更新。默认是3秒 -q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。 -c:显示进程完整的路径与名称。 -S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。 -s:安全模式。 -i:不显示任何闲置(Idle)或无用(Zombie)的行程。 -n:显示更新的次数,完成后将会退出top
2) 在top命令的交互模式当中可以执行的命令: ® ?或h: 显示交互模式的帮助 ® P: 以CPU使用率排序,默认就是此项 ® M: 以内存的使用率排序 ® N: 以PID排序 ® q: 退出top 3) 参数说明: a) 第一行信息为任务队列信息: 内容 说明 12:26:46 系统当前时间 up 1 day,13:32 系统的运行时间,本机已经运行1天13小时32分钟 2 users 当前登录了两个用户 1oad average: 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 1. 00,0. 00, 0. 00, b) 第二行为进程信息: 内容 说明 Tasks:95 total 系统中的进程总数 1 running 正在运行的进程数 94 sleeping 睡眠的进程 0 stopped 正在停止的进程 0 zombie 僵尸进程。如果不是0,需要手工检查僵尸进程 c) 第三行为CPU信息: 内容 说明 Cpu(s):0. 1%us 用户模式占用的CPU百分比 0.1%sy 系统模式占用的CPU百分比 0.0%ni 改变过优先级的用户进程占用的CPU百分比 99.7%id 空闲CPU的CPU百分比 0.1%wa 等待输入/输出的进程的占用CPU百分比 0.0%hi 硬中断请求服务占用的CPU百分比 0.1%si 软中断请求服务占用的CPU百分比 0.0%st st(steal time)虚拟时间百分比。 就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 d) 第四行为物理内存信息: 内容 说明 Mem: 625344k total 物理内存的总量,单位KB 571504k used 已经使用的物理内存数量 53840k free 空闲的物理内存数量,我们使用的是虚 拟机,总共只分配了628MB内存,所以 只有53MB的空闲内存了 65800k buffers 作为缓冲的内存数量 e) 第五行为交换分区(swap)信息: 内容 说明 Swap:524280k total 交换分区(虚拟内存)的总大小 0k used 已经使用的交互分区的大小 524280k free 空闲交换分区的大小 409280k cached 作为缓存的交互分区的大小
|
e. 查看进程树
1 2 3 4
| [root@localhost~]$ pstree [ 选项 ] 选项: ® -p ® -u
|
2. 终止进程
○ kill 命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [root@localhost~]# kill -l
参数说明: 信号代号 信号名称 说明 1 SIGHUP 该信号让进程立即关闭,然后重新读取配置文件之后重启。 2 SIGINT 程序终止信号,用于终止前台进程。相当于输出ctrl+c 快捷键。 8 SIGFPE 在发生致命的算术运算错误时发出.不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误。 9 SIGKILL 用来立即结束程序的运行,本信号不能被阻塞、处理和忽略 一般用于强制终止进程。 14 SIGALRM 时钟定时信号,计算的是实际的时间或时钟时间。alarm函数使用该信号。 15 SIGTERM 正常结束进程的信号,k山命令的默认信号。有时如果进程己经发生问题, 这个信号是无法正常终止进程的,我们才会尝试SIGKILL信号,也就是信号9 18 SIGCONT 该信号可以让暂停的进程恢复执行,本信号不能被阻断。 19 SIGSTOP 该信号可以暂停前台进程,相当于输入ctrl+z 快捷键。本信号不能被阻断。 [root@localhost~]# kill -l 进程id #重启进程 [root@loca1110st~]# kill -l 进程id #强制杀死进程
|
○ killall 命令:
1 2 3 4 5
| [root@localhost~]# killall [选项] [信号] 进程名
选项: -i -I
|
○ pkill 命令
1 2 3 4 5 6 7 8
| [root@localhost~]# pkill [选项] [信号] 进程名
选项: -t 终端号
[root@localhost~]# w [root@localhost~]# pklll -t -9 pts/1
|
工作管理
- 把进程放入后台:
○ tar -zcf etc.tar.gz /etc &
○ [root@localhost~]# top
//在top命令执行的过程中,按下ctrl+z快捷键
- 查看后台的工作:
1 2 3 4
| [root@localhost~]# jobs [-l] 选项: -l
|
- 将后台暂停的工作恢复到前台执行
1 2 3
| [root@localhost~]# fg %工作号 参数:
|
- 把后台暂停的工作恢复到后台执行
1 2
| [root@localhost~]# bg %工作号 注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行
|
3. 系统资源查看
- vmstat命令监控系统资源
[root@localhost]# vmstat
[ 刷新延时 刷新次数 ]
例如:[root@localhost]# vmstat 1 3
#vmstart 命令需要自行安装
2. dmesg开机时内核检测信息
○ [root@localhost]# dmesg
○ [root@localhost]# dmesg | grep CPU
3. free命令查看内存使用状态
1 2 3 4 5 6
| [root@localhost~]# free [ 选项 ] 选项: -b: -k: -m: -g:
|
- 缓存和缓冲的区别
简单来说缓存(cache)是用来加速数据从硬盘中“读取”的,而(buffer)是用来加速数据“写入”硬盘的。
- 查看CPU信息
[root@localhost~]# cat /proc/cpuinfo
- uptime命令
[root@localhost~]# uptime
#显示系统的启动时间和平均负载,也就是top命令的第一行。
w命令也可以看到此数据
7. 查看系统与内核相关信息
1 2 3 4 5
| [root@localhost~]# uname [选项] 选项: -a: -r: -s:
|
- 判断当前系统的位数
[root@localhost~]# file /bin/ls
- 查询当前Linux系统的发行版本
[root@localhost~]# lsb_release -a
#需自行安装 lsb_release命令
10. 列出进程打开或使用的文件信息
1 2 3 4 5 6 7
| [root@localhost~]# lsof [选项] 选项: -c 字符串: -u 用户名: -p pid:
|
4. 系统定时任务
- crond服务管理与访问控制
○ [root@localhost]# service crond restart
○ [root@localhost]# chkconfig crond on
- 用户的crontab设置
1 2 3 4 5 6 7 8
| [root@localhost~]# crontab [选项] i. 选项: -e: -l: -r: ii. 示例: [root@localhost~]# crontab -e [
|
- 时间参数配置:
项目 |
含义 |
范围 |
第一个“*” |
一小时当中的第几分钟 |
0一59 |
第二个“*” |
一天当中的第几小时 |
0一23 |
第三个“*” |
一个月当中的第几天 |
1一31 |
第四个“*” |
一年当中的第几月 |
1一12 |
第五个 “*” |
一周当中的星期几) |
0一7(0和7都代表星期日) |
案例说明:
时间 |
含义 |
45 22 ***命令 |
在22点45分执行命令 |
0 17**1 命令 |
每周1的17点0分执行命令 |
0 5 1, 15**命令 |
每月1号和15号的凌晨5点0分执行命令 |
40 4**1-5 命令 |
每周一到周五的凌晨4点40分执行命令 |
*/10 4***命令 |
每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15* 1 命令 |
每月1号和15号,每周1的0点0分都会执行命令。 注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱 |
特殊符号参数说明:
特殊符号 |
含义 |
* 代表任何时间。 |
比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, 代表不连续的时间。 |
比如“0 8,12,16* **命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
* 代表连续的时间范围。 |
比如“0 5 **1-6命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n 代表每隔多久执行一次。 |
比如”*/10****“命令,代表每隔10分钟就执行一遍命令 |
实操示例:
*/5* ** */bin/echo "11”>>/tmp/test
每个五分钟写一个”11“ 叠加到test文件中
5 5* *2 /sbin/shutdown -r now
每周二凌晨5点5分重启系统
0 5 1,10.,15* * /root/sh/autobak.sh
每个月的1号,10号与15号执行这个脚本