Linux定時任務crontab通俗易懂簡單扼要地解析

笑江湖2100發表於2021-01-26

1、安裝crontab

  • 在配置好yum源的情況下,直接執行如下命令即可:
yum install crontab

2、檢視當前環境上已經有的定時任務有哪些?

  • 執行如下命令即可
crontab -l

如下,表示沒有定時任務

(base) [root@redrose2100 ~]# crontab
^C(base) [root@redrose2100 ~]# crontab -l
no crontab for root
(base) [root@redrose2100 ~]#

3、crontab定時任務的命令格式分別是啥含義?

  • 基礎格式如下
* * * * * command
  • 含義:
    • 1)五個星號從左到右分表代表了:分鐘(0-59)、小時(0-23)、天(1-31)、月(1-12)、星期(1-7)
    • 2)* 號表示每個任意一個合法值
    • 3)可以使用逗號隔開列舉,如 1,2,3
    • 4)可以使用-表示範圍,如1-10
    • 5)/ 表示間隔,比如第一位 */2 表示每兩分鐘
  • 常見舉例
 *  *  *  *  *  command                                                 每一分鐘執行一次command命令
10,20  *  *  *  *  command                                              每個小時的第10分鐘和第20分鐘執行command命令
10,20  6-10  *  *  *  command                                           6點到10點的第10分鐘和第20分鐘執行command命令
10,20  6-10  */2  *  *  command                                         每隔兩天 6點到10點的第10分鐘和第20分鐘執行command命令
10,20  6-10  *  *  1,3,5  command                                       每週一、三、五的 6點到10點的第10分鐘和第20分鐘執行command命令
10,20  6-10  */2  6,8  *  command                                       6月和8月每隔兩天 6點到10點的第10分鐘和第20分鐘執行command命令

4、如何在linux中設定定時任務

  • 1、執行 crontab -e 命令,然後輸入i進入插入模式,然後將定時任務命令寫入,如:
*  *  *  *  *   ls /opt

然後按【Esc】鍵,在按輸入:wq! 儲存退出即可

5、如何檢視設定的定時任務是否執行過?

執行如下命令即可:grep "定時任務中執行的command" /var/log/cron

如下表示已經執行了兩次了

(base) [root@redrose2100 ~]# grep "ls /opt" /var/log/cron
Jan 26 22:40:01 redrose2100 CROND[89621]: (root) CMD (ls /opt)
Jan 26 22:41:01 redrose2100 CROND[90282]: (root) CMD (ls /opt)
(base) [root@redrose2100 ~]#

6、如何刪除定時任務?

如果刪除某一條定時任務,則可以按照步驟4的方式刪除對應的一行定時任務即可,如果刪除所有定時任務,則執行crontab -r即可

如下,執行刪除所有定時任務之後,使用crontab -l已經顯示為空了

(base) [root@redrose2100 ~]# crontab -r
(base) [root@redrose2100 ~]# crontab -l
no crontab for root
(base) [root@redrose2100 ~]#

相關文章