进程与计划任务

PID 进程号,用来标记各个进程;CentOS6中起始的第一个进程为init
7中为systemd

进程优先级:

系统优先级:数字越小,优先级越高

0-139(4,5中)

各有140个运行队列和过期队列

0-98,99(6中)

实时优先级:99-0:值越大优先级越高

nice值:-2019,对应系统优先级100-13999

进程状态:

运行:running;就绪:ready; 睡眠:可中断——interruotable

不可中断——uninterruptable

停止:stopped,暂停与内存,但不会被调度,除非手动启动;僵死:zombie,结束进程,父进程结束前,子进程不关闭

Linux内核:抢占式多任务(多任务同时进行,交叉运行)

进程类型:

守护进程:daemon,在系统引导过程中启动的进程,和终端无关进程

前端进程:跟终端相关,通过终端启动的进程

注意:两者之间可以相互转化

 

pstree -p(能查看编号) {}的为线程(thread)线程之间共享资源

ps 用来查看进程信息

支持三种选项:

UNIX选项 如 -A -e

BSD选项 a

GUN –help

默认显示当前终端中的进程:

a 包含所有终端中的进程

x 包括不链接终端的进程

u 显示进程所有者的信息

f 显示进程的父进程

o 属性显示定制的信息 —— xao pid|%cpu|%mem|euid|ruid|ninice值)|pripriority|psrprocessorCPU编号)|rtprio(实时优先级)

aux(常用)

 

进程优先级

nice 命令

nice [option] [COMMAND [ARG]…]

nice -n 10 command

nice –6 command 赋予-6优先级

     renice命令

renice [-n] priority pid …

renice -9 pid 赋予-9优先级

搜索进程

预定义模式:pgrep

[option] pattern

-u uid : 生效者

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

-t terminal :与指定终端相关的进程

-l :显示进程名

-a :显示完整格式的进程名

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

pidof command 直接查看进程号

 

uptime 显示当前系统时间、运行时间、几个用户登录、平均负载(1510分钟的负载,一般不超过1

top 相当于windows的任务管理器,实时监控

-b 全部显示

-d #:指定刷新时间间隔

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

首部信息的显示:

uptime 信息 —— l

tasks及CPU信息 —— t

CPU信息单独显示 —— 1

us 用户空间 sy 内核空间 ni 调整nice时间 id 空闲 wa 等待IO时间 hi 硬中断 si 软中断 st 虚拟机偷走的时间

k 终止进程 由自己输入想要终止的进程的进程号

w 将信息存到指定文件中——root下的.toprc

s 指定刷新时间间隔

 

htop 命令 更加方便

-d #:指定延迟时间

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

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

子命令

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

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

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

t:显示进程树

 

 

vmstat命令:虚拟内存信息 vmstat 1 10 1s刷新 刷新10次停止

si :相对于内存来说的,从磁盘读数据交换到内存的数据速率

so :相对于内存来说的,从内存交换到磁盘的速率 ,内存不够时调用swap

-s :显示统计信息

 

iostat:统计CPU和设备IO信息

pmap: 进程对应的内存映射

-x:显示详细格式的信息

另外一种实现:cat /proc/PID/maps

 

glances C/S模式下运行glances命令

服务器模式:

glances -s -B
IPADDR

IPADDR:指明监听的本机的哪个地址

客户端模式:

glances -c IPADDR

IPADDR:要连入的服务器端地址

dstat :系统资源统计

-c:显示CPU相关信息

-C#,#total

-d:显示disk相关信息

-D total,sdasdb

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

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

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

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

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

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

 

kill命令

向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略),不区分大小写

显示当前系统可用信号: kill -l , trap -l

常用信号:man 7
signal

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

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

3)SIGQUIT:相当于ctrl+\

9)SIGKILL:强制杀死正在进行的进程

15)SIGTERM:终止正在进行的进程

18)SIGCONT:继续运行

19)SIGSTOP:后台休眠

指定信号的方法:

1)信号的数字标识:1,2,9 kill -1 pid

2)信号完整名称:例如——SIGHUP

3)信号的简写名称:HUP

PIDkill [-SIGNAL] pid …

kill -n SIGNAL pid ; kill -s SIGNAL pid

按名称 : killall [-sigal] comm…

按模式:pkill [options] pattern

-SIGNAL

-u uid : 生效者

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

