详解Linux下crontab的使用与注意事项

crontab是一个用于设置周期性被执行的指令。其守护进程为crond. crontab分为两种配置模式,一种为用户级的crontab,一种为系统级的crontab,这里我们分开来谈。

用户级crontab

用户使用新建循环型工作调度时,使用的crontab命令,crontab -e所有用户都可以使用,普通用户也只能为自己设置计划任务。然后自动写入/var/spool/cron/usename

用户控制文件

/etc/cron.allow :
将可以使用crontab的用户写入,仅该文件内的用户可以使用crontab,相当于白名单

/etc/cron.deny :
将禁止使用crontab的用户写入,仅该文件内的用户禁止使用crontab,相当于黑名单
其中/etc/cron.allow优先级大于/etc/cron.deny,为避免混淆,建议二者仅使用一个。

命令

crontab [-u usename] [-l|-e|-r]
参数:
-u:只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度
-e: 调用vi编辑crontab的工作内容
-l: 列出crontab的工作内容
-r: 删除所有crontab的工作内容。

语法

# .—————- 分钟 (0 – 59)
# | .————- 小时 (0 – 23)
# | | .———- 日期 (1 – 31)
# | | | .——- 月份 (1 – 12) OR jan,feb,mar,apr …
# | | | | .—- 周几 (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * 命令

语法与系统级crontab很相似,不同点在于此处不需要指定执行用户,而系统级crontab(/etc/crontab)中需要。

举例如下:

*/10 * * * * /home/test.sh   #每隔10分钟就以当前用户执行一次/home/test.sh脚本
0 2 * * * /home/test.sh     #每天2点 
0 5,17 * * * /home/test.sh   #每天5点、17点
0 17 * * sun /home/test.sh   #每周日17点
0 4,17 * * sun,mon /home/test.sh#每周一、周日
@reboot /home/test.sh      #系统重启时

这里推荐一个在线小工具:在线生成cron表达式

系统级crontab

系统级crontab一般用于系统的例行性任务,这种方法更加方便与直接直接给其他用户设置计划任务,而且还可以指定执行shell等。配置文件为/etc/crontab,该文件仅root用户能够编辑。

编辑/etc/crontab

默认内容如下:

SHELL=/bin/bash  这里是指定使用哪种shell接口 
PATH=/sbin:/bin:/usr/sbin:/usr/bin 这里指定文件查找路径 
MAILTO=root             如果有额外的STDOUT,以email将数据送给谁,可以指定系统用户,也可以指定email地址,如[email protected]
# For details see man 4 crontabs
# Example of job definition:
# .---------------- 分钟 (0 - 59) 
# | .------------- 小时 (0 - 23)
# | | .---------- 日期 (1 - 31)
# | | | .------- 月份 (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- 周几 (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * 用户名 命令

即:

分 时 日 月 周 执行用户 任务命令

比如我要添加一个计划任务,每隔10分钟就以root身份执行一次/home/test.sh脚本,则在后面添加:

*/10 * * * * root /home/test.sh

这里注意,不要漏掉执行者root(用户级的crontab中不需要指定执行者),否则会在/var/log/cron日志中出现”ERROR (getpwnam() failed)”错误,计划任务无法正常运行。

重启服务

一般来说Linux下的crontab会自动帮我们每分钟重新读取一次 /etc/crontab 的例行工作事项,但是出于某些原因或者是其他的Unix系统中,由于crontab是读到内存当中的,所以栽修改完 /etc/crontab 之后,可能并不会马上执行,这时候需要重启crontab服务。

这里以CentOS为例:

service crond start  //启动服务 
service crond stop   //关闭服务 
service crond restart //重启服务 
service crond reload  //重载配置 
service crond status  //服务状态

如果是CentOS 7则:

systemctl restart crond.service //重启服务 
systemctl start crond.service  //启动服务 
systemctl stop crond.service  //停止服务 
systemctl reload crond.service //重载配置 
systemctl status crond.service //服务状态

其他注意事项

取消不需要的输出

当执行结果或者执行的选项中有输出的数据时,该数据会通过mail发送给MAILTO指定的账号,若某一个调度一直出错,同时mail服务出现问题(事实上我根本就没开这个服务),将会产生大量的文件于 /var/spool/clientmqueue/ ,所以最好是将crontab里面的命令后面加上> /dev/null 2>&1

2>:重定向错误。
2>&1:把错误重定向到输出要送到的地方。即把上述命令的执行结果重定向到 /dev/null ,即抛弃,同时,把产生的错误也抛弃。

检查日志

日志保存在 /var/log/cron 中

语法区别

  • crontab -e命令会检查语法,而vim编辑 /etc/crontab 则不会,这里注意的是,crontab -e不需要写执行者用户名,而 /etc/crontab 需要指定。
  • 执行路径必须使用绝对路径,否则可能无法正常执行。
  • 周与日、月不能共存,即你可以分别以周或者是日、月为单位进行循环,但不可指定“几月几号且为星期几”的模式工作。

参考资料

鸟哥的Linux私房菜

本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/169781.html<

(0)
管理的头像管理
上一篇2025-03-22 02:25
下一篇 2025-03-22 02:26

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注