Linux下定時執行任務的幾種方式


  如果說我說如果,你的某一個目錄下會經常的生成一些垃圾文件,比如訪問日志、錯誤日志、core文件,而你又不想過幾分鍾就去手動檢查一下,那么可以使用定時執行任務的方式來解決。目前我所知道的可以執行定時任務的方式有這么幾種:crontab、后台腳本定時檢查。
下面對這幾種方式進行一下講解:


1、使用腳本
  這個方式比較簡單,就是寫個腳本,每次開機的時候自動讓它啟動,然后放在后台去執行就可以了。腳本代碼如下:

  $ cat cleanwitch.sh

 1 #!/bin/bash
 2 
 3 # which dir would you want to clean 
 4 # (please use absolute path like :
 5 # /a/b/c )
 6 # split with space
 7 #DIR_LIST="/root/temp /var/temp"
 8 PATH_LIST="/home/normal/temp /home/normal/var"
 9 
10 # time : every (x) second 
11 INTERVAL=3
12 
13 # file filter
14 FILE_FILTER="core.*"
15 
16 function clearfile()
17 {
18     rm -rf ${FILE_FILTER}
19 }
20 
21 while true ; do
22     sleep ${INTERVAL}
23     for WORKPATH in ${PATH_LIST} ; do
24         if [ -n ${WORKPATH} ] ; then
25             NOW_PATH=`pwd`
26             cd ${WORKPATH}
27             clearfile
28             cd ${NOW_PATH}
29         fi
30     done
31 done
View Code

  我們把這個文件放到/usr/local/bin目錄下,並且給可運行權限:

  $ chmod 755 cleanwitch.sh

這樣一個可以執行的腳本就寫好了,但是還沒有設置開機啟動呢。設置開機啟動的方式也比較簡單,就是在/etc/rc.local這個配置文件下增加一句運行我們這個腳本的命令就可以了,增加的這句話如下:

  /usr/local/bin/cleanwitch.sh &

為什么要在這句話后面加個&呢?因為在一個命令后面加上這個符號之后呢,這句腳本中運行的命令就會被放到后台作為一個服務去執行了。因為每次linux開機后都會去執行一次這個/etc/rc.local腳本,所以我們的清理腳本也會在開機的時候自動執行,並且每隔一段時間就會去執行我們讓它做的事情。

  需要注意的是,不同的linux發行版中,rc.local的位置可能不同,不過基本都在/etc這個總目錄下,如果實在找不到,可以使用下面的命令找一下:

  $ cd /etc/

  $ find -name rc.local

  如果要想停掉這個腳本怎么做呢?在命令行執行如下命令就可以了:

  $ killall cleanwitch.sh

2、第二種方式就是使用crontab了

  還不會~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM