文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux一次性计划任务at命令怎么用

2023-06-21 22:37

关注

这篇文章主要为大家展示了“Linux一次性计划任务at命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux一次性计划任务at命令怎么用”这篇文章吧。

前言

计划任务,就是有计划的任务,就是我们想按照我们的计划自动的执行任务。

关键点有 2 个:

第一个是计划,第二个是自动。

1.一次性计划任务的介绍

所谓一次性计划任务,就是按照 计划 只 执行一次 的任务。

2.命令

Linux中的 at 命令就是用来创建一次性计划任务的,at 命令有一个服务 atd 会以后台模式运行,检查当前的时间来决定是否运行“计划”。

默认情况下,atd 服务每 60 秒检查一次目录,有“计划”时,会检查“计划”运行时间,如果“计划运行”的时间与当前时间匹配,则运行此“计划”。

3.创建一次性计划任务

首先,at 服务必须要开:

systemctl start atd

查看 atd 的状态(是否为active):

systemctl status atd

查看是否开启:

systemctl is-active atd

停掉atd服务(将不能再执行一次性计划任务):

systemctl stop atd

[root@localhost ~]# vim /root/backup-yum-repo.sh[root@localhost ~]# cat /root/backup-yum-repo.sh #!/bin/bashmkdir /opt/yum-repo-backup-dir -pcp -r /etc/yum.repos.d /opt/yum-repo-backup-dir/yum.repos.d-`date +"%Y-%m-%d-%H:%M:%S"`.bak[root@localhost ~]# chmod +x backup-yum-repo.sh

使用 at 命令来执行一次性备份 yum 仓库文件,为了顺利的查看 at 的执行结果,使用下面命令来关闭 ntp 同步,并设置当前时间

#timedatectl set-ntp 0 命令关闭了 ntp 同步[root@localhost ~]# timedatectl set-ntp 0#date -s "2021-12-1 16:58:30" 命令设置日期和时间[root@localhost ~]# date -s "2021-12-1 16:58:30"

示例一:具体时间的一次性计划任务

下午的5点执行,即17:00执行(如果此时的时间已经过了当天下午,那么,顺延到第二天)

# 下面命令中的 <EOT> 是提交 at 的计划任务,使用ctrl+d即可出现[root@localhost ~]# at 5:00PMwarning: commands will be executed using /bin/shat> /root/backup-yum-repo.shat> <EOT>job 5 at Wed Dec  1 17:00:00 2021# atq 查看一次性计划任务[root@localhost ~]# atq5Wed Dec  1 17:00:00 2021 a root[root@localhost ~]# date;atq;ls /opt/yum-repo-backup-dir/Wed Dec  1 16:59:50 CST 20215Wed Dec  1 17:00:00 2021 a root[root@localhost ~]# date;atq;ls /opt/yum-repo-backup-dir/Wed Dec  1 17:00:02 CST 2021yum.repos.d-2021-12-01-17:00:00.bak

示例二:具体日期的一次性计划任务

2021年12月12号的此刻执行某脚本。

如果没有指定time,那么就是定制计划任务的time作为执行天的time。(若指定的日期为当天日期,则会在下一分钟执行计划任务)

[root@localhost ~]# at 2021-12-12warning: commands will be executed using /bin/shat> /root/backup-yum-repo.shat> <EOT>job 6 at Sun Dec 12 17:07:00 2021[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root

示例三:具体日期和时间的一次性计划任务

在2021年12月13号的12点12分执行

[root@localhost ~]# at 12:12 2021-12-13warning: commands will be executed using /bin/shat> /root/backup-yum-repo.shat> <EOT>job 7 at Mon Dec 13 12:12:00 2021[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root

示例四:在5天后的9点15分执行

[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root[root@localhost ~]# at 9:15 + 5 dayswarning: commands will be executed using /bin/shat> /root/backup-yum-repo.shat> <EOT>job 8 at Mon Dec  6 09:15:00 2021[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root8Mon Dec  6 09:15:00 2021 a root

示例五:在周一执行

[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root8Mon Dec  6 09:15:00 2021 a root[root@localhost ~]# at mondaywarning: commands will be executed using /bin/shat> /root/backup-yum-repo.sh            at> <EOT>job 9 at Mon Dec  6 17:18:00 2021[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root8Mon Dec  6 09:15:00 2021 a root9Mon Dec  6 17:18:00 2021 a root

注:不能用过去的时间使用 at ,没有后悔药的

4.一次性计划任务管理

4.1 查看一次性计划任务

atq

[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root8Mon Dec  6 09:15:00 2021 a root9Mon Dec  6 17:18:00 2021 a root

4.2 删除一次性计划任务

atrm

[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root8Mon Dec  6 09:15:00 2021 a root9Mon Dec  6 17:18:00 2021 a root[root@localhost ~]# atrm 8[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root9Mon Dec  6 17:18:00 2021 a root

4.3查看一次性计划任务的详细信息

at -c job_id

[root@localhost ~]# atq6Sun Dec 12 17:07:00 2021 a root7Mon Dec 13 12:12:00 2021 a root9Mon Dec  6 17:18:00 2021 a root[root@localhost ~]# at -c 7

5.一次性计划任务使用控制

at.allow (/etc/at.allow)

at.deny (/etc/at.deny)

用户可以使用 at 命令设置一次性计划任务,那么 也可以控制哪些用户可以使用计划任务(在白名单中),哪些用户不可以使用计划任务

at 一次性计划任务的白名单是 at.allow ,黑名单是 at.deny 。不建议既使用白名单,又使用黑名单。

建议使用白名单,at.allow 的优先级高于 at.deny。即:wang 既在白名单,又在黑名单,则 wang 可以执行at

默认在rhel8.0系统中没有 at.allow 文件,可以自己创建。

# 将用户 wang 添加到黑名单[root@localhost ~]# cat /etc/at.deny wang[root@localhost ~]# su - wang[wang@localhost ~]$ atYou do not have permission to use at.# 将用户 wang 既添加到黑名单,又添加到白名单[root@localhost ~]# cat /etc/at.allowwang[root@localhost ~]# cat /etc/at.deny wang[root@localhost ~]# su - wang[wang@localhost ~]$ atGarbled time

以上是“Linux一次性计划任务at命令怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