Linux 学习笔记(16)

十六、 计划任务
在很多时候为了自动化管理系统,我们都会用到计划任务,比如关机,管理,备份之类的操作,我
们都可以使用计划任务来完成,这样可以是管理员的工作量大大降低,而且可靠度更好。
linux 系统支持一些能够自动执行任务的服务,我们称为计划任务。
LINUX 有如下三种计划任务:
at:指定一个时间执行一个任务 (适用一个或多个任务,执行一次后就不用)
cron:根据一个时间表自动执行任务 (使用一个或多个任务,周期性执行)
系统级别的计划任务及其扩展 anacron:在一个指定时间间隔错过后自动执行任务
1 at: 安排一个任务在未来执行,需要一个 atd 的系统后台进程
检查 atd 进程是否启动
[root@centos61 桌面 ]# service atd status
atd (pid 2274) 正在运行 ...
[root@centos61 桌面 ]# chkconfig |grep atd
atd
0: 关闭 1: 关闭 2: 关闭 3: 启用 4: 启用 5: 启用 6: 关闭
如果未启动,可以使用如下命令:
[root@centos61 桌面 ]# service atd start
正在启动 atd [ 确定 ]
[root@centos61 桌面 ]# chkconfig atd on
常用指令: at:安排延时任务
具体使用方法:
例 1:
#at now+2 minutes 回车
>输入要执行的命令 >ctrl+d 结束输入
[root@test ~]# at now+2 minutes
at> wall Aixi
at> <EOT>
job 2 at 2010-06-18 16:36
<EOT>是 ctrl+d 中断输入,这个命令意思是发送一个广播内容是 Hello Aixi.具体时间可以改,单位可以改,可以用 hours,months,years,weeks 等.
例 2 我们还可以跟具体时间
[root@test ~]# at 16:39 dec 10
at> Hello Aixi
at> <EOT> ctrl+d 结束输入
job 3 at 2010-12-10 16:39
意思是在今年的 12 月 10 日 16:39 运行这个命令.如果不加月和日,默认就是今天.
Atq:查询当前的等待任务
用 atq 来查询,已经运行的任务,就消失了。这就是 at 计划任务的重点,只运行一次
atrm:删除等待任务
启动计划任务后,如果不想启动设定好的计划任务可以使用 atrm 命令删除。
格式:atrm 任务号
命令后面跟计划任务编号,如果不跟,就会删除这个用户所有的计划任务。
例 3
atrm 10 //删除计划任务 10
atq //查看计划任务是否删除
at 将要运行的命令以文本形式写入/var/spool/at/目录内,等待 atd 服务的取用和执行。
还可以进入到/var/spool/at 目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用 rm -f
文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)
例 4:
#cd /var/spool/at //进入到/var/spool/at 目录中
ls //显示目录中所有文件
rm -f a0000b0138b19c //删除计划任务
在通常情况下,超级用户都可以使用这个命令。对于其他用户来说,能否可以使用就取决于两个文
件:/etc/at.allow 和/etc/at.deny。
at 命令是可以基于用户来控制的,我们可以明确指定哪些用户可以使用 at 计划任务,哪些用户不可以使用 at 计划任务。
at 的控制文件
/etc/at.allow
/etc/at.deny
系统默认是有 at.deny 文件,如果某个用户名在这个文件里,他就不能使用 at 计划任务。如果有
at.allow 文件,allow 文件先行,检查了 allow 明确允许,就不会检查 deny。
如果你要让哪个用户不能使用计划任务,就直接把他的用户名写进去就可以了,一排只能写一个。 2 cron 服务 ( 参考网址: http://www.linuxsir.org/main/?q=node/209)
相对与 at,cron 的优点就是能够周期性的执行某个命令,at 却只能执行一次,cron 的后台进程名字
是 crond ,cron 也是 system V 的服务,所以我们可以 service crond start|stop 来启动和关闭此服
务,也可以使用 chkconfig 或者 ntsysv 来选择 cron 服务的默认开启,这些命令在以前我们都讲过的
命令:
#crontab -e 编辑当前用户的 cron 表
#crontab -l 查看当前用户的 cron 表
#crontab -r 删除当前用户的 cron 进程
#crontab -u 用户名 以某用户的身份来控制 cron 表
还有个重要的知识点,就是当用户的计划任务建立后是存放在 var/spool/cron 这个目录
当使用 crontab -e 编辑当前用户的 cron 表后,会出现一个 vi 文件,cron 的格式是这样的。分成两
列,左边是时间,右边是运行的命令。时间是由 5 个部分组成。
例:
* * * * * wall hello everyone
5 个星号分别代表:minute hour day-of-month month-of-year day-of-week ,而 wall hello
everyone 这是命令内容。上面的意识是每分每小时每天每月每周广播 hello everyone。具体时间大家可以自己定义。如果要每两分钟发送就用*/2 代替第一个*。也可以是用具体时间来表示。
我们使用 crontab -e 编辑当前用户的 cron 表
这里的 5 个星号就代表的时间和日期:
第一个*星号代表个小时的第几分钟:minute 范围是从 0-59
第二个*星号代表每天的第几个小时:hour 范围是从 0-23
第三个*星号代表每月的第几个日:day-of-month 范围从 1-31
第四个*星号代表没年的第几个月:month-of-year 范围从 1-12
第五个*星号代表每周的星期几:day-of-week 范围从 0-6,其中 0 表示星期日
用户名:也就是执行程序要通过哪个用户来执行,这个一般可以省略;
命令:执行的命令和参数。
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期
中的第几天。program 表 示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余以此类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b小时都要执行,其余以此类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余以此类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c... 个小时要执行,其余以此类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例 1:如果我要表示 9 月 10 日 25 分执行 ls var/spool/cron 任务怎么表示?
25 * 10 9 * ls var/spool/cron
由于我没表示小时,所以就只能里面为每小时
例 2:我要在每周日,每分钟执行 wall Hello redking.blog.51cto.com 这个命令,时间怎么表示?
*/1 * * * 0 wall Hello redking.blog.51cto.com
*/ 表示每多少分钟执行一次 例 3:每晚的 21:30 重启 apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
例 4:每月 1、10、22 日的 4 : 45 重启 apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
例 5:每周六、周日的 1 : 10 重启 apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
例 6:在每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
例 7:每一小时重启 apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
例 8:晚上 11 点到早上 7 点之间,每隔一小时重启 apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
例 9:每月的 4 号与每周一到周三的 11 点重启 apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
例 10:一月一号的 4 点重启 apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
例 11:在 12 月内, 每天的早上 6 点到 12 点中,每隔 3 个小时执行一次 /usr/bin/backup
0 6-12/3 * 12 * /usr/bin/backup
例 12:每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
3 、系统级别的计划任务及其扩展 anacrontab
这个是系统设置好了,清理系统垃圾或者是自动执行某些脚本的系统任务,一般我们做了解就行了, 不要更改配置文件是/etc/conrtab
SHELL:就是运行计划任务的解释器,默认是 bash
PATH:执行命令的环境变量
MAILTO:计划任务的出发者用户
HOME:家目录为/
run-parts 是一个脚本,在/usr/bin/run-parts,作用是执行一个目录下的所有脚本/程序。
run-parts /etc/cron.hourly 执行目录/etc/cron.hourly/之下的所有脚本/程序.
run-parts 下面就是运行的命令
vim /etc/crontab 与 crontab -e 写入的定时运行的区别?
vim /etc/crontab:是系统级别定义的 crontab,/etc/crontab 的所有者和组都是 root
crontab -e :是用户自定义的 crontab,是所有的用户都可以写入的 两种方法记录的位置不一样,一个在/etc/ 另一个在/var/ 里面。都被 cron 服务调用
如果系统在以上说的时间没有开机怎么办?那么这个脚本不就是不能执行了?设计者早就想到了这个问题,所以就有了 cron 服务的扩展,目的就是为了防止非 24 小时开机的计算机遗漏的守护任务,anacr
ontab 就是系统计划任务的扩展文件:在一个指定时间间隔错过后自动执行任务
格式是这样的:
period delay job-identifier command
period — 命令执行的频率(天数)
delay — 延迟时间(分钟)
job-identifier — 任务的描述,用在 anacron 的消息中,并作为作业时间戳文件的名称,只能包括
非空白的字符(除斜线外)。
command — 要执行的命令
第一行的意思是:每天开机 65 分钟后就检查 cron.daily 文件是否被执行了,如果今天没有被执行就执行他
第二行的意思是:每隔 7 天开机后 70 分钟检查 cron.weekly 文件是否被执行了,如果一周内没有被执行就执行他
第三行的意思也差不多
下面说说关于 cron 服务的控制,和 at 差不多,就是/etc/cron.deny 这个配置文件来控制,里面写入要禁止使用 cron 用户的名字,一行一个就 OK 了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3模块化引用组件和引用ts,调用ts中的接口

以简单的登录功能为例子 1.在util中创建loginValidators.ts import { ref, reactive } from vueinterface User{email: string;password: string; }export const loginUserreactive<User>({email: ,password: })interface Rules{email: {required: boolean;message: …

可视化展示与交互编辑:探索3D Web轻量化平台HOOPS WEB Platform在BIM中的新可能性

随着数字技术的飞速发展&#xff0c;建筑行业也在不断迈向数字化转型的道路。在这个过程中&#xff0c;BIM&#xff08;Building Information Modeling&#xff0c;建筑信息模型&#xff09;技术已经成为建筑设计、施工和管理领域中的一项重要工具。 而在BIM的应用中&#xff…

金融知识分享系列之:MACD指标精讲

金融知识分享系列之&#xff1a;MACD指标精讲 一、MACD指标二、指标原理三、MACD指标参考用法四、MACD计算步骤五、MACD分析要素六、根据快线DIF位置判断趋势七、金叉死叉作为多空信号八、快线位置交叉信号九、指标背离判断行情反转十、差离值的正负十一、差离值的变化十二、指…

Nacos源码流程图

1.Nacos1.x版本服务注册与发现源码 流程图地址&#xff1a;https://www.processon.com/view/link/634695eb260d7157a7bc6adb 2.Nacos2.x版本服务注册与发现源码 流程图地址&#xff1a;https://www.processon.com/view/link/634695fb260d7157a7bc6ae0 3.Nacos2.x版本GRPC…

【海贼王的数据航海】排序——直接选择排序|堆排序

目录 1 -> 选择排序 1.1 -> 基本思想 1.2 -> 直接选择排序 1.2.1 -> 代码实现 1.3 -> 堆排序 1.3.1 -> 代码实现 1 -> 选择排序 1.1 -> 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素&#xff0c;存放在序列的起始位置&…

315 腾讯测开一面

问题复盘 1.TCP和UDP的区别&#xff1b;网络中七层协议详细解释 2.cookie和session的区别——python中request的用法 3.cookie和session的生命周期 cookie的生命周期&#xff1a; 持久性cookie&#xff1a;如果创建时指定了过期时间&#xff08;‘Expires’属性&#xff0…

STL:List从0到1

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

MySQL-----事务

一 事务简介 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一 个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 例如:银行转账 张三 ---(转账1000元)---> 李四 在进行…

.NET开源快速、强大、免费的电子表格组件

今天大姚给大家分享一个.NET开源&#xff08;MIT License&#xff09;、快速、强大、免费的电子表格组件&#xff0c;支持数据格式、冻结、大纲、公式计算、图表、脚本执行等。兼容 Excel 2007 (.xlsx) 格式&#xff0c;支持WinForm、WPF和Android平台&#xff1a;ReoGrid。 项…

Spring Chache入门详解、配套小案例

简介&#xff1a;Spring Cache是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要添加一个注解就能实现缓存功能。 Spring Cache提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;如下&#xff1a; EHCacheCaffeineRedis (这篇帖子&#xff…

下载指定版本的pytorch

下载网址&#xff1a;https://download.pytorch.org/whl/torch_stable.html 参考博客网址&#xff1a;https://blog.csdn.net/wusuoweiieq/article/details/132773977

基于C++的反射功能

需求&#xff1a; 利用C的发射机制&#xff0c;实现根据字符串创建实例对象。 代码&#xff1a; #ifndef OBJECT_H #define OBJECT_H#include <string> #include <map>typedef void* (*Constructor)();class CObjectFactory { public:static void registerClass…

【Git版本控制系统】:起步

目录 前言 版本控制 集中式与分布式的区别 Windows安装Git 核心 文件状态 工作区域 基本工作流程 配置用户信息 获取帮助 在线资源 前言 本篇文件的环境是Windows环境下实现。 在日常工作中git少不了&#xff0c;所以编写本篇文章介绍Git基础&#xff0c;专栏会不…

Linux/secret

Enumeration nmap 第一次扫描发现系统对外开放了22&#xff0c;80和3000端口&#xff0c;端口详细信息如下 可以看到22端口对应的是ssh服务&#xff0c;80和3000都是http服务&#xff0c;80端口使用nginx&#xff0c;3000使用了Node.js TCP/80 可以先从80端口开始探索&…

网络原理(1)——UDP协议

目录 一、应用层 举个例子&#xff1a;点外卖 约定数据格式简单粗暴的例子 客户端和服务器的交互&#xff1a; 序列化和返序列化 xml、json、protobuffer 1、xml 2、json 3、protobuffer 二、传输层 端口 端口号范围划分 认识知名的端口号 三、UDP协议 端口 U…

数据结构之顺序表(包学包会版)

目录 1.线性表 2.顺序表 2.1概念及结构 2.2接口实现 3.总结 halo&#xff0c;又和大家见面了&#xff0c;今天要给大家分享的是顺序表的知识&#xff0c;跟着我的脚步&#xff0c;包学包会哦~ 规矩不乱&#xff0c;先赞后看&#xff01; ps&#xff1a;&#xff08;孙权…

【MMDetection3D实战5】Dataset 和 model配置文件解析

文章目录 1. Dataset 配置文件解析1. 1 定义全局变量1. 1 数据处理pipeline(1) train_pipeline(2) test_pipeline(3) eval_pipeline1. 2 data 字典的定义2. model 配置文件解析2. 1 体素化voxel_layer2. 2 voxel_encoder2. 3 middle_encoder2. 4 2D 检测网络(backbone + neck …

详解(实现)堆的接口函数

文章目录 堆堆的顺序存储 准备工作创建头文件Heap.h创建源文件Heap.c头文件的包含定义保存堆数据的结构体 初始化销毁堆插入数据向上调整算法图解算法代码 删除堆顶向下调整算法图解代码 取出堆顶数据求堆的数据个数判断堆是否为空全部代码Heap.hHeap.c 再了解堆之前我们先要了…

AI毕业论文降重GPTS,避免AI检测,高效完成论文

视频演示 AI毕业论文降重GPTS&#xff0c;避免AI检测&#xff0c;高效完成论文&#xff01; 开发目的 “毕业论文降重”GPTS应用&#xff0c;作用为&#xff1a;重新表述学术论文&#xff0c;降低相似性评分&#xff0c;避免AI检测。 使用地址 地址&#xff1a;毕业论文降重…