Linux计划任务书以及定时任务的编写

news2025/1/16 5:45:38

一、程序可以通过两种方式执行:

  1. 手动执行
  2. 利用调度任务,依据一定的条件自动执行

自动执行可通过一下两个命令来实现:

(1)At (单一工作调度)

(2)Cron  (循环工作调度)

二、At

  1. 功能:依据预先定义好的时间,执行指定进程,但只执行一次
  2. 语法格式:at  [选项]  [time]
  3. 参数:-c → 可以列出后面接的该项工作的实际明林内容

         -l → 列出目前系统上面所有该用户的at调度

     4.at的守护进程:atd

     5.查看、启动、关闭atd

#systemctl  stop  atd

#systemctl  start  atd

#systemctl  restart  atd

#systemctl  status  atd

6.at是个一次性的计划任务。at的执行主要依靠系统服务atd。系统中有两个文件/etc/at.allow和/etc/at.deny,这两个文件规定了系统谁可以使用at,谁不可以使用at.

7、如果两个都存在只检查/etc/at.allow, 只有在/etc/at.allow中规定的用户才可以使用,即采用执行大于 禁止的原则。

8、如果只有/etc/at.deny存在,每个不在该文件中用户都可以使用。

9、如果两个都不存在,只有超级用户可以使用

三、at可接受的时间格式:

1、日期:

MM/DD/YY

MMDDYY

DD.MM.YY

2、时间:

HH:MM

HH:MMam

HH:MMpm

3、特殊日期:

      Midnight(0am)

      noon(12am)

      Teatime(4pm)now(现在)

      now + N(minutes,hours,day,weeks)

4、时间输入规范:

  (1)只输入时间。不输入日期,会被当作是今天的某一时刻。

  (2)如果只输入日期,不输入时间,会被认为是被输入日期的现在这个时刻。

  (3)支持输入一个完整的时间

5、示例:

(1)晚上十一点重启:

#at  23:00

 at>reboot

 Ctrl D

(2)时间格式范例:

   #at 23:00

   #at 12/31/18

   #at 23:00 12/31/18

   #at noon

   #at 0:00pm 12/31/18

   #at teatime +30 minutes

   #at 4:00pm +4 days

   #at now + 4 weeks

四、at队列管理

1、at编辑后,将进入队列中。由atd服务扫描任务并等待任务的执行,at队列所在文件:/var/spool/at

2、命令:atq

功能:查看at队列

语法结构:atq  [选项]

3.命令:atrm

   功能:删除at队列中的指定任务

   语法格式:atrm   [队列ID]

4.示例:

1)查看at队列

   #atq

2)看at队列中任务一的内容:

  #at -c 1

3)删除at队列中的任务2

  #atrm 2

五、cron

  1、命令:crontab

  2、功能:实现周期性计划任务的执行

  3、语法格式:crontab  [选项]

  4、参数:-l → 查看cron计划任务列表

           -e → 以默认文本编辑器,编辑cron计划任务列表

           -r → 删除cron计划任务列表

           -u → 指定用户。如果不指定用户,-l,-e,-r都认为是对当前用户操作。

  1. cron的守护进程是crond

6、cron编辑的格式    

     1)shell及mail格式定义:(查看crontab文件:cat /etc/crontab

        SHELL=/bin/bash    

        SHELL是指定处理计划任务的命令是由那个shell来执行

        MAILTO=root  

        MAILTO是指定计划任务运行完成或运行遇到障碍,都会发     邮件给某个用户,给以提示    

     2)时间格式定义 (记忆口诀:分、时、日、月、周)

        注:星期中,0、7同样表示周日

     如图: 

    crontab文件中的时间格式及 “*”在时间格式中所代表的含义

       第一列,代表每一分钟(minute 0-59)

       第二列,代表每一小时(hour 0-23)

       第三列,代表一个月中的每一天(day of month 1-31)

       第四列,代表一年中的每个月 (month 1-12)

       第五列,代表一个星期中的每一天 (day of week 0-6)

       注:日月周不能同时出现

      3)特殊时间格式定义

        “*/5”:表示每隔5分钟可在第一列写成

      4)cron编辑的格式

每隔一分钟向所有用户广播一次 hahaha

 7、cron编写任务

       使用 “#crontab  <参数>”命令格式进行编写任务操作

