使用at和cron實現任務計劃
cron被用來排程重複的任務,而at被用來在指定時間內排程一次性的任務。一旦一個作業被提交,at命令將會保留所有當前的環境變數,包括路徑,該作業的所有輸出都將以電子郵件的形式傳送給使用者
系統的延時任務和定時任務
1.延時任務(at)
使用at命令可以在某一指定時間內排程一項一次性作業,at命令後面必須先指定時間,接著指定日期
命令的用法:
at [選項] [時間引數]
at [選項]
選項 | 選項的含義 |
-f<指令碼> |
所要提交的指令碼或命令 |
-l | 列出當前所有等待執行的作業 |
-d | 清除某個作業,需要提供相應的作業標識(ID) |
-m | 作業完成後個使用者發郵件 |
-c<作業標識號> | 在命令列上列出的作業標準輸出 |
-t<時間> | 在指定時間提交作業執行,時間格式為[[CC]YY]MMDDhhmm |
時間引數的格式
時間引數 | 描述 |
HH:MM | 比如04:00代表4:00AM。如果時間已過,他就會在第二天的這一時間執行 |
Midnight | 代表12:00AM(即00:00) |
Noon | 代表12:00PM(即12:00) |
Teatime | 代表4:00PM(即16:00) |
英文月名 日期 年份 | 比如“January 15 2018”代表2014年1月15,年份可有可無 |
MMDDYY、MM/DD/YY或MM.DD.YY | 比如“011519”代表2019年1月15號 |
now+時間 | 時間以minutes,hours,days或weeks為單位,比如“now +5days”代表命令在5天后的此時此刻執行 |
[root@localhost ~]# at 11:52 #設定任務執行時間
at> rm -rf /mnt/file* #任務動作
at> <EOT> <---> ctrl+d #用ctrl+d發起任務
job 1 at Tue Jul 31 11:52:00 2018
[root@localhost ~]# at now+1min #延時1分鐘
at> echo hello
at> <EOT>
job 2 at Tue Jul 31 11:53:00 2018
at -l #檢視任務列表
at -c 任務號 #檢視任務內容
at -r 任務號 #取消任務執行
注意:
當任務有輸出時,輸出會以郵件形式傳送給at任務的發起者
mail -u root #檢視超級使用者的郵件
number #檢視第幾封郵件
-q 退出
> /var/spool/mail/root #清空郵件
2.at命令的執行權力設定
/etc/at.deny ###使用者黑名單,在此名單中出現的使用者不能執行at命令
/etc/at.allow ###使用者白名單,名單預設不存在,但名單一旦出現,黑名單失效,系統所有使用者預設不能執行at,只有在名單中出 現的使用者可以使用at命令
2.定時任務
使用crom實現任務,任務計劃可以通過修改/etc/crontab檔案以及使用crontab命令實現,其結果是一樣的。
發起方式一 crontab命令
使用crontab命令可以建立愛你,修改,檢視以及刪除crontab條目
命令格式:
crontab [選項]
crontab [選項] [檔案]
選項 | 選項含義 |
-u<使用者名稱> | 使用者名稱,如果使用自己的使用者名稱登陸,就不需要使用該選項 |
-e | 編輯使用者的crontab |
-l | 列出使用者的crontab中的內容 |
-r | 刪除使用者的crontab |
-i | 刪除使用者的crontab前進行提示 |
crontab -u username -e
crontab -u username -r
crontab -u username -l
發起方式二
vim /etc/cron.d/filename
分鐘 小時 天 月 周 使用者 動作
* * * * * root rm -fr /mnt/* #超級使用者每分鐘清裡一此/mnt
crontab 命令的執行權力設定
/etc/cron.deny ##使用者黑名單,在此名單中出現的使用者不能執行crontab命令
/etc/cron.allow ##使用者白名單,名單預設不存在,但名單一旦出現,黑名單失效
##系統所有使用者預設不能執行crontab,只有在名單中出現的使用者可以使用
把westos添在使用者黑名單,此時使用者黑名單裡的使用者不能執行此權力,所以westos只能有讀的權力,相反若是使用者在使用者白名單,就可以執行crontab權力
3.系統臨時檔案的管理
系統中服務在正常執行時會產生臨時檔案
/usr/lib/tmpfiles.d/*.conf ##系統中臨時檔案的配置
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##執行臨時檔案配置
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清理臨時檔案
相關文章
- 如何使用 cron 任務在 Linux 中計劃和自動化任務Linux
- 在 Linux 中怎麼使用 cron 計劃任務Linux
- Linux 中怎麼設定計劃任務:cron 與 anacronLinux
- 實現一個“計劃任務”機制
- 教你如何使用 cron 來安排任務
- 關於使用 go cron 庫(任務排程)平滑關閉的實現Go
- mysql和oracle計劃任務MySqlOracle
- Golang——Cron 定時任務Golang
- 程式和計劃任務_______GongWei1997Go
- 如何使用cron任務每隔2天在固定時間執行任務
- linux基礎(四)——任務排程cron和anacronLinux
- linux定時任務cron配置Linux
- 分散式系統解耦模式:用事件代表時間觸發Cron計劃任務分散式解耦模式事件
- Linux 任務計劃管理Linux
- .NetCore Hangfire任務計劃NetCore
- GO的定時器Timer 和定時任務cronGo定時器
- cron計劃任務開啟成功,但是詭異的是顯示No scheduled commands are ready to run.
- 排查linux 定時任務cron crontabLinux
- 如何在Linux中加入cron任務Linux
- Laravel Cron 定時任務 “跳坑” 點Laravel
- Summary01 - cron任務、grep、find命令
- Oracle 任務管理之 ----program(程式)---scheduler(計劃)--Job(任務)Oracle
- win10計劃任務如何關閉_win10怎麼禁用計劃任務Win10
- 嗯,真香!使用 www-data 使用者執行定時任務(cron)
- PowerShell管理系統計劃任務
- 論linux下計劃任務示例Linux
- 使用 Laravel 制定 MySQL 資料庫備份計劃任務LaravelMySql資料庫
- 使用寶塔計劃任務啟動laravel排程器Laravel
- 網路配置及程序-系統效能和計劃任務
- 你現在用什麼工具進行計劃任務管理和知識管理的?
- 使用Node.js的Node-cron進行任務排程 - DilinaNode.js
- linux中crontab計劃任務怎麼刪除?linux中crontab計劃任務的刪除方法Linux
- win10計劃任務程式庫實現定時任務的自動執行程式及問題解決。Win10行程
- 程式與計劃任務管理(at 及 crontab)
- 使用Java實現定時任務排程Java
- 使用 Cron4j 表示式 在 Solon 裡開發定時任務
- 《無盡的任務》設計師:《無盡的任務》如何實現20年的使用者留存?
- Windows計劃任務出現0x1錯誤結果Windows