linux 计划任务设置

本文介绍如何使用at和crontab命令在Linux系统中设置一次性或周期性的自动执行任务,包括命令格式、时间设定及用户权限配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用at、crontab命令可以让命令在未来的某个时间自动执行

1 at命令

首先要想启用at服务,需要启用atd.service

systemctl start atd.service

at命令

作用:使命令在未来指定的某个时间运行,是一个一次性命令,默认从标准输入读入将来要执行的命令
格式: at [options] TIME

         options:
         -l                      列出队列中等待运行的作业,相当于atq
         -t time                 让任务在指定的时间运行,时间格式为[[CC]YY]MMDDhhmm[.ss]
         -d 作业编号              删除指定的作业,相当于atrm
         -c 作业编号              查看指定的作业任务
         -f /path/file           从文件中读取任务

其中若不加-t指定时间,可以用以下时间格式
HH:MM[YYYY-mm-dd]
now +count {minutes,hours,days,weeks}
例如

at now + 12 minutes  //意为从现在起再过12分钟执行此任务
at 8:00   //意为在8:00执行此任务

还有其它的时间格式
在这里插入图片描述
另外,at命令的队列存储在/var/spool/atd中

还可以对用户设置执行at命令的黑白名单:
在这里插入图片描述

2 crontab命令

crontab可以用来设置周期执行的计划任务
主要选项如下:

          - u user           指定用户user的计划任务,只有root可用
          - e                编辑任务
          - l                列出所有计划任务
          - r                移除所有计划任务
          - i                和r选项一起使用,交互式的删除计划任务

当用-e选项设置计划任务时,会进入编辑界面:

@reboot DiskCheck.sh >> /home/v/diskcheck.log //这是一个已经编辑好的计划任务
~
~
~
~
~
~

"/tmp/crontab.iopTzE" 1 line, 46 characters 

计划任务的时间编辑有一定的格式,用来指定周期性执行的时间,具体格式如下:
在这里插入图片描述
分别可指定分钟、小时、月份、天数、星期、计划任务所有者(若不写默认是当前用户)和要执行的命令或脚本

30 12 * * * command //在每天的12:30执行command命令
~                   //*表示是默认值,如若天数项为*则表示每一天,以此类推
~
~
~
"/tmp/crontab.iopTzE" 1 line, 46 characters

上面的编辑界面其实默认是用vim打开的,用:wq即可退出编辑,编辑完成后计划任务便会按时执行。
此外还有一些关键字可以用来设定时间
在这里插入图片描述
例如要每次开机时执行命令只需

@reboot command

另外切记在编辑界面中不能用 %
注:crontab也有allow和deny文件分别在
/etc/cron.allow
/etc/cron.deny

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值