ftpshell腳本
1. shell腳本實現的ftp中連續put文件,怎樣在多句put命令間加入休眠sleep
不太明白為什麼要在ftp文件時加sleep,而且裡面還加exit?
要執行sleep和exit必須在<< END-END外,笨點的辦法寫一個函數就可以了。
#!/bin/sh
ftp2put()
{
ftp -i -n <<END
open 10.1.128.112 3839
user admin0012 admin
binary
prompt off
put FTPPerformanceTest/$1 $2
bye
END
}
ftp2put 10Apt.txt 10
sleep 1
ftp2put 20Apt.txt 20
sleep 1
ftp2put 30Apt.txt 30
sleep 1
exit
2. 用shell腳本寫ftp時,怎麼自動填寫用戶名和密碼,而不用執行shell腳本後手動輸入用戶名和密碼
用
ftp -n <<EOF
3. shell腳本中ftp問題
ftp 登錄後,我感覺是不支持shell語法的(目前還不確定),建議使用mget 下載多個文件!
4. 如何編寫shell腳本實現ftp自動上傳
由於已經登陸進去FTP了,所以所使用的變數,就不是和當前shell變數一樣,即user和passwd不能用$user和$passwd來取值
5. 求助:使用SHELL語言編寫一個腳本實現ftp功能,將一個文件從本地a目錄取到伺服器b目錄。
下面這個是我一直在用的,會檢查ftp錯誤。
#!/bin/sh
ftp_put()
{
# -n:不使用auto-login;-i:不使用互動式提示輸入
ftp -n -i $ipAddr <<EOF
quote USER $username
quote PASS $password
cd b
lcd a
binary
put $myfile
bye
EOF
}
ipAddr=ftp地址
username=你的ftp用戶名
password=你的ftp密碼
myfile=你要傳的文件名(只要名稱無需路徑)
putErrlog=用於記錄ftp錯誤的日誌文件
ftp_put >/dev/null 2>$putErrlog #ftp錯誤導入日誌文件
bytes=`wc -c $putErrlog | awk '{print $1}'` #檢查錯誤日誌文件的位元組大小
if [ $bytes -ne 0 ]; then #大小不為0說明發生了錯誤,之後可以手動打開文件檢查錯誤原因
echo "FTP put failed!"
exit 1
else
echo "FTP put successfully!"
fi
exit 0
6. shell連接ftp的腳本
區別在於排版不同
你使用<< FTPINI時, 下面的行都要在定格寫,即行開頭不能有空格,直至結束,如
ftp -i -n $ip << FTPINI
cd /pub
ls
FTPINI
而加了-後,下面的行可以加入tab排版,如
ftp -i -n $ip <<-FTPINI
cd /pub
ls
FTPINI
7. shell腳本的FTP程序有點看不懂,請教解釋
1. -i表示關閉互動式登陸方式,就是就不問你什麼帳號密碼了
-n表示不使用.netrc自動登陸。.netrc是ftp的初始化文件
2. open 10.1.128.112 3839,這3839表示埠
3. 沒錯,是用戶名密碼
4. 這個應該錯了在我這ftp下沒這個命令,我這是centos 5.4
ftp> put FTPPerformanceTest/2.sh
local: FTPPerformanceTest/2.sh remote: FTPPerformanceTest/2.sh
local: FTPPerformanceTest/2.sh: No such file or directory
執行shell腳本也出錯
local: FTPPerformanceTest/2.sh: No such file or directory
改成put $1 $2後正常
5. ftp2put 20Apt.txt 20最終反應到shell腳本中的命令就是put 20Apt.txt 20,即把20Apt.txt上傳到ftp伺服器並改名為20
6. sleep 1 表示休眠1秒對吧?,對的。
8. 用shell腳本調用ftp命令,mget怎麼取得動態文件
#!/usr/bin/sh
TZ=TZ+96
day1=`date+%Y%m%d`
TZ=TZ+72
day2=`date+%Y%m%d`
TZ=TZ+48
day3=`date+%Y%m%d`
TZ=TZ+24
day4=`date+%Y%m%d`
TZ=TZ
day5=`date+%Y%m%d`
SERVER=server
USERNAME=username
PASSWORD=password
ftp-n$SERVER<<EOF
user$USERNAME$PASSWORD
cdremote_path
lcdlocal_path
binary
verbose
get$day1.mat
get$day2.mat
get$day3.mat
get$day4.mat
get$day5.mat
close
quit
EOF
9. shell腳本中ftp連接
你先看看你的IP是不是192開頭的並且大多數都是這樣的
192.168.1.什麼什麼的記住第3位一定要是1.