问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux:crontab要点整理(表达式,转义,权限管理,日志)

发布网友 发布时间:2022-11-17 20:32

我来回答

1个回答

热心网友 时间:2023-01-22 03:26

摘要: Linux , crontab
整理crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程 每分钟 会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务

使用如下命令进行crontab服务的开启,关闭,重启,和状态查看

其中启动关闭需要root权限,所有用户可以查看状态例如

crontab通过设置cron表达式来让计算机识别如何定时调度任务,cron表达式的基本语法

前五个 * 分别代表 分钟 , 小时 , 当月第几日 , 当年第几月 , 周几 ,最后的 command 是要执行的任务语句,详情和取值范围见下图

其中* 代表所有值,比如以下代表在每年9月27日17点07分执行一个命令,不*周几

可见crontab最小颗粒度是以 分钟级别 进行调度, 最粗级别是月 ,不*年,因此 至少每年执行一次 。

在cron表达式中最后一个*代表周几,如果前面的*限死了日期, 且周几这个位置不为*为一个给定值 ,必定可能和周几冲突,当发生冲突时两者为 OR 的关系,即如果时间满足指定的日期,或者时间满足指定的周几,都会执行任务,举个例子

当天为9月27日,星期一,以上两条语句都会被执行,一个在当天的17点13分,一个在当天的17点17分,在/tmp/cron.txt文件中会先后写入两条记录

当周几这个位置设置为*时,无需关注冲突问题,即不对周几做*

除此之外cron表达式支持一些特征符号配合阿拉伯数字来设置每个*,这样可以实现 或 , 每隔 , 从,到 的逻辑,分别对应三种常用符号 , , / , - ,分别解释如下

分别举几个例子
(1)17点43分和44分执行任务

(2)每隔2分钟执行任务

(3)从52分带56分一直执行任务,一共执行5次

下面来整理一波常用的cron表达式

目前已知的需要转义的是百分号 % ,尤其是在使用日期命令date做日期格式化时,否则无法在crontab中运行,因为%是crontab中的一个有意义的符号,应该这样设置带有百分号的command例如

如果不这样设置,也可以单独写在一个shell脚本中使用bash解释执行也能够正常运行

在当前用户下使用 crontab -e 来编辑添加定时任务,第一次使用会显示no crontab for用户,然后选择一种编辑方式选择输入3回车,如果首次没有设置后期也可以在终端输入 select-editor 进行设置

设置完成之后输入 crontab -e 进入,该方法进入的是当前用户的crontab界面,新起一行即可写入cron表达式进行设置,例如

其中可以使用 # 注释掉某行,则该cron表达式不生效,编辑完成后输入 wq! 进行保存关闭

一种直接的方式是使用 crontab -r ,这种方法删除该用户下所有crontab任务,其他用户的任务不影响都不会被删除,慎用,如果只是要删除其中某一条任务,则直接进入编辑删除这一行即可

任务查看使用 crontab -l 命令,该命令可以查看当前用户的crontab任务

一台linux机器上每个不同用户都有自己的crontab -e文件设置自己的定时任务,这些任务互不干涉运行在一台机器上,其中root用户可以在使用crontab -e的时候可以切换其他用户进行设定,比如

以上语句是在root下给test用户设置定时任务,如果是普通用户则报错没有-u权限

crontab -e是 用户级别 的,设置每个用户的自己的定时任务,/etc/crontab是 系统级别 的,设置系统例行的任务,/etc/crontab只有root用户有读写权限,普通用户只有读权限。
/etc/crontab相比于crontab -e多出环境变量的配置和用户名配置,由root用户统一给各个任务配置用户名,设置的环境变量对/etc/crontab下所有人任务生效,比如修改他的python的搜索路径为anaconda

这个设置只对/etc/crontab有效,对crontab -e的每个用户设置的任务无效
/etc/crontab中设置系统例行的定时任务

表示分别在小时,每天,每周,每月定时执行系统任务,其中 test -x /usr/sbin/anacron 代表条件测试文件是否可执行,如果可执行忽略||后面的命令内容,这种情况下系统走 anacron ,会读取 /etc/anacrontab 下的内容进行替代

可见机器调用 run-parts 命令和 /etc/cron.daily , /etc/cron.weekly , /etc/cron.monthly 执行定时任务

既然linux支持不同用户设置自己的任务,则在一个地方 /var/spool/cron/crontabs 看到所有用户设置的任务,这个目录只有root有权限进入

目录下有三个文件,对应三个用户,root用户对这些文件可读可写,相当于跟crontab -e可以在这设置和修改任务,直接在里面编辑等同于切到某用户执行crontab -e

ubuntu下crontab默认没有日志文件,需要在配置中设置日志文件位置,配置文件位于 /etc/rsyslog.d/50-default.conf 将这一行注释取消

设置后重启rsyslog服务

下面看下一crontab日志的格式

日志中包括 执行时间 , 主机名 , 用户 ,以及 执行的任务信息 ,任务信息包括执行的用户cron的command以及设置编辑crontab的记录,表明在 哪个时间 执行了 哪个用户 的 哪个命令语句 。
其中这两行反应了报错信息

crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到你的邮箱里,这时候就需要邮件服务器了,如果你没有安装邮件服务器,它就会报这个错: No MTA installed, discarding output ,解决方案是将错误内容写入文件,比如在command后面添加 >>/var/log/cron.log 2>&1 追加,如果是 > 就是覆盖了,则crontab历史日志每次都会被删除,例如

