Cron

Cron是一个实用程序,用于在特定的时间自动执行重复任务。在Linux中,常用 cron 服务器来完成这项工作,以下是Cron的工作原理:

如果想稍后执行特定任务一次,可以使用其他命令。但是,对于重复性任务,cron是完美的解决方案。Cron是一个守护进程,这意味着它在后台运行以执行非交互式任务。类似Windows后台进程中的服务。

守护程序始终处于空闲状态,并等待命令请求执行某项任务 – 在计算机内或从网络上的任何其他计算机执行。cron文件是一个简单的文本文件,包含在特定时间运行的命令。

默认crontab文件是/ etc / crontab,位于crontab目录/etc/cron.*/.,只有系统管理员才能编辑系统crontab文件。但是,由于类Unix操作系统支持多个用户,每个用户还可以创建自己的crontab文件并启动命令以随时执行任务,cron守护程序将检查文件并在系统后台运行该命令。

使用cron作业,可以自动执行系统维护,磁盘空间监视和备份计划。由于其性质,cron作业非常适合全天候工作的计算机 – 服务器。

请注意,虽然cron作业主要由系统管理员使用,但它对Web开发人员也非常有用。例如,要停用已过期的帐户,检查损坏的链接,甚至为目标用户发送简报都可以使用cron作业。

Cron工作的基础知识

基本上,可以使用几种不同的方法创建和编辑cron作业。在本教程中,我们想向您展示如何使用Linux Shell Prompt(终端)来完成它。

以下是cron作业可以执行的一些基本操作:

如果要编辑当前用户的crontab文件,请在终端中键入crontab -e:

它会为您提供这样的结果

在使用vi编辑器时,可以学习基本的vi命令,以确保采取正确的操作。

如果要编辑其他用户的crontab,可以键入crontab -u username -e。请记住,您只能以超级用户身份执行此操作,这意味着需要在命令之前键入:sudo su。

另一个操作允许您查看是否创建了任何crontab文件,只需键入crontab -l即可。如果没有,您将看到此结果。

此外,如果要查看其他用户的crontab文件列表,可以键入crontab -u username –l

除了解基本操作外,学习基本语法也很重要。

基本上,crontab文件由两部分组成:调度计时器和命令,这是命令的编写方式:

* * * * * / bin / sh backup.sh

***** / bin / sh backup.sh cronjob意味着它将每分钟运行一次备份。

30 18 * * * rm / home / sydtesting / tmp / *表示它每天下午6:30 从/ home / sydtesting / tmp中删除tmp文件。

如何正确编写Cron语法?

如前所述,crontab文件有五个字段 – 每个字段用星号表示 – 以确定某个任务集重复执行的日期和时间。

Minute – 运行命令的分钟,范围从0到59

Hour  – 命令将在什么时间运行,范围从0到23

Day of the month – 命令运行的月份的某一天,范围从1到31

Month – 指定命令运行的月份,范围从1到12

Day of the week – 希望命令运行的星期几,范围从0到7

除此之外,您还需要在每个crontab文件中使用正确的字符。

Asterisk (*)  – 定义所有调度参数。

Comma (,) – 保持单个命令的两个或更多执行时间。

Hyphen (-) – 确定设置单个命令的多个执行时间的时间范围。

Slash (/) – 用于在特定范围内创建预定的时间间隔。

Last (L)  – 用于确定给定月份中一周的最后一天的特定目的,例如,3L表示最后一个星期三。

Weekday (W) – 确定给定时间的最近工作日,例如,1W表示如果第1个是星期六,则命令将在星期一(第3个)运行。

