這個源於有個網友問,crontab里 */40 9 * * * 是不是代表9點開始每40分鍾執行? 直覺這個肯定不是從9:00開始每隔40分鍾執行一次,但是也不能肯定它代表一個什么樣的Schedule,那就做一個實驗驗證一下吧(有時候明明覺得自己已經掌握了一些知識點,但是總有一些問題,你不能很確切、肯定的回答,其實說明了還有盲點,知識點了解、掌握得不夠徹底)。
在crontab里面設置一個下面作業,然后在日志/var/log/cron里面,你可以看到定時任務的相關日志,然后就知道了這個作業的真實Schedule
*/40 9 * * * echo "hello" >> /tmp/text.txt
其實*/40表示每隔40分鍾執行一次,但是加上*/40 9以后,表示這個作業在9點鍾內,每隔四十分鍾執行。也就會說這個作業會在每天的9:00、 9:40各執行一次。
如果要設置自9點鍾開始,每隔40分鍾執行一次,使用下面配置即可。在解決問題的同時,也加深了對這個的理解!
*/40 9-23 * * * echo "hello" >> /tmp/text.txt
