网站首页 包含标签 crontab 的所有文章

  • Linux如何设置定时任务

    定时任务crond Linux 可以定时执行指定的任务或程序,是一种常用工具。主要采用 crontab 命令: crontab -e # 编辑 crontab 任务 crontab -l # 查询 crontab 任务 crontab -r # 删除当前用户所有的 crontab 任务 在 crond 编辑中,可以采用如下方式编辑定时任务: * * * * * [command] 上述命令中: 第一个星号为分钟,取值为 0-59 这 60 个整数。 第二个星号为小时,取值为 0-23 这 24 个整数。 第三个星号为当月天数,取值为 1-31 这 31 个整数。 第四个星号为月份,取值为 1-12 这 12 个整数。 第五个星号为星期,取值为 0-6 这七个整数(0 为周日)。 以下是两个例子: # 每天 01 点 05 分自动关机 05 01 * * * /sbin/shutdown -h now # 每周日的 01 点 05 分自动重启 05 01 * * 0 /sbin/shutdown -r now 除使用星号代表所有值外,crontab 中还有以下符号: 逗号 , 可用于不连续时间。 横杠 - 用于表示时间范围。 斜杠 / 用于除以某个数,表示隔多久执行一次。 以下是几个示例: * * * 12 * # 每年的 12 月每一天的每一分钟都执行一次 58 5 9 * * # 每个月的 9 号 5 点 58 分执行一次 0 1,8,15,23 * * * # 每天的 1, 8, 15, 23 点整各执行一次 0 1-14 * * * # 每天 1 点到 14 点一小时执行一次 */15 * * * * # 每隔 15 分钟执行一次 单次定时计划at 与 crontab 的循环定时任务不同,at 命令用于制定一次性的定时任务。 如果系统没有 at 指令,则需要安装 sudo apt update && sudo apt install at 然后启动调度 atd 的守护进程: sudo systemctl enable --now atd 在使用 at 命令时,切记要确保 atd 在后台已经启动,可采用以下命令查询: ps -ef | grep atd ❝atd 会在每隔 60s 查询一次当前是否存在任务,若存在则执行一次,然后自动删除任务信息。❞ at 命令的使用规则如下: at [options] [runtime] 其中指定时间的方式比较复杂,甚至还有很多模糊的时间指代方式。我个人认为常用的指定时间应是这几种格式: # 指定当天具体的时间 at 16:00 # 指定某一天的具体时间 at 16:00 2023-09-21 # 指定多长时间后执行, 单位为 minutes, hours, days, weeks at now + 50 minutes at 16:00 2023-09-21 + 100 days 输入上述命令后,会进入 at 命令模式,在此输入需要执行的命令后回车,再用 Ctrl+D 完成输入并退出。例如: $ at now + 10 minutes warning: commands will be executed using /bin/sh at> ls > /home/ubuntu/mount0/test.log at> <EOT> job 5 at Thu Sep 21 17:46:00 2023 此时可以用 atq 命令来查询目前还未执行的任务。 atq # 输出以下内容 5 Thu Sep 21 17:46:00 2023 a bunian 在上述输出中,5 代表任务编号,该编号每执行一次 at 就会增加一个。a 是队列字母。 如果想要放弃还未执行的任务,则需执行以下命令即可。 atrm [任务编号] </div> ...

    2023-10-19 185

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注