溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux一次性計劃任務at命令怎么用

發(fā)布時間:2021-12-03 13:32:29 來源:億速云 閱讀:276 作者:小新 欄目:開發(fā)技術

這篇文章主要為大家展示了“Linux一次性計劃任務at命令怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux一次性計劃任務at命令怎么用”這篇文章吧。

    前言

    計劃任務,就是有計劃的任務,就是我們想按照我們的計劃自動的執(zhí)行任務。

    關鍵點有 2 個:

    第一個是計劃,第二個是自動。

    1.一次性計劃任務的介紹

    所謂一次性計劃任務,就是按照 計劃 只 執(zhí)行一次 的任務。

    2.命令

    Linux中的 at 命令就是用來創(chuàng)建一次性計劃任務的,at 命令有一個服務 atd 會以后臺模式運行,檢查當前的時間來決定是否運行“計劃”。

    默認情況下,atd 服務每 60 秒檢查一次目錄,有“計劃”時,會檢查“計劃”運行時間,如果“計劃運行”的時間與當前時間匹配,則運行此“計劃”。

    3.創(chuàng)建一次性計劃任務

    首先,at 服務必須要開:

    systemctl start atd

    查看 atd 的狀態(tài)(是否為active):

    systemctl status atd

    查看是否開啟:

    systemctl is-active atd

    停掉atd服務(將不能再執(zhí)行一次性計劃任務):

    systemctl stop atd

    [root@localhost ~]# vim /root/backup-yum-repo.sh
    [root@localhost ~]# cat /root/backup-yum-repo.sh 
    #!/bin/bash
    mkdir /opt/yum-repo-backup-dir -p
    cp -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 命令來執(zhí)行一次性備份 yum 倉庫文件,為了順利的查看 at 的執(zhí)行結果,使用下面命令來關閉 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點執(zhí)行,即17:00執(zhí)行(如果此時的時間已經過了當天下午,那么,順延到第二天)

    # 下面命令中的 <EOT> 是提交 at 的計劃任務,使用ctrl+d即可出現(xiàn)
    [root@localhost ~]# at 5:00PM
    warning: commands will be executed using /bin/sh
    at> /root/backup-yum-repo.sh
    at> <EOT>
    job 5 at Wed Dec  1 17:00:00 2021
    # atq 查看一次性計劃任務
    [root@localhost ~]# atq
    5	Wed 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 2021
    5	Wed 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 2021
    yum.repos.d-2021-12-01-17:00:00.bak

    示例二:具體日期的一次性計劃任務

    2021年12月12號的此刻執(zhí)行某腳本。

    如果沒有指定time,那么就是定制計劃任務的time作為執(zhí)行天的time。(若指定的日期為當天日期,則會在下一分鐘執(zhí)行計劃任務)

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

    示例三:具體日期和時間的一次性計劃任務

    在2021年12月13號的12點12分執(zhí)行

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

    示例四:在5天后的9點15分執(zhí)行

    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    [root@localhost ~]# at 9:15 + 5 days
    warning: commands will be executed using /bin/sh
    at> /root/backup-yum-repo.sh
    at> <EOT>
    job 8 at Mon Dec  6 09:15:00 2021
    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    8	Mon Dec  6 09:15:00 2021 a root

    示例五:在周一執(zhí)行

    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    8	Mon Dec  6 09:15:00 2021 a root
    [root@localhost ~]# at monday
    warning: commands will be executed using /bin/sh
    at> /root/backup-yum-repo.sh            
    at> <EOT>
    job 9 at Mon Dec  6 17:18:00 2021
    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    8	Mon Dec  6 09:15:00 2021 a root
    9	Mon Dec  6 17:18:00 2021 a root

    注:不能用過去的時間使用 at ,沒有后悔藥的

    4.一次性計劃任務管理

    4.1 查看一次性計劃任務

    atq

    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    8	Mon Dec  6 09:15:00 2021 a root
    9	Mon Dec  6 17:18:00 2021 a root

    4.2 刪除一次性計劃任務

    atrm

    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    8	Mon Dec  6 09:15:00 2021 a root
    9	Mon Dec  6 17:18:00 2021 a root
    [root@localhost ~]# atrm 8
    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    9	Mon Dec  6 17:18:00 2021 a root

    4.3查看一次性計劃任務的詳細信息

    at -c job_id

    [root@localhost ~]# atq
    6	Sun Dec 12 17:07:00 2021 a root
    7	Mon Dec 13 12:12:00 2021 a root
    9	Mon 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 的優(yōu)先級高于 at.deny。即:wang 既在白名單,又在黑名單,則 wang 可以執(zhí)行at

    默認在rhel8.0系統(tǒng)中沒有 at.allow 文件,可以自己創(chuàng)建。

    # 將用戶 wang 添加到黑名單
    [root@localhost ~]# cat /etc/at.deny 
    wang
    [root@localhost ~]# su - wang
    [wang@localhost ~]$ at
    You do not have permission to use at.
    # 將用戶 wang 既添加到黑名單,又添加到白名單
    [root@localhost ~]# cat /etc/at.allow
    wang
    [root@localhost ~]# cat /etc/at.deny 
    wang
    [root@localhost ~]# su - wang
    [wang@localhost ~]$ at
    Garbled time

    以上是“Linux一次性計劃任務at命令怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI