實際的生產環境中,總會做一些定期的任務,比如數據備份,我們不可能總等到那個時間去手動執行,這時計劃任務就派上用場了。 ...
實際的生產環境中,總會做一些定期的任務,比如數據備份,我們不可能總等到那個時間去手動執行,這時計劃任務就派上用場了。
一次性計劃任務
at
- 一次性計劃任務
at [HH:MM] [YYYY-MM-DD]
設置完,按Ctrl + D
退出
1.獲取系統當前時間
[root@localhost ~]# date
2019年 08月 28日 星期三 00:30:41 CST
2.設置一次性計劃任務
[root@localhost ~]# at 00:33 2019-08-28
at> rpm -qa | wc -l > /opt/test.txt
at> <EOT>
job 1 at Wed Aug 28 00:33:00 2019
[root@localhost ~]# atq
1 Wed Aug 28 00:33:00 2019 a root
3.驗證結果
[root@localhost ~]# cat /opt/test.txt
1318
atq
- 查詢還未執行的計劃任務
[root@localhost ~]# atq
1 Wed Aug 28 00:33:00 2019 a root
atrm
- 刪除還未執行的計劃任務
[root@localhost ~]# at 00:35 2019-08-28
at> shutdown now
at> <EOT>
job 2 at Wed Aug 28 00:35:00 2019
[root@localhost ~]# atq
2 Wed Aug 28 00:35:00 2019 a root
[root@localhost ~]# atrm 2
[root@localhost ~]# atq
周期性計劃任務
crontab
- 周期性計劃任務
-e
:編輯計劃任務列表
-l
:列表顯示計劃任務
-r
:刪除計劃任務列表
-u
:指定用戶
- 配置文件:
[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
參數 | 說明 |
---|---|
分 | 0~59整數 |
時 | 0~23整數 |
日 | 1~31整數 |
月 | 1~12整數 |
周 | 0~7整數,0和7都表示星期日 |
命令 | 普通命令、程式腳本 |
* | 任意時間 |
- | 連續的時間範圍 |
, | 間隔的不連續時間 |
/ | 指定的間隔頻率 |
[root@localhost ~]# crontab -e
crontab: installing new crontab
[root@localhost ~]# crontab -l
50 1 * * * /usr/bin/cp -p /etc/passwd /root/passwd.bak
30 1 */3 * * /usr/bin/tar zcvf /opt/log.tar.gz /var/log/
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root