定时任务&&进程

定时(计划)任务:未来的某事件点执行一次某次任务或者周期性的运行某个任务。执行结果会通过邮件的形式发送给用户
我们把定时任务分为以下两个:
定时任务:at batch
周期性任务:crontab

at命令

计划任务,在特定的时间执行某项工作,在特定的时间执行一次,需要安装at服务,apt-get install at

时间定义

at允许接受使用一套相当复杂的指定时间的方法

  1. 能够接受使用noon(中午)teatime(下午茶时间,一般下午四点)等比较模糊的词语来指定时间
  2. 能够接受当天的hh:mm(小时:分钟)式的时间指定
  3. 能够接受使用12小时计时制,即在时间后面加上 AM(上午) PM(下午) 例如: 8am 9pm
  4. 能够指定命令执行的具体日期 例如:2019-8-11 (年-月-日)2019/8/11(年/月/日)
  5. 能够使用相对计时法,指定格式为now +count time-unit,now是当前时间,time-units是时间单位,这里可以指minutes,hours,days,weeks。count是时间的数量。例如:now + 5 minutes 04pm+ 3 days
  6. 能够直接使用today(今天) tomorrow(明天)来指定完成命令的时间
语法结构
			at  选项    参数
				-q  列出任务
				-f  从文件中读取
				-l  列出任务
				-d  指定删除
				-v:列出已执行未删除的任务
				-V:版本号
				-c:查看作业内容
相关命令

at:在特定的时间执行一次性的任务
atq:列出用户的计划任务,如果是超级用户将列出所有用户的任务,结果的输出格式为:作业号,日期,小时,队列和用户名
atrm:根据Job number删除at任务
batch: 在系统负荷允许的情况下执行at任务,换言之,就是在系统空闲的情况下才执行at任务

示例

一分钟后创建一个test文件

[root@test1-6 ~]# at now +1 minutes
at> touch test
at> <EOT>

crond命令

crond服务安装

安装crontab:yum install crontabs

格式
		# .---------------- minute (0 - 59)
		# |  .------------- hour (0 - 23)
		# |  |  .---------- day of month (1 - 31)
		# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
		# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
		# |  |  |  |  |
		# *  *  *  *  * user-name command to be executed

minute:表示分钟, 可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

例如:
3 * * * * : 每小时的第3分钟执行一次;

3 4 * * 5 :每周5的4点3分执行一次;

5 6 7 * *:每月的7号的6点5分执行一次;

7 8 9 10 *:每年执行次;每年的10月9号8点7分执行一次;

9 8 * * 3,7:每周三和周日的八点九分执行一次;

0 8,20 * * 3,7:每周三和周日的8点和20点执行一次;

0 9-18 * * 1-5:每周一到周五的早九点到晚18点执行一次;

*/5 * * * * :每5分钟执行一次某任务;

定时任务规范
  1. 计划任务脚本指定存放位置,便于维护和定期备份
  2. 写定时任务前必须在前面写注释,包括添加计划任务的人,添加任务的时间,任务有效期,计划任务脚本的对象,脚本的作用,以及其他需要提醒其他注意的事项
  3. 执行的脚本前加上/bin/bash或者/bin/sh,脚本必须使用完整的绝对路径
  4. 定时任务,需要尽量避免标准输出和标准错误输出结尾加上>/dev/null 2>&1(计划任务的标准输出和标准错误输出都会给root用户以邮件,很容易撑满磁盘消耗磁盘inode)
  5. 能用命令完成的也要写在脚本里
  6. 在指定用户下执行相关的定时任务
  7. 制定标准的书写规范

进程:学习进程就得先知道程序。程序,是一组指令以及参数集合,按照相应的逻辑控制计算计完成特性任务。
进程就是运行的程序,程序是静态而进程则是动态。
操作系统以进程为单位分配系统资源,每个进程运行时是独立的, 具有独立的地址空间,运行状态。
多个程序独立运行,每一个程序就是一个进程。
进程又可被分为线程,一个进程中可有多个线程,一个线程只被一个进程拥有。线程无法独立运行,但每个线程都有程序的入口,执行序列,程序的出口,它必须组成进程才能被执行;
在linux中,每个进程,线程都有其独立的资源集。

pstree 进程树

查看进程之间的关系,可以看出子进程,父进程

参数p可以显示进程号(pid)

ps 查看进程


-a:显示所有进程
-u:显示用户为主的进程
-x:和au配合使用,显示完整信息

pgrep 查找进程信息

-l:同时显示进程名和pid
-o:匹配多个进程时,显示进程号最小的
-n:匹配多个进程时,显示进程号最大的

kill 杀死进程

kill -9 进程号 强制杀死,没提示信息
杀死前

杀死后

killall(杀死同名进程)


kill -l 列出已知信息

在这里插入图片描述

vmstat

监控工具

r:等待执行任务数
b:等待IO进程数
si,so若不等于0则表示内存不足
bi,bo大,读写速率慢
in:每秒中端数
cs:每秒上下文切换次数
us:用户进程执行消耗cpu
id:空闲时间(包括io等待时间)
wa:io等待时间
st:系统等待时间

lsof 列出当前系统打开文件


-u:显示uname或pid的进程情况
-c:显示以字母开头的文件
-p:列出pid的进程打开的文件
-d:根据文件描述,列出文件信息(FD)
+d:显示目录下被进程开启的文件
+D:递归显示该目录下的所有文件及子目录下的文件
-i:符合条件的进程信息
lsof+文件:查看谁在使用这个文件

进程的优先级

从0到139,共140级。
0—99,有效的实时优先级(系统自己调用,人为不能调整)值越小,优先级越高。
100—139,非有效的实时优先级,静态优先级,值越小,优先级越高,可以调整nice来调整优先级
nice 相对优先级(-20—19)值越小,优先级越高;默认是0

调整nice值:top—输入r——enter— 输入PID——enter;——输入nice值,——enter

输入PID

输入nice值
修改成功

作业

将作业放到后台运行

jobs查看后台作业与终端,不同终端的作业在对应终端查看;

ctrl+z 挂起

kill %作业号 先终止再杀死作业


ping 192.168.3.55 &,已经在后台运行,在前台输出结果;不影响前台作业执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值