示例:1)、以当前账户创建cron计划任务

               #crontab –e

  

        2)、以指定用户创建其cron计划任务(仅在root下执行)

             #crontab -e -u <用户名>

          3)、以指定文件作为计划任务的要求

            #vim newcron

            #crontab  newcron

            或#crontab  -u  <用户名>  newcron  

          4)、查看当前使用账户的cron任务队列

             #crontab -l

 8、cron编写任务路径

         /etc/cron.tab          系统计划任务表及说明

         /etc/cron.d            特定的系统计划任务表

         /etc/cron.hourly        系统每小时要运行的计划任务

         /etc/cron.daily          系统每天要运行的计划任务

         /etc/cron.weekly        系统每星期要运行的计划任务

         /etc/cron.monthly       系统每月要运行的计划任务

   注:在/etc/cron.d/0hourly 文件中,规定run-parts命令来执行目录的脚本文件

如图 

按照每天 每周 每月执行的时间点

IPC

进程间的通信方式

1、管道 :

1)单向的、先进先出的、无结构的、固定大小为4K的字节流

2)它把一个进程的标准输出和另一个进程的标

准输入连接在一起。

3)写进程在管道的尾端写入数据,读进程在管 道的首端读出数据。

4)数据读出后将从管道中移走,其它读进程都 不能再读到这些数据。

5)管道提供了简单的流控制机制

2、信号

两个进程之间的通信就会产生信号,进程还可以发送信号给进程 本身

3、socket (套接字)

为一般的进程间通信机制,可用于不同机器之间的进程间通信。

4、消息队列 (报文队列)

消息队列是消息的链接表,包括 Posix 消息队列 system V 消息队列。有足够权限的进程可以向 队列中添加消息,被赋予读权限的进程则可以读 走队列中的消息。消息队列克服了信号承载信息 量少

5、信号量:

主要作为进程 间以及同一进程不同线程之间的同步手段。

6、有名管道:无大小限制,相当于两个bash之间的通信,无亲缘关系的通信

内存溢出:开发人员开发软件的时候限制软件占内存的大小,打开后实际占用内存大于规定的

内存抖动:由于系统内存不足,进程在内存与虚拟内存之间来回切换,造成的主机卡顿

内存泄露:运行程序打开后占一定内存,关闭之后依然还在占用内存,然后用户再重新打开又占一定的内存,如此造成实际内存减小

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

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

相关文章

Android进阶:2021大厂Android面试经验,含BATJM大厂_2021大厂android进阶面试指南目录

在面试的过程中我深深的感受到&#xff0c;对于一个优秀的安卓开发来说&#xff0c;首先摆在第一位的还是他/她作为一个软件工程师的基本素养。无论你是做前端还是后端&#xff0c;最后定义你的优秀程度的还是作为软件工程师的基本素养&#xff0c;学习能力和编程能力&#xff…

VC2022 + google test

还要从项目开始说。 刚来项目组&#xff0c;主体是医疗仪器中位机部分&#xff0c;基本的部署结构&#xff1a; 上位机UI(Ubuntu 18 java) 中位机(ARMUbuntu 18, C) 下位机&#xff08;N个下位机子系统&#xff0c;控制步进电机&#xff0c;各种传感器&#xff0c;反射计…

免费ChatGPT合集——亲测免费

1、YesChat 无需登录 网址&#xff1a;YesChat-ChatGPT4V Dalle3 Claude 3 All in One Freehttps://www.yeschat.ai/ 2. 讯飞星火 要登录 讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞 3.通义千问 要登录 通义我是通义&#xff0c;一个专门响应人类指令的…

ios不兼容Svg Wave的动画的解决方法

近日也是用上了SvgWave&#xff0c;十分的好看 Svg Wave - A free & beautiful gradient SVG wave Generator. 大家感兴趣的也可以了解一下 【场景】 使用SvgWave的Animate&#xff0c;并生成svg代码使用&#xff0c;windows web端、朋友的安卓移动端都能够正常执行动画…

37.WEB渗透测试-信息收集-企业信息收集(4)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;36.WEB渗透测试-信息收集-企业信息收集&#xff08;3&#xff09;-CSDN博客 关于主域名收…

lt Redis变慢的原因及排查解决方法

前言 Redis 作为优秀的内存数据库&#xff0c;其拥有非常高的性能&#xff0c;单个实例的 OPS 能够达到 10W 左右(5-10W)。但也正因此如此&#xff0c;当我们在使用 Redis 时&#xff0c;如果发现操作延迟变大的情况&#xff0c;就会与我们的预期不符。 你也许或多或少地&…

python基础知识—while和for循环(三)

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 一&#xff1a;while循环1.1程序的三种执行流程1.2while循环1.3循环变量和死循环 二&#xff1a;for循环2.1for循环2.2range 一&…

【库函数】Linux下动态库.so和静态库.a的生成和使用

