进程与计划任务

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进程管理

    linux系统进程查看及管理工具 对于服务器来说重要的IO 设备磁盘网络 pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall….. pstree命令: pstree-display …

    Linux干货 2016-09-09
  • N25-第一周 总结

    linux bassic The first week of blogging 概要 计算机与操作系统、linux发行版及他们之间联系与区别、Linux的哲学思想、linux系统上命令使用格式及基础命令介绍、linux命令帮助说明、FHS 一、计算机与操作系统 什么是计算机? 电子计算机(computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数…

    Linux干货 2016-12-04
  • 27期第一周学习小结

    第一周 1. 描述计算机的组成及其功能。 计算机主要组成部分以下五种:运算器,控制器,存储器,输入设备,输出设备。 运算器的功能是对数据进行算术运算与逻辑运算,就是对数据进行加工处理。 控制器的功能是调度二进制程序,数据,内存寻址,以及协调计算机输入设备和输出设备等各计算机部件之间的正常工作。 存储器的功能是存储二进制指令和数据。存储器是编址存储单元。 输入…

    Linux干货 2017-07-15
  • 浅谈技术管理(转载,讲的非常不错,技术和产品都值得一看)

      针对这些年旁观和经历过的技术产品场景,做一些个人的总结和判定,尽量不涉及争议性话题,比如对一个互联网公司而言,技术重要还是产品重要之类的,这种话题一扯开,各有道理,谁也别指望说服谁。     此外,加一个前缀,主要针对非技术领导者所面临的技术管理困境,在很多从传统企业转型或个人站转型的互联网企业里,这个问…

    Linux干货 2015-04-04
  • Centos 7 DNS配置及理论详解

    DNS是什么及BIND讲解内容 域名系统(英文:Domain Name System,缩写:DNS)是internet的一项服务。它作为将域名和IP地址相互映射服务,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。讲解内容:    DNS名称解析方…

    Linux干货 2016-04-25
  • 计算机入门

    Linux入门 与 计算机

    Linux干货 2018-02-07