cron 每年执行一次_循环执行定时任务crontab
一、前言
小編最近在將線上服務器實時的請求都轉到測試機,但是由于請求量太多導致log不久就寫滿磁盤了,手動清理費事費力,因此考慮到自動清理,接觸到corntab定時任務。分享給各位。
二、crond介紹
在介紹crontab前,我們先了解下crond,因為crontab需要crond服務支持。crond是Linux下用來周期地執行某個任務或等待處理某些事件的一個守護進程。
crond服務操作說明:
????????啟動服務:service crond start
????????關閉服務:service crond stop
????????重啟服務:service crond restart
????????重新載入配置:service crond reload
其實,在安裝完成操作系統后,默認會安裝crond服務工具,并且crond服務默認自動啟動,crond進程每分鐘定期檢查是否可以使用crontab命令。
三、使用者權限管理
接下來介紹crontab命令的權限管理。Crontab是通過etc目錄下cron.allow和cron.deny文件來限制用戶是否可以使用crontab命令的,具體規則如下:
1、?當系統中只存在/etc/cron.allow文件時,只有寫入此文件的用戶才可以使用crontab命令,沒有寫入的用戶是不能使用crontab命令的。
2、?當系統中只存在/etc/cron.deny文件時,寫入此文件的用戶不能使用crontab命令,沒有寫人的用戶可以使用crontab命令。
3、?當兩個文件都存在時候,/etc/cron.allow優先級更高,/etc/cron.deny文件會被忽略。
? ? ? 每個用戶都可以實現自己的crontab定時任務,只需要執行”crontab -e”命令即可,前提是當前用戶不在cron.deny文件中。
四、crontab介紹
crontab命令基本格式如下:
????crontab [選項] [file]
注意,這里的 file 指的是命令文件的名字,表示將 file 作為 crontab 的任務列表文件并載入 crontab,若在命令行中未指定文件名,則此命令將接受標準輸入(鍵盤)上鍵入的命令,并將它們鍵入 crontab。下圖是此命令的常用選項:? ? ? ? ? ? ?
? ????
其實crontab定時非常簡單,只需執行”crontab -e”命令,然后輸入要執行的命令即可,不過我們打開的是一個空文件,操作方式和Vim是一樣的,只不過文件格式稍微復雜些。空文件的格式如下:
????* * * * *? 執行的任務
這個文件是通過5個*,確定執行任務的頻率的。5個*含義如下圖:
? ? ? ?當然只用這些還是不夠靈活,下圖中還有些特殊符號:
當“crontab -e”編輯完成之后,一旦保存退出,那么這個定時任務實際就會寫入 /var/spool/cron/ 目錄中,每個用戶的定時任務用自己的用戶名進行區分。而且 crontab 命令只要保存就會生效,只要 crond 服務是啟動的。五、系統的crontab
“crontab -e”是每個用戶都可以執行的命令,也就是,不同的用戶身份可以執行自己的定時任務。但是有些定時任務需要系統執行,這時就需要編輯 /etc/crontab 這個配置文件。并不是說/etc/crontab配置文件執行是不需要用戶身份,而是執行“crontab -e”命令中定時任務時候,此時用戶是當前登錄的用戶。而在修改/etc/crontab時候需要指定執行定時任務的用戶。配置系統的定時任務主要用兩種方法。
方法一、配置/etc/crontab
/etc/crontab的結構為下圖:
? ? ?添加定任務的結構與上面相似,不過需要指定執行定時任務的用戶。在/etc/crontab按照其格式添加定時任務保存即可。當然要確定crond服務是運行的。并且此文件只有root用戶才能更改,其他用戶是沒有權限更改的。
? ? ? ?方法二、配置/etc/cron.{daily,weekly,monthly} 目錄
?? ? ?將可以執行的腳本,賦予可執行權限,然復制到/etc/cron.{daily,weekly,monthly}目錄中的任意一個,比如,想讓某個腳本每月執行,將這個腳本copy到/etc/cron.monthly目錄下,那么這個腳本就會,每個月執行一次。
總結
以上是生活随笔為你收集整理的cron 每年执行一次_循环执行定时任务crontab的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java二维矩阵怎么进行转置_矩阵求导的
- 下一篇: c语言 判断一个图是否全连通_C语言:程