網站首頁 編程語言 正文
前言
計劃任務,就是有計劃的任務,就是我們想按照我們的計劃自動的執行任務。
關鍵點有 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/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 命令來執行一次性備份 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: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號的此刻執行某腳本。
如果沒有指定time,那么就是定制計劃任務的time作為執行天的time。(若指定的日期為當天日期,則會在下一分鐘執行計劃任務)
[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分執行
[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分執行
[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
示例五:在周一執行
[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 的優先級高于 at.deny。即:wang 既在白名單,又在黑名單,則 wang 可以執行at
默認在rhel8.0系統中沒有 at.allow 文件,可以自己創建。
# 將用戶 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
原文鏈接:https://blog.csdn.net/xiaotongzhi_w/article/details/121674508
相關推薦
- 2022-03-26 使用C語言如何輸出逆序數_C 語言
- 2022-02-05 Tableau中如何將兩個數據源的數據進行關聯(數據混合)?
- 2022-10-10 Axios和Jquery實現文件上傳功能_jquery
- 2022-07-18 properties配置文件解耦合連接數據庫的原理
- 2023-02-06 Python類中__init__()?和self的詳細解析_python
- 2022-06-18 C#使用Monitor類實現線程同步_C#教程
- 2023-04-03 python中super().__init__()作用詳解_python
- 2022-10-20 Swift繼承Inheritance淺析介紹_Swift
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支