2014-05-05 58 views
-1

我正在編寫代碼以製作一些wget並在某些路由器中獲取備份文件。變量和名稱解析中的多個值

我的第一個問題是變量RT。如果我只在這個變量上聲明IP(並在wget行中添加/config.dat或其他任何內容),此腳本將起作用,否則會說「未找到目錄」。

如何在下面的腳本中聲明它?

我的第二個問題:我想說的是,輸出文件-O是第一個IP的擴展名爲.dat的IP,第三個IP的擴展名不會是擴展名。

就像我說的那樣,可以這樣做嗎?

#!/bin/sh 
RT="10.0.0.59/config.dat 10.0.0.60/cgi-bin/export_settings.cgi 10.0.0.66/rom-0" 
MT="10.0.0.57 10.0.0.58" 
L_RT="LOGIN" 
P_RT="PASSWORD" 

#FUTURE USE WITH TAR 
#tmp=$"(mktemp -d)" 
#trap -- 'rm -frv -- "$tmp"' EXIT 
#cd -- "$tmp" 

for bkp_rt in $RT; do 
    wget --auth-no-challenge --user=$L_RT --password=P_RT $bkp_rt -O $bkp_rt 
done 

更新我的腳本後。

#!/bin/bash 
RT="10.0.0.59/config.dat 10.0.0.60/cgi-bin/export_settings.cgi 10.0.0.66/rom-0" 
MT="10.0.0.57 10.0.0.58" 
L_RT="admin" 
P_RT="PASSWORD" 
L=MT="backup" 

#tmp=$"(mktemp -d)" 
#trap -- 'rm -frv -- "$tmp"' EXIT 
#cd -- "$tmp" 

for bkp_rt in $RT; do 

wget --auth-no-challenge --user=$L_RT --password=$P_RT \ 
"$bkp_rt" \ 
-O "$bkp_rt" 
done 

回答

0

您錯過了$--password=P_RT

如果您要使用10.0.0.60/cgi-bin/export_settings.cgi作爲文件名,您必須確保首先存在10.0.0.6010.0.0.60/cgi-bin目錄。

取得與wget的網址,你可能會需要指定方案:

for bkp_rt in $RT; do 
    mkdir -p "$(dirname "$bkp_rt")" 
    wget --auth-no-challenge --user="$L_RT" --password="$P_RT" "$bkp_rt" \ 
     -O "$bkp_rt" 
done 
+0

我這樣做,你提出的修改,這是輸出,當我執行腳本'yamash @皮特凱恩:〜/腳本$ ./rt_backup.sh 10.0.0.59/config.dat:未找到文件或目錄 10.0.0.60/cgi-bin/export_settings.cgi:找不到文件或目錄 10.0.0.66/rom-0:File or目錄未找到「 –

+0

我想你需要清楚你傳遞給wget的URL。你的RT字符串是否正確? –

+0

對不起,我是一個begginer,所以我不明白你的意思,我將編輯我的主要帖子與腳本是如何現在。 –