进程与计划任务详解

时光匆匆,王老师代两周的课就这样结束了,刚适应王老师的讲课风格。王老师讲课进度非常快,能按照自己的思路把上课的内容每一个地方都贯彻下去。我觉得这样是非常好的,但是笔记方面还是南老师做的详细,各有各的风格吧。今天我们将要给大家介绍进程与计划任务,对我们的以后工作有非常大的帮助,因为我们以后工作尽可能的都自动化管理,不需要我们每天都去敲那些命令。所以我相信今天的内容对大家还是有用的。

一、进程的优先级

系统优先级:0——139 数字越小优先级越高(centos4、5)各有140个运行队和过期队

0——99  数字越小优先级越高(centos6、7)

实时优先级:99——0  数字越大优先级越高

nice优先级:-20——19 数字越小优先级越高,对应系统的优先级100——139

用图让大家看的更家清晰:1

二、进程的类型和状态

进程的类型:守护进程(与终端无关)

前台进程(与终端有关)

进程的状态:运行态running

就绪态ready

睡眠状态:可中断interruptable   不可中断uninterruptable

停止状态:stopped(暂停与内存,但不会被调动,除非手动启动)

僵死状态zombie(结束进程,父进程结束前,子进程不关闭)建议有了就重启服务

三、ps命令

UNIX风格 短格式如-a

BSD风格  格式如:a

GUN风格  格式如: – -help

a 选项包括所有终端中的进程

x 选项包括不链接终端的进程

u 选项显示进程所有者的信息

f 选项显示进程的父进程

k|–sort 属性 对属性排序

o 属性… 选项显示定制的信

user显示执行命令的用户

ruser 显示真正的执行用户

常用格式:

ps -C 脚本    有利于监控脚本

ps -ef显示所有进程完整格式程序信息

ps -eFH 显示更完整的以进程层级格式显示进程相关信息

ps aux 显示所有进程完整信息

例如:1、ps axo pid,cmd,%cpu,%mem k%mem 只显示pid,cmd,%cpu,%mem然后以内存(%mem)进行排序

2

四、nice

更改优先级:renice #  pid

3

可以直接指定优先级:nice -n 10 ping 127.0.0.1

4

五、pgrep(搜索进程)

-u user    显示生效者

-U user    查看真正发起运行命令者

-t pts/0   查看指定终端相关的进程

-l:        显示进程名

-a:        显示完整格式的进程名 (支持正则表达式)

-P pid:     显示指定进程的子进程

六、pidof (可以查看一个进程对应的编号)

可以监控一个服务是否正常开启,如果没有开启就将其开启

例如:pidof httpd &> /dev/null || systemctl restart httpd

5

七、uptime

显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)如果是双核CPU,那么如果数字接近6,说明机器已经被成分使用

7

八、top、htop(动态监控进程)

6

8

分别代表:us 用户空间 sy 系统空间 ni 优先级优化空间 id 空闲空间 wa等待空间 hi硬中断   si 软中断  st被偷走的时间片

排序:  P:以占据的CPU百分比排序

M:占据内存百分比排序

T:累积占据CPU时长排序

首部信息l:对最上面的一行隐藏或者不隐藏

t:tasks及cpu信息

1(数字1):cpu分别显示

m:memory信息,(内存信息)

q:退出

s:修改刷新时间间隔

k:终止指定进程

W:保存文件

-d #:指定刷新时间间隔,默认为3秒

-b:全部显示所有进程

-n #:刷新多少次后退出

htop(动态查看进程,yum仓库有epel源才能安装)

9

-d #: 指定延迟时间;

-u UserName: 仅显示指定用户的进程

-s COLUME: 以指定字段进行排序

子命令: s: 跟踪选定进程的系统调用

l: 显示选定进程打开的文件列表

a:将选定的进程绑定至某指定CPU核心

t: 显示进程树

htop 相对于 top有颜色,不过看大家自己的喜欢风格了。

九、内存工具

1、vmstat

10

r可运行

b处于不可中断睡眠态的进程

swpd 交换内存的使用总量

free 空闲物理内存总量

buffer 用于缓冲的内存总量

