2016-07-06 24 views
0

早上好,Bash腳本運行在一系列日期

我有一個關於特定的bash腳本,我試圖運行一個燃燒的問題。該腳本正在下載文件,然後將其保存到另一個文件夾。腳本不會每天都在cron上運行,而且我很好奇是否有方法來編寫它,所以如果我想念10天,它會知道從與每個特定對應的目錄下載文本文件我錯過了一天。我目前正在保存最後一個當前運行時的文本文件。這是我到目前爲止的一個例子!

#!/bin/bash 

    YMDa=$(date +%Y%m%d) 
    echo "${runtime}" 

    echo "${YMDa}" 


    wget --username --password http://somewebsite.com 

     mv nbcufs_master_10day_tmaxs master_10day_tmaxs_${YMDa} 
     mv master_10day_tmaxs_${YMDa} 'C:\Users\Wiggles\Documents\Microsoft Excel\SubDirectory1\SubDirectory2\SubDirectory3' 

    echo "${YMDa}" > latest_runtime 


exit 0 

回答

-1

你可能想看看這個鏈接:Bash: Looping through dates

因爲你提到「缺少的幾次約會」,你可以收集名稱/時間戳/ ECT檢索完最後一個過時的文件設置爲「開始日期」,然後通過以上鍊接上的響應實現從該日期開始的光標。我認爲Wintermute的迴應應該可以幫助您獲得所需的位置。

我cpburnz同意...給這個片段一掄(input_start將是你的最後一天跑)

#!/bin/bash 
input_start=20160101 
input_end=$(date +%Y%m%d) 

startdate=$(date -d "$input_start" +%Y%m%d) || exit -1 
enddate=$(date -d "$input_end" +%Y%m%d) || exit -1 

d="$startdate" 
while [ "$d" != "$enddate" ]; do 
    directory="`pwd`/folder/$d" 

    if [ -d $directory ]; then 
    echo "No action for $d." 
    else 
    echo "Files not found for date $d" 
    mkdir $directory 
    # Do more actions... 
    fi 

    d=$(date -d "$d + 1 day" +%Y%m%d) 
done 
+0

同意,更新後相應。嗯,經過很長時間的潛伏後,第一次嘗試堆棧交換。 – Jeremy

+0

非常感謝大家,如果我繼續碰到路障,我會再次發帖,但這種材料看起來會幫助我渡過難關! –