任务管理RHCE-Day5
来源:互联网 发布:冷钢刀怎么样啊 知乎 编辑:程序博客网 时间:2024/06/11 20:52
进程管理及控制
进程管理
1、进程查看
# ps
PID TTY TIME CMD
1493 pts/0 00:00:00 bash
1604 pts/0 00:00:00 ps
打印进程
# ps aux | less
vsz:进程所占用内存的总大小 以kb为单位
rss:进程所占用实际物理内存的大小 以kb为单位
进程状态:STAT
D:不可中断的睡眠,不能被其他进程唤醒
S:可中断的睡眠,其他进程、硬件中断、系统资源唤醒
R:运行或就绪;在CPU队列中等待、正在运行
T:停止
Z:僵死;子进程结束,等待父进程回收资源 Zombie
<:高优先级的进程
1、进程会被cpu优先执行
2、进程会被分配较多CPU执行时间
N:低优先级的进程
+:前台进程组中的进程
l:多线程进程 httpd
s:会话进程 session
COMMAND:
[kworker/0:3] : 内核启动的进程
ps aux :用户启动的进程
查看系统中是否启动了vim进程
# ps aux | grep vim
rhel 7启动的第1个进程:systemd PID 1
打印线程
# ps -elf
PRI:优先级
NI:nice值
显示进程树
# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─2*[abrt-watch-log]
├─abrtd
├─agetty
├─alsactl
├─atd
├─auditd─┬─audispd─┬─sedispatch
│ │ └─{audispd}
显示root运行的进程
# pgrep -l -u root
1 systemd
2 kthreadd
3 ksoftirqd/0
5 kworker/0:0H
6 kworker/u128:0
7 migration/0
8 rcu_bh
9 rcuob/0
10 rcuob/1
11 rcuob/2
12 rcuob/3
# pidof vim
2686
动态查看进程
# top
top - 23:02:38 up 52 min, 2 users, load average: 0.01, 0.03, 0.05
Tasks: 229 total, 2 running, 227 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si
KiB Mem: 2043052 total, 325044 used, 1718008 free, 748 buffe
KiB Swap: 2047996 total, 0 used, 2047996 free. 125420 cache
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
2046 root 20 0 123660 1688 1152 R 0.7 0.1 0:02.89
1849 root 20 0 0 0 0 S 0.3 0.0 0:01.92
1 root 20 0 53632 7588 2524 S 0.0 0.4 0:02.26
0.0 us: user 用户进程所占用的cpu
0.3 sy: system 系统进程所占用的cpu
0.0 ni: nice 调整过nice值的进程所占用的cpu
99.7 id: idle cpu的空闲
0.0 wa: wait 等待运行的进程所占用cpu
0.0 hi: hard interupt 硬件中断的进程
0.0 si: soft interupt 软件中断的进程
load average: 0.01, 0.03, 0.05
cpu在1分钟、5分钟、15分钟的平均负载值
平均负载值/cpu内核数量
大于1:cpu资源饱和
小于1:cpu使用正常
PR priority 优先级
数字越小,优先级越高;优先级越高,执行越优先
NI:进程的nice值 调整或者指定进程的优先级
priority=old_priority+nice
nice值的取值范围:-20--19
root用户可以随意进程的nice值
普通用户仅可以调高nice值
查看cpu内核数:
# grep "cpu cores" /proc/cpuinfo
cpu cores : 1
1)启动进程,手工指定优先级
# nice -n 3 vim /etc/fstab
2)调整正在运行的进程的nice值
# top
r:调整进程的nice值
top -p 进程号:查看指定进程
3)
# renice -n <nice值> PID
# renice -n -10 1777
1777 (process ID) old priority 10, new priority -10
查看内存使用情况:
# free -m
total used free shared buffers cached
Mem: 483 308 174 4 0 127
-/+ buffers/cache: 180 302
Swap: 1999 0 1999
查看CPU使用情况:
# uptime
01:50:15 up 2:19, 2 users, load average: 0.01, 0.02, 0.05
动态收集cpu占用信息:
# mpstat 2 3
Linux 3.10.0-123.el7.x86_64 (server.bj.com) 11/05/2015_x86_64_ (1 CPU)
01:51:16 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:51:18 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
01:51:20 AM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
01:51:22 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.17 0.00 0.00 0.00 0.00 0.00 0.00 99.83
动态收集内存使用信息:
# vmstat 2 3
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 174940 1000 130352 0 0 18 1 26 51 0 0 99 0 0
1 0 0 174916 1000 130352 0 0 0 1 16 34 0 0 100 0 0
1 0 0 174916 1000 130352 0 0 0 0 19 29 0 0 100 0 0
# iostat 1 1
Linux 3.10.0-123.el7.x86_64 (server.bj.com) 11/05/2015_x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.11 0.00 0.25 0.33 0.00 99.31
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
fd0 0.00 0.00 0.00 8 0
sda 0.89 16.55 1.10 148886 9861
sdb 0.06 0.24 0.00 2149 4
sdc 0.03 0.12 0.00 1044 0
scd0 0.00 0.01 0.00 48 0
dm-0 0.02 0.06 0.00 565 4
控制进程的运行方式
重要的信号 :
1:signup 不重启进程重新读取其配置文件,使新配置生效
# service named reload
2:signint ctrl+c中止 interupt
9:signkill 强制终止程序
15:signterm 终止程序,默认信号
终止进程:
# kill [-9] PID
同时终止多个同名的进程:
# killall httpd
# pkill httpd
进程启动的方式:
1、在后台启动程序
# cp /mnt/Packages/* /software &
2、查看后台的程序
# jobs -l
[1]+ 3756 Stopped (tty input) cp -i /mnt/Packages/* /software/
[2]- 3769 Running cp -i /mnt/Packages/* /software/ &
3、将正在运行的程序放入后台暂停运行
ctrl + z
4、将后台任务调回前台继续运行
# fg 任务编号(1或2)
5、将后台暂停运行的任务继续在后台运行
# bg 任务编号
计划任务
一次性计划任务
周期性计划任务
一次性计划任务
前提条件:atd服务必须运行
# systemctl is-active atd
active
制订一次性计划任务
# at 时间
>command
>command
按ctrl+d提交任务
查看一次性计划任务
# atq
删除一次性计划任务
# atrm 任务编号
时间写法:
绝对时间:
# at 18:34 hh:mm
如果该时间已经过期,任务会在明天的相同时间执行
# at 18:34 2016-7-8 hh:mm yyyy-mm-dd
# at 23:30 today
# at 23:30 tomorrow
# at midnight (午夜)
# at teatime (下午4:00)
# at noon (中午)
12小时制时间:
# at 7:08AM
# at 8:00PM
# at 3:05PM 2015-7-8
# at 2:03PM March 17 2015
相对时间:
now + 数字 时间单位
时间单位:
minutes, hours , days, weeks
示例:5分钟后,在/tmp下创建目录caiwu
# at now +5minutes
at> mkdir /tmp/caiwu
at> <EOT>
job 2 at Thu Nov 5 03:16:00 2015
周期性计划任务
前提:crond服务必须运行
# systemctl is-active crond
active
制定周期性计划任务
# crontab -e
时间写法: (-,/)
分 时 日 月 周
30 23 * * * 每天的23:30
0 8 * * 4 每周四的早上八点
0 8-10 * * * 每天的8--10点
0 13,15,17 * * * 每天的下午1、3、5点
*/5 * * * * 每5分钟
操作:
1、命令全路径
2、只能写一条命令(shell脚本)
编写脚本:
1)新建文件 .sh
2)编写
3)为文件添加执行权限
示例: 每天晚上10:00,分别显示cpu负载、内存使用情况及硬盘容量使用情况
1、编写脚本,分别显示cpu负载、内存使用情况及硬盘容量使用情况
# vim info.sh
#!/bin/bash
echo '============cpu info============'
uptime
echo '============memory info========='
free -m
echo '============disk info=========='
df -hT
2、编写计划任务,执行该脚本
# crontab -e
0 10 * * * /usr/bin/bash ~/info.sh
注意:
%在计划任务中表示结束符的意思,因此需要使用转义 \%
查看用户的计划任务
# crontab -l [ -u username ]
*/1 * * * * /usr/bin/mkdir /`date +\%Y-\%m-\%d`
删除计划任务
# crontab -r
命令引用 :
1、反引号``
# tar czf /tmp/`date +%F-%T`.tar.gz /home/
2、$()
# tar czf /tmp/$(date +%F-%T).tar.gz /home/
为安全性考虑,建立编辑/etc/crontab制订计划任务!!!!!(只能root使用,并指定user)
进程管理
1、进程查看
# ps
PID TTY TIME CMD
1493 pts/0 00:00:00 bash
1604 pts/0 00:00:00 ps
打印进程
# ps aux | less
vsz:进程所占用内存的总大小 以kb为单位
rss:进程所占用实际物理内存的大小 以kb为单位
进程状态:STAT
D:不可中断的睡眠,不能被其他进程唤醒
S:可中断的睡眠,其他进程、硬件中断、系统资源唤醒
R:运行或就绪;在CPU队列中等待、正在运行
T:停止
Z:僵死;子进程结束,等待父进程回收资源 Zombie
<:高优先级的进程
1、进程会被cpu优先执行
2、进程会被分配较多CPU执行时间
N:低优先级的进程
+:前台进程组中的进程
l:多线程进程 httpd
s:会话进程 session
COMMAND:
[kworker/0:3] : 内核启动的进程
ps aux :用户启动的进程
查看系统中是否启动了vim进程
# ps aux | grep vim
rhel 7启动的第1个进程:systemd PID 1
打印线程
# ps -elf
PRI:优先级
NI:nice值
显示进程树
# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─2*[abrt-watch-log]
├─abrtd
├─agetty
├─alsactl
├─atd
├─auditd─┬─audispd─┬─sedispatch
│ │ └─{audispd}
显示root运行的进程
# pgrep -l -u root
1 systemd
2 kthreadd
3 ksoftirqd/0
5 kworker/0:0H
6 kworker/u128:0
7 migration/0
8 rcu_bh
9 rcuob/0
10 rcuob/1
11 rcuob/2
12 rcuob/3
# pidof vim
2686
动态查看进程
# top
top - 23:02:38 up 52 min, 2 users, load average: 0.01, 0.03, 0.05
Tasks: 229 total, 2 running, 227 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si
KiB Mem: 2043052 total, 325044 used, 1718008 free, 748 buffe
KiB Swap: 2047996 total, 0 used, 2047996 free. 125420 cache
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
2046 root 20 0 123660 1688 1152 R 0.7 0.1 0:02.89
1849 root 20 0 0 0 0 S 0.3 0.0 0:01.92
1 root 20 0 53632 7588 2524 S 0.0 0.4 0:02.26
0.0 us: user 用户进程所占用的cpu
0.3 sy: system 系统进程所占用的cpu
0.0 ni: nice 调整过nice值的进程所占用的cpu
99.7 id: idle cpu的空闲
0.0 wa: wait 等待运行的进程所占用cpu
0.0 hi: hard interupt 硬件中断的进程
0.0 si: soft interupt 软件中断的进程
load average: 0.01, 0.03, 0.05
cpu在1分钟、5分钟、15分钟的平均负载值
平均负载值/cpu内核数量
大于1:cpu资源饱和
小于1:cpu使用正常
PR priority 优先级
数字越小,优先级越高;优先级越高,执行越优先
NI:进程的nice值 调整或者指定进程的优先级
priority=old_priority+nice
nice值的取值范围:-20--19
root用户可以随意进程的nice值
普通用户仅可以调高nice值
查看cpu内核数:
# grep "cpu cores" /proc/cpuinfo
cpu cores : 1
1)启动进程,手工指定优先级
# nice -n 3 vim /etc/fstab
2)调整正在运行的进程的nice值
# top
r:调整进程的nice值
top -p 进程号:查看指定进程
3)
# renice -n <nice值> PID
# renice -n -10 1777
1777 (process ID) old priority 10, new priority -10
查看内存使用情况:
# free -m
total used free shared buffers cached
Mem: 483 308 174 4 0 127
-/+ buffers/cache: 180 302
Swap: 1999 0 1999
查看CPU使用情况:
# uptime
01:50:15 up 2:19, 2 users, load average: 0.01, 0.02, 0.05
动态收集cpu占用信息:
# mpstat 2 3
Linux 3.10.0-123.el7.x86_64 (server.bj.com) 11/05/2015_x86_64_ (1 CPU)
01:51:16 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:51:18 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
01:51:20 AM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
01:51:22 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.17 0.00 0.00 0.00 0.00 0.00 0.00 99.83
动态收集内存使用信息:
# vmstat 2 3
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 174940 1000 130352 0 0 18 1 26 51 0 0 99 0 0
1 0 0 174916 1000 130352 0 0 0 1 16 34 0 0 100 0 0
1 0 0 174916 1000 130352 0 0 0 0 19 29 0 0 100 0 0
# iostat 1 1
Linux 3.10.0-123.el7.x86_64 (server.bj.com) 11/05/2015_x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.11 0.00 0.25 0.33 0.00 99.31
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
fd0 0.00 0.00 0.00 8 0
sda 0.89 16.55 1.10 148886 9861
sdb 0.06 0.24 0.00 2149 4
sdc 0.03 0.12 0.00 1044 0
scd0 0.00 0.01 0.00 48 0
dm-0 0.02 0.06 0.00 565 4
控制进程的运行方式
重要的信号 :
1:signup 不重启进程重新读取其配置文件,使新配置生效
# service named reload
2:signint ctrl+c中止 interupt
9:signkill 强制终止程序
15:signterm 终止程序,默认信号
终止进程:
# kill [-9] PID
同时终止多个同名的进程:
# killall httpd
# pkill httpd
进程启动的方式:
1、在后台启动程序
# cp /mnt/Packages/* /software &
2、查看后台的程序
# jobs -l
[1]+ 3756 Stopped (tty input) cp -i /mnt/Packages/* /software/
[2]- 3769 Running cp -i /mnt/Packages/* /software/ &
3、将正在运行的程序放入后台暂停运行
ctrl + z
4、将后台任务调回前台继续运行
# fg 任务编号(1或2)
5、将后台暂停运行的任务继续在后台运行
# bg 任务编号
计划任务
一次性计划任务
周期性计划任务
一次性计划任务
前提条件:atd服务必须运行
# systemctl is-active atd
active
制订一次性计划任务
# at 时间
>command
>command
按ctrl+d提交任务
查看一次性计划任务
# atq
删除一次性计划任务
# atrm 任务编号
时间写法:
绝对时间:
# at 18:34 hh:mm
如果该时间已经过期,任务会在明天的相同时间执行
# at 18:34 2016-7-8 hh:mm yyyy-mm-dd
# at 23:30 today
# at 23:30 tomorrow
# at midnight (午夜)
# at teatime (下午4:00)
# at noon (中午)
12小时制时间:
# at 7:08AM
# at 8:00PM
# at 3:05PM 2015-7-8
# at 2:03PM March 17 2015
相对时间:
now + 数字 时间单位
时间单位:
minutes, hours , days, weeks
示例:5分钟后,在/tmp下创建目录caiwu
# at now +5minutes
at> mkdir /tmp/caiwu
at> <EOT>
job 2 at Thu Nov 5 03:16:00 2015
周期性计划任务
前提:crond服务必须运行
# systemctl is-active crond
active
制定周期性计划任务
# crontab -e
时间写法: (-,/)
分 时 日 月 周
30 23 * * * 每天的23:30
0 8 * * 4 每周四的早上八点
0 8-10 * * * 每天的8--10点
0 13,15,17 * * * 每天的下午1、3、5点
*/5 * * * * 每5分钟
操作:
1、命令全路径
2、只能写一条命令(shell脚本)
编写脚本:
1)新建文件 .sh
2)编写
3)为文件添加执行权限
示例: 每天晚上10:00,分别显示cpu负载、内存使用情况及硬盘容量使用情况
1、编写脚本,分别显示cpu负载、内存使用情况及硬盘容量使用情况
# vim info.sh
#!/bin/bash
echo '============cpu info============'
uptime
echo '============memory info========='
free -m
echo '============disk info=========='
df -hT
2、编写计划任务,执行该脚本
# crontab -e
0 10 * * * /usr/bin/bash ~/info.sh
注意:
%在计划任务中表示结束符的意思,因此需要使用转义 \%
查看用户的计划任务
# crontab -l [ -u username ]
*/1 * * * * /usr/bin/mkdir /`date +\%Y-\%m-\%d`
删除计划任务
# crontab -r
命令引用 :
1、反引号``
# tar czf /tmp/`date +%F-%T`.tar.gz /home/
2、$()
# tar czf /tmp/$(date +%F-%T).tar.gz /home/
为安全性考虑,建立编辑/etc/crontab制订计划任务!!!!!(只能root使用,并指定user)
0 0
- 任务管理RHCE-Day5
- 软件管理--RHCE-Day3
- 磁盘管理RHCE-Day4
- rhce
- RHCE
- day5
- day5
- day5
- Day5
- DAY5
- Day5
- DAY5:
- day5
- DAY5
- day5
- Day5
- day5
- day5
- 人见人爱A^B之解题思路
- php面试题
- 既使用maven编译,又使用lib下的Jar包
- ZOJ 2319 (二维的LIS)
- 约瑟夫问题
- 任务管理RHCE-Day5
- 【深入Java虚拟机】之三:类初始化
- C/C++读写BMP文件
- L2-020. 功夫传人
- CodeIgniter首页或尾页没有出现的原因
- 扫描某个包下所有的类,输出所有使用了特定注解的类的注解值
- 解决Dynamic Web Module 3.1 requires Java 1.7 or newer
- HTML5第一个项目:HelloWorld!
- tar详解