日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux定时器crontab用法

發(fā)布時(shí)間:2024/1/1 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux定时器crontab用法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

初識(shí)定時(shí)器

在Linux終端通過crontab -e命令,向文件中寫入*/1 * * * * /home/ysl/tmp/SendMail.py(crontab表達(dá)式),即添加了一項(xiàng)每1分鐘執(zhí)行1次的定時(shí)任務(wù)。

crontab

表達(dá)式格式

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 區(qū)間為 0 – 59
hour: 區(qū)間為0 – 23
day-of-month: 區(qū)間為0 – 31
month: 區(qū)間為1 – 12. 1 是1月. 12是12月
Day-of-week: 區(qū)間為0 – 7. 周日可以是0或7
full-path-to-shell-script:shell腳本(要求絕對(duì)路徑,且目錄存在)
* 代表所有可能的值
/{num} 代表間隔周期
1,2,3 代表多選
1-3 代表范圍

選項(xiàng)

crontab [ -u user ] -e:修改crontab文件。如果文件不存在會(huì)自動(dòng)創(chuàng)建
crontab [ -u user ] -l:顯示crontab文件內(nèi)容
crontab [ -u user ] -r 刪除crontab文件
crontab [ -u user ] -ir:刪除crontab文件前提醒用戶
crontab file:用$HOME目錄下的文件替代目前的crontab。可用于恢復(fù)crontab文件

日志文件

位置:/var/log/cron.log
只會(huì)記錄是否執(zhí)行了某些計(jì)劃的腳本,但是具體執(zhí)行是否正確以及腳本執(zhí)行過程中的一些信息并不會(huì)記錄在日志文件中

進(jìn)程

/etc/init.d/crond start/restart/stop
ps -ef | grep crond

案例

0 11 4 * 1-3 command line
每個(gè)月的4號(hào)與每個(gè)禮拜的禮拜一到禮拜三的早上11點(diǎn)

*/30 [3-5],[17-20] * * * /bin/sh /home/omc/h.sh >/dev/null 2>&1 >> /var/spool/cron/root
每天3-5,17-20每隔30分鐘執(zhí)行一次腳本

0 14 * * 5 date_time=`date +’\%Y-\%m-\%d \%H:\%M:\%S’` && /home/ysl/tmp/SendMail.py >> “/home/ysl/tmp/SendMail-$date_time.log” 2>&1 &
每周五14點(diǎn)執(zhí)行/home/ysl/tmp/SendMail.py,并將日志輸出到/home/ysl/tmp/SendMail-{運(yùn)行時(shí)間}.log文件中。
!!注意:crontab文件中無法理解%的含義,因而需要將%轉(zhuǎn)義。

crontab注意事項(xiàng)

  • 在crontab中%是有特殊含義的,表示換行的意思。如果要用的話必須進(jìn)行轉(zhuǎn)義%,如經(jīng)常用的date ‘+%Y%m%d’在crontab里是不會(huì)執(zhí)行的,應(yīng)該換成date ‘+\%Y\%m\%d’。否則會(huì)出現(xiàn),手動(dòng)執(zhí)行腳本OK,crontab死活不執(zhí)行的情況
  • crontab執(zhí)行shell時(shí),不能識(shí)別Java的環(huán)境變量,只能識(shí)別為數(shù)不多的環(huán)境變量,普通的環(huán)境變量是無法識(shí)別的,所以在編寫shell時(shí),最好使用export重新聲明變量,確保腳本執(zhí)行。引用環(huán)境變量時(shí)需要,*/1 * * * * source /etc/profile && …
  • root用戶的任務(wù)調(diào)度操作可以通過“crontab –uroot –e”來設(shè)置,也可以將調(diào)度任務(wù)直接寫入/etc/crontab文件,需要注意的是,如果要定義一個(gè)定時(shí)重啟系統(tǒng)的任務(wù),就必須將任務(wù)放到/etc/crontab文件,即使在root用戶下創(chuàng)建一個(gè)定時(shí)重啟系統(tǒng)的任務(wù)也是無效的
  • 定時(shí)任務(wù)里面的程序腳本盡量用全路徑
  • 當(dāng)crontab突然失效時(shí),可以嘗試/etc/init.d/crond restart解決問題
  • 定時(shí)任務(wù)分類

    Linux下的任務(wù)調(diào)度分為兩類,系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。

    系統(tǒng)任務(wù)調(diào)度

    系統(tǒng)周期性所要執(zhí)行的工作,比如寫緩存數(shù)據(jù)到硬盤、日志清理等。
    /etc/crontab文件,這個(gè)就是系統(tǒng)任務(wù)調(diào)度的配置文件。

    查詢系統(tǒng)定時(shí)處理任務(wù)的路徑:路徑1:cd /etc/logrotate.d/ -->可以寫定時(shí)任務(wù)less syslog 路徑2:cat /etc/crontab -->不推薦使用,但是可以看格式路徑3:ls /etc/ | grep cron*anacrontabcron.d -->同路徑2 ,可以寫定時(shí)任務(wù) cron.dailycron.deny -->控制普通用戶使用定時(shí)任務(wù)crontabcron.hourlycron.monthlycrontabcron.weekly

    用戶任務(wù)調(diào)度

    用戶定期要執(zhí)行的工作,比如用戶數(shù)據(jù)備份、定時(shí)郵件提醒等。
    用戶可以使用 crontab -e來定制自己的計(jì)劃任務(wù)。
    用戶crontab文件都被保存在/var/spool/cron/目錄中。其文件名與用戶名一致

    周邊

    通過at命令來控制在指定的時(shí)間運(yùn)行任務(wù)
    at -f test-cron.sh -v 10:25
    其中-f 指定腳本文件, -v 指定運(yùn)行時(shí)間

    參考
    https://www.cnblogs.com/aminxu/p/5993769.html
    https://blog.csdn.net/weixin_41712499/article/details/99437222
    https://www.cnblogs.com/ftl1012/p/crontab.html

    總結(jié)

    以上是生活随笔為你收集整理的Linux定时器crontab用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。