千家信息网

在Linux中如何使用at和crontab命令在指定时间计划任务服务程序

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章的内容主要围绕在Linux中如何使用at和crontab命令在指定时间计划任务服务程序进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧
千家信息网最后更新 2026年11月02日在Linux中如何使用at和crontab命令在指定时间计划任务服务程序

这篇文章的内容主要围绕在Linux中如何使用at和crontab命令在指定时间计划任务服务程序进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!

经验丰富的系统运维工程师可以使得Linux在无需人为介入的情况下,在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。尽管我们现在已经有了功能彪悍的脚本程序来执行一些批处理工作,但是,如果仍然需要在每天凌晨两点敲击键盘回车键来执行这个脚本程序,这简直太痛苦了(当然,也可以训练您的小猫在半夜按下回车键)。接下来,将向大家讲解如何设置服务器的计划任务服务,把周期性、规律性的工作交给系统自动完成。
计划任务分为一次性计划任务与长期性计划任务,大家可以按照如下方式理解。

顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用at命令实现这种功能,只需要写成"at 时间"的形式就可以。如果想要查看已设置好但还未执行的一次性计划任务,可以使用"at -l"命令;要想将其删除,可以用"atrm 任务序号"。在使用at命令来设置一次性计划任务时,默认采用的是交互式方法。例如,使用下述命令将系统设置为在今晚23:30分自动重启网站服务。

[root@liangxu ~]# at 23:30at > systemctl restart httpdat > 此处请同时按下Ctrl+d来结束编写计划任务job 3 at Mon Apr 27 23:30:00 2015[root@liangxu ~]# at -l3 Mon Apr 27 23:30:00 2016 a root


如果想挑战一下难度更大但简捷性更高的方式,可以把管道符(任意门)放到两条命令之间,让at命令接收前面echo命令的输出信息,以达到通过非交互式的方式创建计划一次性任务的目的。

[root@liangxu ~]# echo "systemctl restart httpd" | at 23:30job 4 at Mon Apr 27 23:30:00 2015[root@liangxu ~]# at -l3 Mon Apr 27 23:30:00 2016 a root4 Mon Apr 27 23:30:00 2016 a root


如果我们不小心设置了两个一次性计划任务,可以使用下面的命令轻松删除其中一个:

[root@liangxu ~]# atrm 3[root@liangxu ~]# at -l4 Mon Apr 27 23:30:00 2016 a root


如果我们希望Linux系统能够周期性地、有规律地执行某些具体的任务,那么Linux系统中默认启用的crond服务简直再适合不过了。创建、编辑计划任务的命令为"crontab -e",查看当前计划任务的命令为"crontab -l",删除某条计划任务的命令为"crontab -r"。另外,如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。

在正式部署计划任务前,请先念一下口诀"分、时、日、月、星期 命令"。这是使用crond服务设置任务的参数格式。需要注意的是,如果有些字段没有设置,则需要使用星号(*****)占位。

使用crond设置任务的参数格式

使用crond设置任务的参数字段说明

字段说明
分钟取值为0~59的整数
小时取值为0~23的任意整数
日期取值为1~31的任意整数
月份取值为1~12的任意整数
星期取值为0~7的任意整数,其中0与7均为星期日
命令要执行的命令或程序脚本

假设在每周一、三、五的凌晨3点25分,都需要使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。我们可以使用crontab -e命令来创建计划任务。为自己创建计划任务无需使用-u参数,具体的实现效果的参数如crontab -l命令结果所示:

[root@liangxu ~]# crontab -eno crontab for root - using an empty onecrontab: installing new crontab[root@liangxu ~]# crontab -l25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot


需要说明的是,除了用逗号(,)来分别表示多个时间段,例如"8,9,12"表示8月、9月和12月。还可以用减号(-)来表示一段连续的时间周期(例如字段"日"的取值为"12-15",则表示每月的12~15日)。以及用除号(/)表示执行任务的间隔时间(例如"*/2"表示每隔2分钟执行一次任务)。

如果在crond服务中需要同时包含多条计划任务的命令语句,应每行仅写一条。例如我们再添加一条计划任务,它的功能是每周一至周五的凌晨1点钟自动清空/tmp目录内的所有文件。尤其需要注意的是,在crond服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,如果不知道绝对路径,请用whereis命令进行查询,rm命令路径为下面输出信息中加粗部分。

[root@liangxu ~]# whereis rmrm: /usr/bin/rm /usr/share/man/man1/rm.1.gz /usr/share/man/man1p/rm.1p.gz[root@liangxu ~]# crontab -ecrontab: installing new crontab[root@liangxu ~]# crontab -l25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot0 1 * * 1-5 /usr/bin/rm -rf /tmp/*

最后,再来啰嗦几句在工作中使用计划服务的注意事项。

在crond服务的配置参数中,可以像Shell脚本那样以#号开头写上注释信息,这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。

计划任务中的"分"字段必须有数值,绝对不能为空或是*号,而"日"和"星期"字段不能同时使用,否则就会发生冲突。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

感谢你的阅读,相信你对"在Linux中如何使用at和crontab命令在指定时间计划任务服务程序"这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注网站!小编会继续为大家带来更好的文章!

任务 命令 服务 系统 参数 时间 程序 一次性 字段 整数 信息 功能 方式 星期 脚本 工作 同时 周期 网站 路径 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司经营范围 互联网科技资迅 互联网科技作文 致骋互联网科技 互联网科技排名 成都互联网科技公司 互联网巨头投资的硬核科技 中盈科技互联网信息有限公司 央行互联网金融科技公司 贵州叶脉互联网科技有限公司所属行业 洛阳共同富裕互联网科技有限公司 中科明德北京互联网科技 伊宁互联网科技做什么的 工业互联网展湾科技股份有限公司 南京一网一红互联网科技有限公司 世界互联网科技成果奖 易租星互联网科技有限公司 互联网时代高科技布局 北京军民互联网科技公司 河南商务圈互联网科技有限公司 科技与互联网 菲比寻常互联网科技 长亮科技互联网金融 互联网科技公司招聘 互联网保险科技创业 乌鲁木齐新华智原互联网科技学校 上海互联网科技公司ppt 互联网公司属于科技吗 中国互联网公司的科技投入 网互联网络科技
0