1. 程式人生 > >有一臺服務器作為web應用,有一個目錄(/data/web/attachment)不定時地會被用戶上

有一臺服務器作為web應用,有一個目錄(/data/web/attachment)不定時地會被用戶上

find 用戶 cut ont stat txt 結果 tar brush

有一臺服務器作為web應用,有一個目錄(/data/web/attachment)不定時地會被用戶上傳新的文件,但是不知道什麽時候會上傳。所以,需要我們每5分鐘做一次檢測是否有新文件生成。

請寫一個shell腳本去完成檢測。檢測完成後若是有新文件,還需要將新文件的列表輸出到一個按年、月、日、時、分為名字的日誌裏。


思路: 每5分鐘檢測一次,那肯定需要有一個計劃任務,每5分鐘去執行一次。腳本檢測的時候,就是使用find命令查找5分鐘內有過更新的文件,若是有更新,那這個命令會輸出東西,否則是沒有輸出的。我們可以把輸出結果的行數作為比較對象,看看它是否大於0。


#! /bin/bash
d=`date -d " -5 min" +%Y%m%d%H%M`
m=/data/web/attachment
find  $m/ -type f -mmin -5 > /tmp/newf.txt
n=`wc -l /tmp/newf.txt |cut -d ' ' -f1`
if [ $n -gt 0 ]
then
   /bin/mv/  /tmp/newf.txt   /tmp/$d.log
fi




給腳本設置可執行權限:chmod +x filename


使用cron任務計劃

crontab -e 打開編輯任務計劃

寫入

*/5 * * * *  /tmp/filename.sh
##表示每5分鐘執行一次


從左到右依次為:分,時,日,周,命令

“*”代表取值範圍內的數字

“/”代表每

“-”代表從某個數字-某個數字

“,”分開幾個離散的數字

crond服務是否啟動:service crond status

啟動計劃任務:service crond start

有一臺服務器作為web應用,有一個目錄(/data/web/attachment)不定時地會被用戶上