2016-12-17 150 views
-1

我發出一個bash腳本內的wget命令,雖然它說一切正常,我找不到文件!下載後wget不能文件文件 - IPV6只有debian服務器

我有一個目錄結構如下所示:

/home/foo/.x/.y 

/home/foo/.x,我有bash腳本xy.sh,與內容:

#!/bin/bash 

cd /home/foo/.x/.y 
echo "Start job at: $(date)" >> /home/foo/.log.log 
URL1="http://xyz1.com/11.csv.zip" 
URL2="http://xyz2.com/111.csv.zip" 
URL3="http://xyz3.com/1111.csv.zip" 
URL4="http://xyz4.com/11111.csv.zip" 
URL5="http://xyz5.com/111111.csv.zip" 
URL6="http://xyz6.com/1111111.csv.zip" 
URL7="http://xyz7.com/11111111.zip" 
wget -q "${URL1}" 
echo " job 1 done: $(date)" >> /home/foo/.log.log 
wget -q "${URL2}" 
echo "job 2 done at: $(date)" >> /home/foo/.log.log 
wget -q "${URL3}" 
echo " job 3 done at: $(date)" >> /home/foo/.log.log 
wget -q "${URL4}" 
echo " job 4 done at: $(date)" >> /home/foo/.log.log 
wget -q "${URL5}" 
echo " job 5 done at: $(date)" >> /home/foo/.log.log 
wget -q "${URL6}" 
echo " job 6 done at: $(date)" >> /home/foo/.log.log 
wget -q "${URL7}" 
echo "End job at: $(date)" >> /home/foo/.log.log 
exit 0 

日誌指示文件已被下載,但我找不到文件/home/foo/.x/.y

PS:當我用wget正常下載文件時(沒有bash scriptin G)將文件下載很好..

FYI:服務器是IPV6唯一的服務器..

+0

爲什麼不爲wget使用-O選項並指定文件應該在哪裏結束? – ivanivan

回答

1

在你的腳本你只是一個沒有logiccal依賴的命令序列。例如,在檢索URL1後,即使wget失敗,也會顯示消息。 嘗試更換此:本

wget -q "${URL1}" 
echo " job 1 done: $(date)" >> /home/foo/.log.log 

wget -q "${URL1}" \ 
    && echo " job 1 done: $(date)" >> /home/foo/.log.log \ 
    || echo " job 1 Failed $(date)" >> /home/foo/.log.log \ 

的 「& &」 和 「||」用於有條件地執行「回顯」命令。如果wget成功,則「完成」,否則「失敗」。 由於您對wget使用「-q」選項,因此您將無法看到其失敗的原因,所以直到找出失敗的原因,我建議刪除「-q」,以便您可以看到輸出,如下所示:

wget "${URL1}" >> /home/foo/.log.log 2>&1 \ 
    && echo " job 1 done: $(date)" >> /home/foo/.log.log \ 
    || echo " job 1 Failed $(date)" >> /home/foo/.log.log \ 

所有信息將被存儲在日誌中。

+0

我會試試這個,但我不明白爲什麼wget正在做'工作'(我知道這是從我的日誌中獲得的),但沒有保存文件?這真是奇怪! – JohnJ

+0

如果wget工作,你應該在'/ home/foo/.x/.y'目錄下有文件。如果wget不起作用,你應該有一些原因的日誌。 – czvtools

+0

你的問題解決是正確的..它只是不下載..我的VPS是一個IPv6唯一的服務器..這是否會影響下載? – JohnJ

0

/home/foo/.x/.y是否存在?

如果從wget中刪除-q選項,會發生什麼情況?

爲了排除故障,我建議在#!/ bin/bash下添加「set -ueo」 - 這會讓你更清楚地指出問題所在。