或者就写入其他目录下

linux crontab命令

组织crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志。 crontab命令用于提交和管理用户需要定期执行的任务,类似于windows下的调度任务。安装操作系统时,默认情况下会安装这个服务工具,并且crond进程会自动启动。crond进程会每分钟定时检查是否有任务要执行,如果有任务要执行,就会自动执行任务。 使用以下命令启...

linux命令大全之crontab命令使用详解

-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。   file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入cront...

Linux:sed中的正则的符号不需要转义吗?求解

[]本身就是特殊符号, 这里用的就是特殊意义 [0-9]表示 0,1,...9 这些字符中的一个 不需要转义 如果要匹配方括号,才需要\[ \]

linux系统crontab命令的用法

组织crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志。 crontab命令用于提交和管理用户需要定期执行的任务,类似于windows下的调度任务。安装操作系统时,默认情况下会安装这个服务工具,并且crond进程会自动启动。crond进程会每分钟定时检查是否有任务要执行,如果有任务要执行,就会自动执行任务。 使用以下命令启...

Linux下crontab有什么用?

Linux:crontab点排序(表达式、转义、权限管理、日志)摘要:Linux,crontab 组织crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志。 crontab命令用于提交和管理用户需要定期执行的任务,类似于windows下的调度任务。安装操作系统时,默认情况下会安装这个服务工具,并且crond进程会自动启动。crond进程会每分钟定时检查...

crontab是什么命令?

Linux:crontab点排序(表达式、转义、权限管理、日志)摘要:Linux,crontab 组织crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志。 crontab命令用于提交和管理用户需要定期执行的任务,类似于windows下的调度任务。安装操作系统时,默认情况下会安装这个服务工具,并且crond进程会自动启动。crond进程会每分钟定时检查...

crontab用法?

Linux:crontab点排序(表达式、转义、权限管理、日志)摘要:Linux,crontab 组织crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志。 crontab命令用于提交和管理用户需要定期执行的任务,类似于windows下的调度任务。安装操作系统时,默认情况下会安装这个服务工具,并且crond进程会自动启动。crond进程会每分钟定时检查...

如何关闭crontab任务crontab关闭一个任务

Linux:crontab点排序(表达式、转义、权限管理、日志)摘要:Linux,crontab 组织crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志。 crontab命令用于提交和管理用户需要定期执行的任务,类似于windows下的调度任务。安装操作系统时,默认情况下会安装这个服务工具,并且crond进程会自动启动。crond进程会每分钟定时检查...

root权限管理 linux crontab命令 linux crontab不执行 linux查看crontab任务 权限管理哪些需要关闭 权限管理 权限管理在哪 应用权限管理在哪里 设置权限管理在哪
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
猫咬人怎么教育 猫咬人怎么办 幼猫喜欢抓人咬人怎么办 WX是Weather的缩写,那它在航空领域中的应用是什么? 鱼卵出来的鱼怎么养乍 幼鱼的开口料什么最好,吃水草可以么? 广州到济南顺丰快递多久啊 帮我看下顺丰快递今天能送到吗?从广州到济南。。 顺丰从广州发的到济南,现在在潍坊了,今天还有希望到吗,或者明天上午能... QQ,账号密保手机被改? 2023年7月1日到2024年4月17日总多少天 只是在家里听CD用,有什么好的台式CD机? 茶陵一周天气预报 该穿什么衣服 比亚迪应如何设置不旋转? 比亚迪秦中控大屏可以电动旋转吗? 茶陵天气预报 比亚迪宋网易云软件电脑屏幕怎样自动旋转 电影《三毛流浪记》播放开头时的背景音乐是什么?节奏有点快的?_百度知... 重读《万水千山走遍》,看到寂寞的三毛 有关三毛评书的一点疑问 在教师面试说课的时候怎么样才能不像在背稿子,家人说我在背稿子... 一个610升冰箱一个月大概用多少钱 贴钢化膜手机会费电吗 广东环境保护工程职业学院的学院鉴定 为什么贴了钢化膜手机冲电超慢 钢化膜与水凝膜哪个省电 为什么我的电脑的硬盘会无缘无故的坏死~~~!!!? 有种爱叫严厉初中作文800字 严厉一种爱优秀作文600字 水陆手柄坦克遥控器怎么充电 分期付款买的车,每个月都按时交款了,保险没交,该审车也没审,公司 情侣之间是天天聊天好,还是不聊天好? ...有点想和她聊聊,你们说和她聊好还是不聊好? 好久不见,好久没聊了,是不是从此不见不聊为好? ...说好好工作,少聊天,那是不让聊天的意思?还是不要经常聊天的意思... 河北2020高考分数线 ...直接用支付宝发起转账,说付款后系统会自动同步,是真的假的 荣耀50屏幕多大 阿莫西林克拉维酸钾(4:1)分散片是用来治疗什么病的? 杨梅用英语怎么说 请问一下 “巴欣”这个药的成分是什么啊? 请问La province de jiangxi est elle belle? J'habite a rouen是... 温州百丽鞋是真的吗 为什么天然珍珠要水煮 梦见房地产,周公解梦梦到房地产是什么意思,做梦梦见房地产好不好 手机充电器不接手机会耗电吗? 皮鞋,皮衣发霉发臭怎么弄? wark hard 是什么意思 warking翻译中文什么意思 firewark翻译成中文是什么意思 ...joy school. how does he walk to wark?什么意思