cache 用于缓存的内存总量

si 从磁盘交换进内存的数据速率

so 从内存到磁盘的数据速率

bi 从块设备读入数据到系统的速率

bo 保存数据到块设备的速率

in 中断速率

cs 进程切换速率

us 用户空间

sy 系统空间

id 空闲空间

wa 等待空间

st 被虚拟机偷走的时间片

vmstat -s 显示内存的统计数据

2、iostat 显示CPU和设备IO信息

3、pmap(显示进程对应的内存映射,有利于监控内存是否只占用不释放)

pmap 进程号    查看某个进程的内存状态

pmap -x 1    显示信息更加详细

4、内存监控工具

glances(需要配置yum仓库中的epel源才能安装)

-b: 以Byte为单位显示网卡数据速率

-d: 关闭磁盘I/O模块

-f /path/to/somefile: 设定输入文件位置

-o {HTML|CSV}:输出格式

-m: 禁用mount模块

-n: 禁用网络模块

-t #: 延迟时间间隔

-1:每个CPU的相关数据单独显

glances主要功能 远程服务器监控

服务器模式:glances -s -B ip地址  (ip地址指明监听的本机哪个地址)

客户端模式: glances -c ip地址   (IP地址指明要连入的服务器段地址)

5、dstat(系统资源统计)

-c: 显示cpu相关信息

-C #,#,…,total

-d: 显示disk相关信息

-D total,sda,sdb,…

-g:显示page相关统计数据

-m: 显示memory相关统计数据

-n: 显示network相关统计数据

-p: 显示process相关统计数据

-r: 显示io请求相关的统计数据

-s: 显示swapped相关的统计数

–top-cpu:显示最占用CPU的进程 

–top-io: 显示最占用io的进程 

–top-mem: 显示最占用内存的进程 

–top-latency: 显示延迟最大的进程

十、kill(给进程发送控制信号)进程管理工具

一些常见的选项:

1 SIGHUP: 无须关闭进程而让其重读配置文件

2 SIGINT: 中止正在运行的进程;相当于Ctrl+c

3 SIGQUIT:相当于ctrl+\

9 SIGKILL: 强制杀死正在运行的进程 (有些是顽强的进程,杀不死,第一个进程杀不死,但是会影响系统)

15 SIGTERM:终止正在运行的进程 (默认是15)

18 SIGCONT:继续运行

19 SIGSTOP:后台休眠

kill -l 查看所有信号

kill -0 检查某个进程是否正常工作,正常工作是0,非正常工作是非0

killall -9 进程名称      按名称杀死所有的进程

pkill  按模式给进程发信号和pgrep的一些用法一样

-u uid:   生效者

-U uid    真正发起运行命令者

-P pid:   显示指定进程的子进程

十一、作业管理(前台执行或者后台执行)

1、前台执行的在后面加个&的就可以放后台执行  例如ping 172.17.0.1 &

2、前台和后台一些转换:

jobs 查看作业编号

fg 作业号     将后台执行的放到前台工作

bg 作业号     将后台休眠的启动起来放在后台运行

killall  -18 进程名    将后台休眠的使其在后台运行

killall  -19 进程名    将后台运行的使其在后台休眠

kill %作业编号     将其杀掉

3、让其在后端运行,并且不显示在终端:

nohup ping 127.0.0.1 &> /dev/null &

输入screen后 然后进入一个终端,然后执行命令后退出,该命令会放在后台运行

screen -ls  查看screen 会话

screen -r   回到screen终端

4、并行运行:(提高效率)

方法1:vim all.sh

f1.sh &

f2.sh &

方法2:(f1.sh&);(f2.sh&);(f3.sh)

方法3:{  f1.sh&   f2.sh&   f3.sh&  }

例如:{ ping -c 3 127.1 ; ping 127.2 ; }& { ping -c 3 127.3 ; ping 127.4 ; }&先执行1,3 后执行2,4

11

十二、at(在未来的某一时间执行一次任务,一但设定了放在/var/spool/at里面)

at [选项] TIME

-V 显示版本信息

-l 列出指定队列中等待运行的作业

-d 删除制定的作业

