2016-06-28 85 views
-3

場景bash腳本是 -監視器文件

位置的/ opt /數據/10差分文件名與前一天結束
如 - file_1_20160627

我需要檢查這10個文件是否存在。

如果存在,我需要顯示輸出 - 「OK - file_1_20160627存在」寫入輸出/tmp/report.txt文件

如果文件不存在,我想的一樣如上 - 「失敗 - file_1_20160627不存在」寫入輸出在同/tmp/report.txt文件腳本運行時每天

內容在該文件上必須更換。

我試圖寫,但我不擅長腳本。下面的腳本僅適用於4個文件。我覺得很多事情都需要改變。

感謝有人幫我創建這個腳本。

#!/bin/bash 

now=`date +%Y%m%d%H%M%S` 
time=`date +%H%M` 
week=`date +%a` 


/bin/rm -f /tmp/report.txt 

if [ "$time" -ge 1300 ] && [ $time -lt 2359 ]; then 
if [ "$week" == Sun ]; then 

       if [ -f "find /opt/data/ -type f -name "file_1_`date -d "1 day ago" +%Y%m%d`.txt"" ]; 
       then 
        echo "OK - file_1 file does exist" >> /tmp/report.txt 
       else 
        echo "Failed - file_1 file does not exist." >> /tmp/report.txt 

       fi 

       if [ -f "find /opt/data/ -type f -name "file_2_`date -d "1 day ago" +%Y%m%d`.txt"" ]; 
       then 
        echo "OK - file_2 file exist." >> /tmp/report.txt 
       else 
        echo "Failed - file_2 file does not exist" >> /tmp/report.txt 
       fi 
     else 

     fi 

       if [ -f "find /opt/data/ -type f -name "file_3_`date -d "1 day ago" +%Y%m%d`.txt"" ]; 
       then 
        echo "OK - file_3 file exist" >> /tmp/report.txt 
       else 
        echo "Failed - file_3 file does not exist" >> /tmp/report.txt 
       fi 

       if [ -f "find /opt/data/ -type f -name "file_4_`date -d "1 day ago" +%Y%m%d`.txt"" ]; 
       then 
        echo "OK - file_4 file exist" >> /tmp/report.txt 
       else 
        echo "Failed - file_4 file does not exist" >> /tmp/report.txt 
       fi 
     else 

     fi 
+2

什麼* *明確你需要哪些幫助?我們不會爲你寫整個腳本。你堅持什麼特定的部分? –

+0

實際循環部分有點困惑 – lfreez

回答

1
PREFIX="/opt/data" 
REPORT="/tmp/report.txt" 
DATE=$(date +%Y%m%d) 

rm "$REPORT" 

for i in `seq 1 10`; 
    do 

      FILENAME="file_${i}_${DATE}" 
      FULLFN="$PREFIX/$FILENAME" 
      if [ -f "$FULLFN" ]; then 
        echo "OK - $FILENAME exists" >> $REPORT 
      else 
        echo "Failed - $FILENAME do not exist" >> $REPORT 
      fi 
    done 
+2

在開始追加之前,您忘記了刪除報告。 – RedX

+1

@RedX回答更新,謝謝! – Lino

+2

和你不使用前一天的日期:) – nouseforname