linux设备负责执行计划任务,Linux计划任务详解,很详细,每一行命令都有相对应的白话解释。...
計劃任務
計劃任務的作用是:做一些周期性的任務,目前最主要的用途是定期備份數據。
計劃任務主要分為一次性調度執行at和循環調度執行cron,下面我就圍繞著at和cron來講解。
一次性調度執行at
at一次性調度的語法格式是:at timespec
timespec示例:一:at now +1min 一分鐘后執行計劃任務
二:at 16:00?tomorrow ?明天下午16點執行
三:at 10:00?1/1/2021 (在2021年的1月1日上午十點執行)
四:at 10:00 AM tomorrow (在明天上午10點執行)
五:at 10:00 +4 days (在四天后的上午十點執行)
at 查詢任務的語法是:atq
at 刪除任務的語法是:atrm 任務ID
下面是實測環節,設置兩個定時創建用戶的任務,一個1分鐘后創建,一個明天創建,查詢任務,驗證結果,把明天創建用戶的任務刪除。
[root@localhost ~]# at now +1 min //at命令在1分鐘后創建一個用戶qqt
at> useradd qqt //
at> //按Ctrl+d結束
job 4 at Tue Aug 11 01:34:00 2020 //
[root@localhost ~]# at now +30 min //at命令在30分鐘后創建一個用戶bbt
at> useradd bbt //
at> //
job 5 at Tue Aug 11 02:03:00 2020 //
[root@localhost ~]# atq //查看計劃任務列表
4Tue Aug 11 01:34:00 2020 a root //
5Tue Aug 11 02:03:00 2020 a root //
[root@localhost ~]# id qqt //查看qqt用戶
uid=1675(qqt) gid=1675(qqt) 組=1675(qqt)
[root@localhost ~]# atq
5Tue Aug 11 02:03:00 2020 a root
[root@localhost ~]# atrm 5 //刪除任務號5的計劃任務
[root@localhost ~]# atq //查看下任務列表還有沒有任務5的計劃任務
循環調度執行cron
cron的概念和crontab是不可分割的。crontab是一個命令,常見于Unix和Linux的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“/etc/crontab”文件中,以供之后讀取和執行。
crond程序運行是計劃任務執行的根本,因此首先要查看crond狀態命令在下面
[root@localhost ~]# systemctl status crond.service
cron管理方式有三種,創建計劃,查詢計劃,刪除計劃,分別是以下三條命令;注:管理員可以使用 -u username, 去管理其他用戶的計劃任務;計劃任務存儲位置在/var/spool/cron/中
[root@localhost ~]# crontab -e //創建計劃任務
[root@localhost ~]# crontab -l //查詢計劃任務
[root@localhost ~]# crontab -r //刪除計劃任務
cron語法格式是:
| .------------- 分鐘?(0 - 59)
|? | .---------- 小時(0 - 23)
|? |? ?| .------- 日(1 - 31)
|? |? |? ?| .---- 月(1 - 12) OR jan,feb,mar,apr ...
|? |? |? ?|? ?| 周(0 - 6) (周日=0 or 7)
* * * * * 命令
示例:0 * * * * /mysql_back.sh? ?每小時的0分執行? ? ? ?0 2 1,4,6 * * /mysql_back.sh??每月的1,4,6日的2點整執行
*/5 * * * * /mysql_back.sh? ? ??每五分鐘執行? ? ? ?0 2 5-9 * * /mysql_back.sh??每月5日到9日的兩點整執行
* * * * * /mysql_back.sh? ?每分鐘執行? ? ? ??0 2 * * * /mysql_back.sh? ??每天兩點整執行
0 2 14 * * /mysql_back.sh? ? ? 每月14號的2點整執行? ? ?0 2 14 2 * /mysql_back.sh? ?2月14日2點整執行
0 2 * * 5 /mysql_back.sh? ? ? ?不寫月日,僅周生效,每月的周五,兩點執行
0 2 2 6 5 /mysql_back.sh? ? ?書寫月和日,月或日,月日周均生效?6月2日的兩點整執行和6月的周五兩點整執行
示例,創建一個每隔一分鐘執行創建文件的計劃任務
[root@localhost ~]touch 9.sh //創建一個文件9.sh
[root@localhost ~]echo "/usr/bin/touch /root/`date +%F-%H-%M-%S`.txt">9.sh
//向9.sh中寫入程序,/usr/bin/touch 這是一個創建文件命令,您也可以換成其他命令;/root/ 這是創建的文件存放的位置,存放在/root/下,您也可以更改;`date +%F-%H-%M-%S`.txt 這是創建文件的名稱,%F等價于 %Y-%m-%d即年月日,%H-%M-%S是時分秒,.txt是文件名的一部分
[root@localhost ~]# chmod +x 9.sh //為文件9.sh加上執行權限
[root@localhost ~]# crontab -e //創建任務計劃
* * * * * /root/9.sh //在任務計劃中寫上這段話,每分鐘執行一次/root/9.sh這個命令
[root@localhost ~]# crontab -l //查看循環計劃任務
* * * * * /root/9.sh
2020-08-11-02-21-02.txt //這是計劃任務自動創建的文件
2020-08-11-02-22-01.txt
2020-08-11-02-23-01.txt
[root@localhost ~]# crontab -r //刪除計劃任務,否則他會一直自動創建文件。
總結
以上是生活随笔為你收集整理的linux设备负责执行计划任务,Linux计划任务详解,很详细,每一行命令都有相对应的白话解释。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记:面向对象高级编程(
- 下一篇: Python学习笔记:面向对象高级编程(