-c 查看具体作业任务

-f 跟上文件    从指定的文件中读取任务

-m 当任务被完成之后,将给用户发送邮件,即使没有标准输出

at的时间定义格式:HH:MM 、HH:MM YYYY-MM-DD、HH:MM[am|pm] [Month] [Date] 、HH:MM[am|pm] + number [minutes|hours|days|weeks]

白名单:/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令

黑名单:/etc/at.deny  默认存在,拒绝里面的用户执行at命令

如果两个文件都不存在,只有root可以执行at命令

12

十三、crond(周期性任务计划)

(1)系统维护作业放在:/etc/crontab中 只能管理员才能用

例如:*/5 * * * * root tar cvf /app/etc.tar.xz /etc/ &> /dev/null

每5分钟以root的身份执行打包命令

例如:晚上9点10分运行echo命令

10 21 * * * root /bin/echo “Howdy!”

例如:每3小时echo和wall命令

0 */3 * * * root /bin/echo “howdy”;/usr/bin/wall “welcome to Magedu!”

时间的表示法:

1、特定值

2、* 每。。

3、离散取值 #,#

4、连续取值#-#

5、步长 /#

6、@reboot=========== Run once after reboot.

7、@yearly===========0 0 1 1 *

8、@annually===========0 0 1 1 *

9、@monthly===========0 0 1 * *

10、@weekly===========0 0 * * 0

11、@daily=========== 0 0 * * *

12、@hourly===========0 * * * *

但是要注意一点:对于cron任务来讲,%有特殊用途;如果在命令中要使用%, 则需要转义,将%放置于单引号中,则可不用转义

(2)普通用户任务:crontab

-e 编辑任务(默认是以vi打开,想要带颜色需要在/etc/profile.d/里面创建一个文件写入变量 export EDITOR=vim就能以vim方式打开)

-l 列出所有任务

-r 移除所有任务

-u user 仅root可以运行,指定用户管理任务

-i -r 交互式删除,问一下是否要删除

管理员可以在/var/spool/cron/里面看到每个用户的计划任务,或者crontab -l -u user

如果以后不小心删除计划任务了,可以查看日志/var/log/cron,恢复计划任务

如何每几秒执行一次:需要用到sleep   usleep(微妙执行)

例如:* * * * * for min in 0 1 2; do echo “hi”; sleep 20;

以上就是我对进程和计划任务的全部总结,希望能够帮助到大家!!!

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86670

(0)
In summerIn summer
上一篇 2017-09-09 16:06
下一篇 2017-09-09

相关推荐

  • 马哥教育网络班21期+第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2016-07-07
  • linux启动流程+任务计划

    20160907 一、作业 1、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd” 2、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中 二、博客 1、centos5,6启动流程 开机——POST…

    Linux干货 2016-09-08
  • 最简单的Linux系统——更加深入了解Linux启动过程

    自制一个最简单的Linux: 1、有一个新的磁盘,并创建分区 2、挂载分区,创建目录 3、拷贝内核文件 4、创建MBR和grub.conf文件 5、创建/etc/fstab文件,设置开机自动挂载 6、拷贝一个bash程序 7、卸载分区,以新磁盘重启系统

    Linux干货 2016-09-11
  • 8月8日作业

    4、如何设置tab缩进为4个字符?    编辑用户工作目录下.vimrc文件,使vim基础设置对个人用户生效,或者编辑/etc/vimrc文件,使配置对系统全部    用户生效。    set tabstop=4 5、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/…

    Linux干货 2016-08-12
  • 马哥linux0805作业内容

    在/date/testdir/里穿件的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其他用户(不属于g1,g2,g3)不能访问这个文件夹 设置user1,使之新建文件权限为rw——- 3.设置/testdir/f1的权限,使user1用户不可以读写执行,g1组可以…

    Linux干货 2016-08-11
  • Linux之bash shell脚本编程入门篇(二)以及文件查找和压缩的使用

    bash shell脚本编程入门篇(二) read命令的使用 作用:     使用read来把输入值分配给一个或多个shell变量:         -p指定要显示的提示      &nbs…

    Linux干货 2016-08-18