做一些週期性的任務,在生產中主要定時備份資料任務排程級別分為:
計畫任務的方式分為兩種
安裝at
[root@localhost ~]# yum install at
啟動atd服務
[root@localhost ~]# systemctl start atd
[root@localhost ~]# systemctl status atd
● atd.service - job spooling tools
loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
active: active (running) since sat 2019-06-01 20:19:06 cst; 4s ago
main pid: 7404 (atd)
設定atd任務
[root@localhost ~]# at 12:35
at> mkdir /opt/hhh
at> job 4 at sat jun 1 12:35:00 2019
處通過ctrl+d儲存退出設定atd任務的其他指定時間方式
at 20:00 2018-10-1 在某一天
at now +10min 在10分鐘之後執行
at 17:00 tomorrow 明天下午5點執行
at 6:00 pm +3 days 在三天以後的下午6點執行
檢視是否生效
[root@localhost ~]# date
sat jun 1 12:34:47 cst 2019
[root@localhost ~]# ls /opt/
[root@localhost ~]# date
sat jun 1 12:35:17 cst 2019
[root@localhost ~]# ls /opt/
hhh
檢視所有任務(atq | at -l)
[root@localhost ~]# at 20:00 2019-06-01
at> mkdir /opt/test
at> job 7 at sat jun 1 20:00:00 2019
[root@localhost ~]# atq
7 sat jun 1 20:00:00 2019 a root
[root@localhost ~]# at -l
7 sat jun 1 20:00:00 2019 a root
檢視具體任務的內容,需要使用上面檢視的編號
[root@localhost ~]# at -c 7
...$ << 'marcindelimiter11f8e4d7'
mkdir /opt/test
marcindelimiter11f8e4d7
或者可以檢視這些任務存放位置(沒有執行過的任務)
/var/spool/at/
刪除計畫任務
[root@localhost ~]# atrm 7
[root@localhost ~]# atq
[root@localhost ~]#
啟動服務
[root@localhost ~]# systemctl start crond
[root@localhost ~]# systemctl status crond
● crond.service - command scheduler
loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
active: active (running) since sat 2019-06-01 19:49:40 cst; 6h left
main pid: 3933 (crond)
常用引數
crontab -e 編輯cron任務
crontab -r 刪除cron任務
crontab -u mk 指定mk使用者的cron服務
crontab -l 列出當前使用者的cron服務的詳細內容
crontab -u root -l 列出指定使用者的cron計畫任務
crontab -u mk -r root刪除mk使用者的cron計畫任務
-e編輯時的語法12
3456
符號***
***解釋
分鐘小時
幾號月份
星期幾command
取值範圍
0-59
0-23
1-31
1-12
0-6command
特殊符號含義
符號含義舉例*
代表取值範圍內的任意數字
任意 / 每一天
/指定時間的間隔頻率
*/10
-代表從某個數字到某個數字
8-17
,分開離散的幾個數字
6,12-18,21
測試:
每分鐘寫入hhhh到該檔案
[root@localhost ~]# crontab -e
* * * * * echo "hhhh" >> /opt/echo.txt
過一段時間檢視
[root@localhost ~]# cat /opt/echo.txt
hhhh
hhhh
每天凌晨2點1分備份資料
[root@localhost ~]# crontab -e
1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2
指定使用者檢視計畫任務
[root@localhost ~]# crontab -u root -l
1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2
* * * * * echo "hhhh" >> /opt/echo.txt
如果別人通過某乙個使用者寫入計畫任務,但是我們不知道是哪一使用者,該如何排查呢
[root@localhost ~]# crontab -u bin -e
所有使用者的計畫任務,都會在/var/spool/cron/下產生相應的檔案
[root@localhost ~]# ls /var/spool/cron/
bin root
系統任務排程的配置檔案
/etc/crontab
[root@localhost ~]# cat /etc/crontab
shell=/bin/bash
path=/sbin:/bin:/usr/sbin:/usr/bin
mailto=root
# for details see man 4 crontabs
# example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) or jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
可以在檔案後加入
* * * * * root echo "hhhh" >> /opt/echo.txt
/etc/cron.d/ 是系統自動定期需要做的任務,但是又不是按照小時,天,星期,月來執行的,那就放在這個目錄下面
cron.deny 控制
Linux計畫任務
1.at命令 指定乙個時間執行乙個任務。2.cron命令 根據乙個時間表自動執行任務。3.anacron命令 在乙個指定時間間隔錯過後自動執行任務。at命令 安排乙個任務在未來執行,需要乙個系統後台atd程序。4.如果這個程序沒有開啟,那麼執行 etc init.d atd restart chkc...
Linux 計畫任務
at命令可以在某一指定時間排程一次性作業命令格式 at q x l f file d v time引數含義 q使用指定的佇列來儲存at資料,預設儲存在a佇列,隊列表號為a z,a z總52個 l列出所有的at計畫任務,等同於atq命令 d刪除at計畫任務,等同於atrm v列出所有已經完成單尚未刪除...
linux計畫任務
cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動 關閉這個服務 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbin se...