目录 &#x1f31e;1. Linux下静态库和动态库的基本概念 &#x1f31e;2. 动态库 &#x1f30a;2.1 动态库如何生成 &#x1f30d;2.1.1 文件详情 &#x1f30d;2.1.2 编译生成动态库 &#x1f30a;2.2 动态库如何使用 &#x1f30d;2.2.1 案例 &#x1f30d;2.2.2 动态…

【jQuery】看一眼就会用的jquery库之续章!

jQuery&#xff08;js框架&#xff09; 17、操作节点 创建节点&#xff1a; 创建节点只需要将元素放在jQuery的工厂函数中//创建一个button按钮let $btn$("<input typebutton>");//创建一个列表项let $li$("<li>选项</li>");添加节点…

【PostgreSQL】Postgres数据库安装、配置、使用DBLink详解

目录 一、技术背景1.1 背景1.2 什么是 DBLink 二、安装配置 DBLink2.1 安装 DBLink2.2 配置 DBLink1. 修改 postgresql.conf2. 修改 pg_hba.conf 三、DBLink 使用3.1 数据准备3.2 DBLink 使用1. 创建 DBLink 连接2. 使用 DBLink 进行查询3. 使用 DBLink 进行增删改4. 使用 DBLi…

鲁棒控制理论学习:静态状态反馈H∞控制器

鲁棒性&#xff0c;即系统的健壮性&#xff0c;是指在异常和危险情况下系统能够维持其功能和性能的能力。在控制系统中&#xff0c;鲁棒性表现为系统在参数摄动下维持某些性能的特性。例如&#xff0c;当控制系统面临输入错误、磁盘故障、网络过载或有意攻击等挑战时&#xff0…

视频质量评价PSNR的两种计算方法

PSNR&#xff08;峰值信噪比&#xff09; 峰值信号的能量与噪声的平均能量之比&#xff0c;本质的是比较两张图像像素值差异&#xff0c;用途较广&#xff0c;目前仍作为对照其他指标的基线。PSNR的单位是dB&#xff0c;数值越大表示失真越小。 mn单色图像 I 和K&#xff0c; …

SpringCloud系列(17)--将服务消费者Consumer注册进Zookeeper

前言&#xff1a;在上一章节中我们把服务提供者Provider注册进了Zookeeper&#xff0c;而本章节则是关于如何将服务消费者Consumer注册进Zookeeper 1、再次创建一个服务提供者模块&#xff0c;命名为consumerzk-order80 (1)在父工程下新建模块 (2)选择模块的项目类型为Maven并…

WIFI加密方式对无线速率的影响

文章目录 无线加密三种选择&#xff1a;WEP、WPA和WPA2测试平台和测试方法非加密和WEP加密测试 结果差别巨大非加密条件下 300M无线路由实测WEP加密条件下 300M无线路由实测 TKIP加密算法&#xff1a;WPA与WPA2成绩低迷WPA加密&#xff08;TKIP加密算法&#xff09;条件下 300M…

TypeScript入门第一天,所有类型+基础用法+接口使用

表示逻辑值&#xff1a;true 和 false。在JavaScript和TypeScript里叫做boolean | | 数组类型 | 无 | 声明变量为数组。 // 在元素类型后面加上[] let arr: number[] [1, 2]; // 或者使用数组泛型&#xff0c;Array<元素类型> let arr: Array [1, 2]; | | 元组…

大数据—数据采集DataX

一、DataX介绍 官网&#xff1a; DataX/introduction.md at master alibaba/DataX GitHub DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、…

翻译《The Old New Thing》 - Why .shared sections are a security hole

Why .shared sections are a security hole - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20040804-00/?p38253 Raymond Chen 2004年08月04日 许多人会推荐使用共享数据节作为在应用程序的多个实例之间共享数据的一种方式。这听起来是个好…

立即刷新导致请求的response没有来得及加载造成的this request has no response data available

1、前端递归调用后端接口 const startProgress () > {timer.value setInterval(() > {if (progress.value < 100) {time.value--;progress.value Math.ceil(100 / wait_time.value);} else {clearInterval(timer.value);progress.value 0;timer.value null;time.…

pytest-asyncio:协程异步测试案例

简介&#xff1a;pytest-asyncio是一个pytest插件。它便于测试使用异步库的代码。具体来说&#xff0c;pytest-asyncio提供了对作为测试函数的协同程序的支持。这允许用户在测试中等待代码。 历史攻略&#xff1a; asyncio并发访问websocket Python&#xff1a;协程 - 快速创…

vscode安装中文插件不生效

在 escode 中&#xff0c;安装了上面的插件&#xff0c;但是界面依然显示的是英文。 解决方案 使用组合键 ctrshiftp&#xff0c;输入 Configure Display Language&#xff0c; 选中 zh-cn&#xff0c;重启