Linux一次性計(jì)劃任務(wù)at命令使用詳解
前言
計(jì)劃任務(wù),就是有計(jì)劃的任務(wù),就是我們想按照我們的計(jì)劃自動(dòng)的執(zhí)行任務(wù)。
關(guān)鍵點(diǎn)有 2 個(gè):
第一個(gè)是計(jì)劃,第二個(gè)是自動(dòng)。
1.一次性計(jì)劃任務(wù)的介紹
所謂一次性計(jì)劃任務(wù),就是按照 計(jì)劃 只 執(zhí)行一次 的任務(wù)。
2.命令
Linux中的 at 命令就是用來(lái)創(chuàng)建一次性計(jì)劃任務(wù)的,at 命令有一個(gè)服務(wù) atd 會(huì)以后臺(tái)模式運(yùn)行,檢查當(dāng)前的時(shí)間來(lái)決定是否運(yùn)行“計(jì)劃”。
默認(rèn)情況下,atd 服務(wù)每 60 秒檢查一次目錄,有“計(jì)劃”時(shí),會(huì)檢查“計(jì)劃”運(yùn)行時(shí)間,如果“計(jì)劃運(yùn)行”的時(shí)間與當(dāng)前時(shí)間匹配,則運(yùn)行此“計(jì)劃”。
3.創(chuàng)建一次性計(jì)劃任務(wù)
首先,at 服務(wù)必須要開:
systemctl start atd
查看 atd 的狀態(tài)(是否為active):
systemctl status atd
查看是否開啟:
systemctl is-active atd
停掉atd服務(wù)(將不能再執(zhí)行一次性計(jì)劃任務(wù)):
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 命令來(lái)執(zhí)行一次性備份 yum 倉(cāng)庫(kù)文件,為了順利的查看 at 的執(zhí)行結(jié)果,使用下面命令來(lái)關(guān)閉 ntp 同步,并設(shè)置當(dāng)前時(shí)間
#timedatectl set-ntp 0 命令關(guān)閉了 ntp 同步 [root@localhost ~]# timedatectl set-ntp 0 #date -s "2021-12-1 16:58:30" 命令設(shè)置日期和時(shí)間 [root@localhost ~]# date -s "2021-12-1 16:58:30"
示例一:具體時(shí)間的一次性計(jì)劃任務(wù)
下午的5點(diǎn)執(zhí)行,即17:00執(zhí)行(如果此時(shí)的時(shí)間已經(jīng)過了當(dāng)天下午,那么,順延到第二天)
# 下面命令中的 <EOT> 是提交 at 的計(jì)劃任務(wù),使用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 查看一次性計(jì)劃任務(wù) [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
示例二:具體日期的一次性計(jì)劃任務(wù)
2021年12月12號(hào)的此刻執(zhí)行某腳本。
如果沒有指定time,那么就是定制計(jì)劃任務(wù)的time作為執(zhí)行天的time。(若指定的日期為當(dāng)天日期,則會(huì)在下一分鐘執(zhí)行計(jì)劃任務(wù))
[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
示例三:具體日期和時(shí)間的一次性計(jì)劃任務(wù)
在2021年12月13號(hào)的12點(diǎn)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點(diǎn)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
注:不能用過去的時(shí)間使用 at ,沒有后悔藥的
4.一次性計(jì)劃任務(wù)管理
4.1 查看一次性計(jì)劃任務(wù)
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 刪除一次性計(jì)劃任務(wù)
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查看一次性計(jì)劃任務(wù)的詳細(xì)信息
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.一次性計(jì)劃任務(wù)使用控制
at.allow (/etc/at.allow)
at.deny (/etc/at.deny)
用戶可以使用 at 命令設(shè)置一次性計(jì)劃任務(wù),那么 也可以控制哪些用戶可以使用計(jì)劃任務(wù)(在白名單中),哪些用戶不可以使用計(jì)劃任務(wù)
at 一次性計(jì)劃任務(wù)的白名單是 at.allow ,黑名單是 at.deny 。不建議既使用白名單,又使用黑名單。
建議使用白名單,at.allow 的優(yōu)先級(jí)高于 at.deny。即:wang 既在白名單,又在黑名單,則 wang 可以執(zhí)行at
默認(rèn)在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
到此這篇關(guān)于Linux一次性計(jì)劃任務(wù)at命令使用詳解的文章就介紹到這了,更多相關(guān)Linux一次性計(jì)劃任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Unixbench安裝報(bào)錯(cuò)信息的問題
下面小編就為大家分享一篇解決Unixbench安裝報(bào)錯(cuò)信息的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2017-12-12詳解把Node.js項(xiàng)目部署到阿里云服務(wù)器(CentOs)
本篇文章主要介紹了把Node.js項(xiàng)目部署到阿里云服務(wù)器,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04Linux系統(tǒng)中kill命令殺死進(jìn)程常用小技巧分享
這篇文章主要介紹了Linux系統(tǒng)中kill命令殺死進(jìn)程常用小技巧,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06利用iptables來(lái)配置linux禁止所有端口登陸和開放指定端口的方法
下面小編就為大家?guī)?lái)一篇利用iptables來(lái)配置linux禁止所有端口登陸和開放指定端口的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-01-01Linux下設(shè)置每天自動(dòng)備份數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Linux下設(shè)置每天自動(dòng)備份數(shù)據(jù)庫(kù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09