-t terminal : 与指定终端相关的进程

-l :显示进程名

-a : 显示完整格式的进程名

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

 

 

 

 

后台运行命令:

运行中的作业 : Ctrl +z

尚未启动的作业:

COMMAND & ;

后台作业虽然被送往后台运行,但其仍然与终端相关;退出终端,将关闭后台作业。如果希望送往后台后,剥离与终端的关系:

nohup COMMAND
&

screen;COMMAND

查看当前终端所有作业:

jobs ——可以看到JOB_NUM

作业控制 :

fg JOB_NUM:把指定的后台作业调回前台

bg JOB_NUM :让送往后台的作业在后台继续运行

kill %JOB_NUM :终止指定的作业

同时运行多个进程,提高效率

方法1

vim all.sh

f1.sh &

f2.sh &

f3.sh &

方法2

f1.sh &;(f2.sh &);(f3.sh &)

方法3

{f1.sh& f2.sh& f3.sh&}

 

 

at 任务

7——systemctl is-enabled atd 查看at服务是否开机自动启动

systemctl status
atd 目前是否处于启动状态

6——chkconfig –list atd 可用来查看不同模式下的状态

service atd status
查看目前状态

at 时间

at> 输入指定命令

at>……

at> Ctrl +d 退出

ll /app 下是否生成了at.log文件
执行成功

输入的指令的标准输出不会在界面输出,会以邮件的方式通知,但是广播不会发送邮件,直接广播通知

会生成下图中的绿色文件,退出终端、重启机器,计划任务依旧会存在,执行完成后,删除文件

进程与计划任务

常用选项:

-V:显示版本信息

-l:列出指定列队中等待运行的作业;相当于atq

-d #(atq 查看的编号或者at -l):删除指定的作业;相当于atrm

-c:查看具体作业任务

-f /path/from/somefile
:从指定的文件中读取任务

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

注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

time:定义出什么时候进行at这项任务

HH:MM(小时:分钟)

noon , midnight teatime4pm),tomorrow

now+#{minutes,hoursdaysweeks}

执行方式:

1、交互式 2、输入重定向 3at -f 文件

/etc/at.{allow,deny}控制用户是否能执行at任务

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

黑名单:/etc/at.deny 默认存在,拒绝改文件中的用户执行at命令,而没有在at.deny文件中的使用者则可以执行

at.allow :优先级高,有此文件,deny无效,只有此文件里的用户可以使用at

at.deny:优先级低

如果都没有,普通用户全都拒绝使用at


周期性执行任务 cron计划周期性执行的任务提交给crond,到指定时间会自动运行

相关的你程序包:

cronie:主程序包,提供crond守护进程及相关辅助工具

cronie-anacron:cronie的补充程序,用于监控cronie任务执行状况,如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务

crontabs:包含CentOS提供系统维护服务

系统cron任务:系统维护作业

/etc/crontab

man 5 crontab 查看帮助

用户cron任务:

crontab命令

日志:/var/log/cron

vim /etc/crontab (系统计划任务)

进程与计划任务

每个不同时间之间 空格隔开彼此

时间表示法

1、特定值

给定时间点有效取值范围内的值

2、* 给定时间点上有效取值范围内的所有值,表示…”

3、离散取值: # # #

4、连续取值 : #—#

5、在指定时间范围上,定义步长

/# :#即为步长 例如:在分钟 */2 表示为每2分钟

日期与星期:

* * 10,20 * 0,6 之间的关系是或的关系,即每月的10号,20号,或者周六周日执行,且的关系时,可以用脚本来过滤星期

* * 10,20 * * 此为每月的10号和20

关键字:

@reboot 重启之后执行

@yearly 0 0 1 1 *

@annually 0 0 1 1 *

@monthly 0 0 1 * *

@weekly 0 0 * * 0

@daily 0 0 * * *

@hourly 0 * * * *

示例:每3小时echowall命令

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

 

注意:运行结果的标准输出和错误以邮件通知各相关用户

1、COMMAND > /dev/null ;2、COMMAND
&> /dev/null(
或者 > /dev/null 2>&1)

对于cron任务来说,%有特殊用途;如果在命令中要使用%,则需要转义,将%放置于单引号中,则可不用转义

系统的计划任务:

/etc/crontab

/etc/cron.d/ 配置文件

/etc/cron.hourly/ 脚本

/etc/cron.daily/ 脚本

/etc/cron.weekly/ 脚本

/etc/cron.monthly/ 脚本

普通用户的计划命令存放位置:

/var/spool/cron/

 

anacron系统:

/etc/anacrontab 配置文件,负责执行/etc/cron.daily /etc/cron.weekly/
/etc/cron.monthly
中的系统任务

字段1、如果在这些日子里没有运行这些任务…..

字段2、在重新引导后等待这么多分钟后运行它

字段3、任务识别器,在日志文件中识别

字段4、要执行的任务

/etc/cron.hourly/0anacron执行

当执行任务时,更新/var/spool/anacron/cron.daily文件的时间戳

管理临时文件:

CentOS6 使用/etc/cron.daily/tmpwatch 定时清除临时文件

CentOS7 使用systemd-tmpfiles-setuo服务实现

配置文件:

/etc/tmpfiles.d/*.conf

/run/tmpfiles.d/*.conf

/usr/lib/tmpfiles/*.conf

/usr/lib/tmpfiles.d/tmp.conf

d /tmp 1777 root root 10d

d /var/tmp 1777 root root 30d

命令:

systemd-tmpfiles-clean|remove|create configfile

crontab 命令定义,每个用户都有专用的cron任务文件:

/var/spool/cron/USERNAME

crontab 命令;

-l :列出所有任务;

-r:移除所有任务

-i:同-r一同使用,以交互式模式移除指定任务

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

创建、编辑计划任务 : crontab -e -u wang wang用户的身份执行,不谢就以自身执行)

不用写用户,直接写时间和命令

e EDITOR 默认使用vi 可以用export EDITOR=vim 则编辑的时候为vim编辑器

vipw 相当于 vi /etc/passwd

控制用户执行计划任务:

/etc/cron.{allow,deny}
之前已经设置的某用户的任务,将用户放在deny中,该任务依旧执行

若是不小心删除,恢复 可在 /etc/log/cron的日志中查看 执行的命令

任务执行实现秒级:

* * * * * for min
in 0 1 2 ; do echo “hi” ; sleep 20 ; done 实现每20s执行一次

sleep命令:

sleep # s/m/h/d (秒/分钟/小时/天)
默认为s

 

cat sysstat 系统自定义的生成的日志

 

 

 

原创文章,作者:Immortals、zcy,如若转载,请注明出处:http://www.178linux.com/75574

(0)
Immortals、zcyImmortals、zcy
上一篇 2017-05-14
下一篇 2017-05-14

相关推荐

  • Linux基础知识(三)

     本文的主要内容是:  1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  2、取出最后登录到当前系统的用户的相关信息。  3、取出当前系统上被用户当作其默认shell的最多的那个shell。  4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全…

    Linux干货 2016-10-03
  • linux基础知识:文件管理,bash特性

    本文简要介绍了文件类的管理命令,包括mv、cp、mkdir等等。还介绍了一些万用字符的用法。

    2017-12-12
  • Linux新增磁盘分区

    磁盘的分区        主分区与扩展分区最多可以有4个(分区表64字节,每分区占16字节);        扩展分区最多只能有一个;        逻辑分区是由扩展分区持续分出来的分区;       &nbs…

    Linux干货 2016-05-29
  • 磁盘管理

    设备文件 I/O Ports: I/O 设备地址 一切皆文件: open(), read(), write(), close() 设备类型: 块设备:block ,存取单位“块”,磁盘 [root@localhost ~]# ll /dev/ brw-rw—-. 1 root disk 253, 0 Apr 29 03:53 dm-0 块设备 brw-r…

    2017-04-28
  • 获取Linux命令帮助信息及man的用法

    经常在使用Linux命令时不清楚命令都有哪些参数,命令和参数的具体含义,我们根据命令的不同来源大致可以分为内部命令和外部命令。 内部命令帮助信息的获取:command help 那我不知道这个命令是不是内部命令,使用type command来确认是一个内部的还是一个外部的命令 外部命令帮助信息的获取:常用的有–help,man,info,还有一些…

    Linux干货 2016-09-17
  • N25期–第十四周作业

    系统的INPUT和OUTPUT默认策略为DROP; # iptables -P INPUT DROP # iptables -P OUTPUT DROP 1、 限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机;   #iptables…

    Linux干货 2017-04-10