由atd服务提供,at指令所产生的的要运做的工做都以文本文件的方式写入 /var/spool/at/目录内,该工做便能等待at的这个服务取用与执行了。shell
权限限制相关文件执行流程: 1. /etc/at.allow, 写入改文件的使用者才能使用该命令; 2. /etc/at.deny, 若是/etc/at.allow不存在时才查找该文件,写在该文件的使用者不能使用at,其余均可以使用; 3. 若是俩文件都不存在,则只有root可使用。
at [-mldv] TIME at -c 工做号码 选项参数: -m: 当at的工做完成后,即便没有输出信息,也会email通知使用者工做已完成; -l: 至关于atq,列出目前系统上全部该用户的at排程; -d: 至关于atrm,能够取消一个在at排程中的工做; -v: 可使用较明显的时间格式栏列出排程任务表; -c: 能够列出后面接的该项工做的实际指令内容。 TIME: 时间格式。 HH:MM [YYYY-MM-DD]: 指定实际时间执行; HH:MM[am|pm] [Month] [Date]: 例如04pm July 30; +number [minutes|hours|days|weeks]: 在某个时间点『再加几个时间后』执行,例如now + 5minutes。 其余找man吧,比较简单。
简单测试
vim
在图/var/spool/at中能够看到生成的文件,这个就是咱们的工做排程,能够打开文件看,里面的内容最下部其实就是咱们输入的可执行命令.
由crond服务提供,crontab指令所产生的的要运做的工做都以文本文件的方式写入 /var/spool/cron/目录内,每一个用户独立一个文件。bash
权限限制相关文件执行流程: 1. /etc/cron.allow, 写入改文件的使用者才能使用该命令; 2. /etc/cron.deny, 若是/etc/cron.allow不存在时才查找该文件,写在该文件的使用者不能使用at,其余均可以使用;
crontab [-u username] [-ler] 选项参数: -u: 只有root可使用该参数,做用是帮其余使用者创建crontab工做排程; -e: 编辑crontab的工做内容; -l: 查阅crontab的工做内容; -r: 移除全部的crontab工做内容,若仅要移除一项,请用-e。 内容结构: cron表达式 指令
crontab保存的工做排程实际上就是 /var/spool/cron/ 目录中以用户名为文件名的文件,咱们执行的-e实际上就是调用vim编辑这个文件而已,可是使用-e时crontab会检查咱们的语法是否有误,图中表示每隔10分钟给root发一封邮件,邮件这里就不查看了。
cron服务的最低侦测限制是『分钟』,每隔1分钟cron就回去读取一次/etc/crontab和、var/spool/cron里面的数据内容。
crontab -e是针对使用者设计的,通常系统性的任务,该怎么搞呢?这个时候就须要配置文件 /etc/crontab(这个是配置文件哦,可执行文件也是这个名字,可是实在/bin/crontab),从图中能够看出,其实这个文件跟/var/spool/cron/中的文件没什么太大区别,只是中间多了个user-name而已。 上面的PATH指搜索可执行文件的位置,MAILTO指当该文件中的例行工做指令发生错误时,将stdout和stderr发送给root用户。
cron服务读取配置文件有如下三个 /etc/crontab, /etc/cron.d/*, /var/spool/cron/* /etc/cron.d/中的文件格式个/etc/crontab格式同样,这个文件中的是cron的可执行脚本, 也就是说,自行开发的软件,写个脚本放在该目录下,就能够定时执行了。
总结:网络
常驻在内存当中的进程一般都是负责一些系统所提供的的功能以服务用户各项任务,这些常驻程序就会被咱们称为: 服务(daemon)。例如crond,atd等,服务这种通常以d结尾表示daemon。
指令后面加上&,可让该条指令在后台运行。socket
概念: 能够出现提示字符让咱们操做的环境称为前景(foreground),其余工做可让咱们让如背景(background)去暂停或运做,放入背景的工做是不可使用ctrl+c来终止的。 job control注意: 这些工做所触发的进程必须来自你shell的子进程(只管理本身的bash); 前景:你能够控制与下达指令的环境称为前景的工做(foreground); 背景:能够自行运做的工做,你没法使用ctrl+c终止他,可使用bg/fg呼叫该工做到前景; 背景中执行的程序不能等待terminal/shell的输入(input)。
图中使用&将指令放入背景执行,jobs能够看到有job正在运行,前面的[1]表明工做号码。
tcp
将目前的工做丢到背景中『暂停』:ctrl+z
函数
jobs [-lrs] 选项参数: -l: 除了列出job number与指令串以外,同时列出PID号码; -r: 仅列出正在背景run的工做; -s: 仅列出正在背景中暂停(stop)的工做。
fg %jobnumber %jobnumber: jobnumber为工做号码,%可省略。
bg %jobnumber: 咱们把前景的工做放到背景的时候用的是ctrl+z,这个时候该工做时stop的,咱们使用bg指令让其在背景变成running,以下图。
nestat -[atunlp] -a: 将目前系统上全部的联机、监听、socket数据都列出来; -t: 列出tcp网络封包数据; -u: 列出udp网络封包数据; -n: 不以进程的服务名称,以端口号来显示; -l: 列出目前正在网络监听(listener)的服务; -p: 列出该网络服务的进程PID。
系统在开机的时候,核心回去侦测系统的硬件,你的某些硬件有没有被捕捉到,就与侦测有关。dmesg能够捉出来这些侦测信息。
fuser [-umv] [-k [-i] [-signal]] file/dir 选项参数: -u: 除了进程的PID以外,同时列出该进程的拥有者; -m: 后面接的档名会主动的上提到该文件系统的最顶层,对unmout不成功颇有效; -v: 能够列出每一个文件与进程还有指令的完整相关性; -k: 找出使用该文件/目录的PID,并试图以sigkill这个讯号给与PID; -i: 必须与-k配合,在删除PID以前会先询问使用者的意愿; -signal: 列如-1,-15等等,不加默认为SIGKILL(-9)哦!查看有哪些signal用man signal
如上图:上图说当前目录(.)下有4个PID,9086,10009,10677,13882的进程,该进程属于root且指令分别为bash,bash,mail,tar; access表明的意思以下: c: 此进程在当前目录下(非次目录); e: 可被出发为执行状态; f: 是一个被开启的文件; r: 表明顶层目录; F: 文件被开启,在等待回应; m: 可能为分享的动态函数库。
列出被进程所开启的文件档名测试
lsof [-aUu] [+d] 选项与参数: -a: 多项数据须要同时成立才显示出结果; -U: 仅列出Unix like系统的socket文件类型; -u: 后面接username,列出该使用者相关进程所开启的文件; +d: 后面接目录,即找出某个目录底下已经被开启的文件。
查找root的bash这只程序所开启的文件
设计
找出某只正在执行的程序的PID3d
pidof [-sx] program_name 选项参数: -s: 仅列出一个PID而不列出全部PID; -x: 同时列出该program name可能的PPID那个进程的PID。
over...