Hash (#) – 用于确定星期几,后跟1到5之间的数字。例如,1#2表示第二个星期一

Question mark (?) – 留空。

11 Cron语法示例

在继续之前,请记住该命令的输出将自动发送到本地电子邮件帐户。因此,如果要停止接收这些电子邮件,可以将> / dev / null 2>&1添加到语法中,如以下示例所示:

0 5 * * * /root/backup.sh> / dev / null 2>&1

此外,如果要将电子邮件输出发送到特定帐户,则可以添加MAILTO,然后添加电子邮件地址,如下:

MAILTO = “myname@hostinger.com”

0 3 * * * /root/backup.sh> / dev / null 2>&1

更多语法示例:

0 0 * * * / bin / sh backup.s——在每天午夜执行数据库备份。

0 6,18 * * * / bin / sh backup.sh   ——在上午6点和下午6点每天执行两次数据库备份

0 * / 6 * * * /scripts/monitor.sh——每六个小时进行一次监控

* / 10 * * * * /home/user/script.sh——每10分钟为主目录中的脚本文件执行一次cron作业

0 * 20 7 * / bin / sh backup.sh——在7月20日每小时运行一次数据库备份。

0 0 * * 2 * / bin / sh——在每个星期二的零点运行数据库备份

* * * 1,2,5 * /script/script.sh——在1月,2月和5月运行命令

10-59 / 5 5 * * * /home/user/script.sh     ——在凌晨5点开始每隔5分钟运行一次命令,从早上5:10开始

0 8 1 * / 3 * /home/user/script.sh——每季度在第一天早上8点运行一个命令

* * * * * /scripts/script.sh; /scripts/scrit2.sh——在单个cron作业上设置多个任务的计划

@reboot /scripts/script.sh——每次启动系统时执行某项任务

结论

设置自动计划的任务不仅实用,而且还可以防止错过按时采取的假设行动。Cron Job是一种管理此类任务的好方法,无论是作为系统管理员还是像Web开发人员这样的职业,您需要做的就是使用正确的命令并选择正确的时间。

【Linux杂篇】Cron是什么?利用Cron Job自动执行定时任务相关推荐

  1. linux 计划任务 实例,计划任务 cron 的配置和实例

    1.计划任务概说: 计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思.在Linux中,我们经常用到 crond 服务器来完成这项工作.cron服务器可以根据配置文件约定的时间来执行特定 ...

  2. linux写语句自动执行一次,Linux系统下自动执行指定任务 cron

    cron来源于希腊单词chronos(意为"时间"),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. ...

  3. linux内存使用监控,如何利用Bash脚本监控Linux的内存使用情况

    如何利用Bash脚本监控Linux的内存使用情况 发布时间:2020-09-13 14:36:53 来源:脚本之家 阅读:114 作者:Magesh Maruthamuthu 栏目:服务器 前言 目前 ...

  4. cron 每年执行一次_循环执行定时任务crontab

    一.前言 小编最近在将线上服务器实时的请求都转到测试机,但是由于请求量太多导致log不久就写满磁盘了,手动清理费事费力,因此考虑到自动清理,接触到corntab定时任务.分享给各位. 二.crond介 ...

  5. cron表达式解析 + robfig/cron 源码剖析

    robfiig/cron 源码剖析 Cron 表达式 参考wiki https://en.wikipedia.org/wiki/Cron robfiig/cron项目信息 下载地址 https://g ...

  6. linux 占用内存 脚本,如何利用Bash脚本监控Linux的内存使用情况

    前言 目前市场上有许多开源监控工具可用于监控 Linux 系统的性能.当系统达到指定的阈值限制时,它可以发送电子邮件警报.它可以监视 CPU 利用率.内存利用率.交换利用率.磁盘空间利用率等所有内容. ...

  7. linux 命令行叫dos,利用shell编程实现DOS风格的Linux命令行

    如果你是习惯于Windows命令提示符的IT人,当你第一次使用Linux命令行时,一定会感到无所适从.你所熟悉的DOS命令再Linux中基本不存在.摆在你面前的是一大堆要记背的命令. 一种替代方案是利 ...

  8. (shell脚本编程)linux如何利用脚本执行多条命令以及linux如何执行定时任务

    文章目录 shell脚本编程 条件语句 脚本执行多条命令 执行定时任务 本文着重于提高我们的生产力,所以将这几个作为了一个专题. shell脚本编程 脚本中不同语句用分号隔开,和c语言一样. for, ...

  9. centos cron 自动执行脚本异常 命令不生效的解决办法

    centos cron 自动执行脚本异常 命令不生效的解决办法 参考文章: (1)centos cron 自动执行脚本异常 命令不生效的解决办法 (2)https://www.cnblogs.com/ ...

最新文章

  1. 【Java】判断字符串是否含字母
  2. 站长们都会,但是都会写错的robots!
  3. Android EditText禁止复制粘贴
  4. 阅读A Practical Guide to Support Vector Classification
  5. Dos中查找文件命令的使用find
  6. 阅读《Google成功七堂课》
  7. 【易语言】五子棋源码
  8. FullCalendar 六:FullCalendar应用——拖动与实时保存
  9. [深度学习]BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm个人总结
  10. [Luogu5105]不强制在线的动态快速排序
  11. python 程序bug解决方案
  12. 集合Collection以及泛型
  13. shell脚本中执行python脚本并接收其返回值的例子
  14. 工作后,成长速度是如何产生差异的?
  15. 让Windows下的驱动乖乖在Linux中安家!
  16. php5.6软件下载,【PHP下载】PHP for Linux 5.6.6-ZOL软件下载
  17. 【屏幕PrtSc键的使用,截取对话框和全屏截取】
  18. 以贝叶斯思维看待世界
  19. Matlab中的数值精度问题
  20. 基于matlab的神经网络设计,神经网络模型matlab例子

热门文章

  1. idea本地起项目,手动自由切换dev、test环境问题
  2. Activiti详解与案例
  3. sql分任意区间统计频数
  4. 《MATLAB语音信号分析与合成(第二版)》:第4章 语音信号的线性预测分析
  5. 大学生如何学习Java
  6. ECC的“点加”和“点乘”
  7. (windows)如何删除删不掉的文件
  8. “拆股”买投资房正在成为现实,不用攒钱也能买上房
  9. 如何伦敦银走势图中寻找波段操作机会
  10. 下级对上级回复已阅知_下级对上级回复已阅知_工作中回复领导,绝不能用OK!除此之外,还有四条...