有一臺服務器作為web應用,有一個目錄(/data/web/attachment)不定時地會被用戶上
阿新 • • 發佈:2018-01-17
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)不定時地會被用戶上