热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Cron是什么?利用CronJob自动执行定时任务

原文链接: Cron是什么?利用CronJob自动执行定时任务–草根SEO博客(simcf.cc)CronCron是一个实用程序,用于在特定的时间自动执行重复任务。在Linux中,

原文链接 : Cron是什么?利用Cron Job自动执行定时任务 – 草根SEO博客 (simcf.cc)


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开发人员这样的职业,您需要做的就是使用正确的命令并选择正确的时间。


原文链接:https://www.cnblogs.com/GuoYuying/p/14757419.html



推荐阅读
  • python自学教程哪里好,python比较好的教程
    本文目录一览:1、想学python去哪里比较好? ... [详细]
  • 软件自动化测试的学习路线
    软件自动化测试的学习步骤软件测试交流群关注软件测试技术公众号获取阅读目录软件自动化测试的学习步骤自动化测试的本质自动化测试学习的误区自动化测试的职位自动化测试分类Web自动化 ... [详细]
  • Linux     系统安装
    Linux系统安装linux系统安装准备工作电脑、u盘、光盘、网络、硬盘主要使用光盘、网络虚拟化软件vmwarevi ... [详细]
  • Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,现在在企业中的使用率也是很广的。git是一个分布式的版本控制系统,不像以前的svn,svn是 ... [详细]
  • 1.切换Xcode版本假如本地有2个Xcode,切换命令如下sudoxcode-select--switchUsersyushu.lxysoftwareXcode.appConte ... [详细]
  • WebBrowser控件(1)
    WindowsPhone7内置了一个强大的网络浏览器,该浏览器的内核是基于桌面版的InternetExplorer7(Mango版基于InternetE ... [详细]
  • 3295:[Cqoi2011]动态逆序对Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除 ... [详细]
  • 猫猫分享,必须精品原文地址:http:blog.csdn.netu013357243articledetails44571163素材地址:http:download.csdn.n ... [详细]
  • 本文分析和介绍了GLo ... [详细]
  • 代码:在mysql5.6,运行正常,5.7报错SELECTsum((selecta.numwherea.status1))astotalFROMmes_order_productA ... [详细]
  • 2019.4.14第1001题:SumProblemProblemDescriptionHey,welcometoHDOJ(HangzhouDianziUniversityOnli ... [详细]
  • Git(1)
    安装Git完毕(在开始菜单打开的话,打开的不是你想要的路径,切换路径很麻烦)1.D盘新建GitTest文件夹2.打开GitTest,在空白的地方右键,3.单击GitBashHere ... [详细]
  • python基础(二、pycharm安装、卸载)
    3.在Ubuntu中安装PyCharmPyCharm的官方网站地址是:https:www.jetbrains.compycharm注意:安装时不要使用root用户安装,否则后期使用 ... [详细]
  • ajax 跨域webapi 最简单的demo(只介绍Get)
    这几天遇到一个nodejs的项目,使用VSCode开发,需要连接数据库的,但是用nodejs连接数据库比较繁琐,需要安装很多 ... [详细]
  • 先下载linuxhttp:cdimage.ubuntu.comreleases14.04release我下载的是ubuntu-14.04.3-desktop-amd64mac.is ... [详细]
author-avatar
lijunlin66_8460dd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有