當前位置:首頁 » 文件傳輸 » shell腳本實現ftp的連接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

shell腳本實現ftp的連接

發布時間: 2022-06-24 21:10:06

『壹』 linux系統內 怎麼使用shell實現自動上傳文件到ftp伺服器

ftp自動登錄上傳單個文件。
把下面腳本另存為文件加入到crontab中即可實現ftp自動上傳文件。
####把本地/home/databachup/a.sh up ftp /home/databackup 下####
#!/bin/bash
ftp -n<<!
open 192.168.1.171
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
put a.sh a.sh
close
bye
!
註解:
1. -n 不受.netrc文件的影響。(ftp默認為讀取.netrc文件中的設定)
2. << 是使用即時文件重定向輸入。
3. !是即時文件的標志它必須成對出現,以標識即時文件的開始和結尾。

『貳』 求助:使用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

『叄』 shell腳本中ftp連接

對,$?僅表示上一個命令ftp成功與否。
無法判斷遠程文件是否存在,只能通過判斷本地文件大小來得知。
若遠程文件不存在,則FTP獲取到本地會產生一個0位元組大小的文件(用 wc -c 獲取文件位元組數,並與0比較即可),也可能就沒有產生文件(用test表達式 [ -e $save_name ] 來判斷)。
無法判斷具體是什麼問題,只能得知一個結果:FTP獲取文件失敗。
--------------------------------------------------------------------------------------------
根據你自己的情況來判斷。那就用 [ -e $save_name ] 判斷本地文件是否存在。
--------------------------------------------------------------------------------------------
-e 判斷文件是否存在(exist),-f 判斷這個「文件」是否為文件(file)

『肆』 shell腳本ftp到遠程目錄

1.下載遠程電信機房中機器上已打包好的數據.這個不難,一條語句搞定.
復制代碼代碼如下:
wget
ftp://user_name:password@ip_address:port/dir/file_name
2.定時任務,需要寫個腳本,並加入定時任務中.
a.腳本.假設你計劃將遠程的文件備份到/var/www/html/back目錄下,到這個目錄下,新建文件,內容如下
復制代碼代碼如下:
!#/bin/sh
cd
/var/www/html/back/
wget
ftp(上面那條語句)
保存為bak.sh
b.加入定時任務.直接vi
/etc/crontab
在最後一行加入如下語句
復制代碼代碼如下:
30
18
*
*
*
root
/var/www/html/back/bak.sh(腳本保存的位置)
這樣每天下午6:30本地的centos機器自動會將遠程FTP的文件備份到/var/www/html/back中了.

『伍』 用shell 腳本登陸遠程ftp 1.如何確認ftp連接成功2.如何確認文件是否上傳成功3.如何返回一些參數信息

在上傳的機器寫個驗證腳本。用cron定時執行。

『陸』 shell腳本中ftp問題

ftp 登錄後,我感覺是不支持shell語法的(目前還不確定),建議使用mget 下載多個文件!

『柒』 求linux下寫shell腳本 FTP直接連接內網里的伺服器的思路

不用shell腳步,安裝一個埠映射工具,比如stunnel,把C的ftp埠映射到B即可,你在A上訪問B的ftp就會映射到C的ftp。

『捌』 shell連接ftp的腳本

區別在於排版不同
你使用<< FTPINI時, 下面的行都要在定格寫,即行開頭不能有空格,直至結束,如
ftp -i -n $ip << FTPINI
cd /pub
ls
FTPINI

而加了-後,下面的行可以加入tab排版,如
ftp -i -n $ip <<-FTPINI
cd /pub
ls
FTPINI

『玖』 vba 中的用shell連接FTP伺服器問題問題

因為shell
語句
是調用
程序
來運行的,你應該調用程序,並且把
參數傳遞
給程序,這樣就行了...
比如,Shell
"C:\Program
Files\Internet
Explorer\iexplore.exe
www..com",這樣就能用IE鏈接到網路上...
你的可以試試Shell
"C:\Program
Files\Internet
Explorer\iexplore.exe
ftp://[email protected]\123\123\12#.xls",用Shell
"C:\WINDOWS\explorer.exe
"
&
"ftp://[email protected]\123\123\12#.xls"也可以...我這邊測試時沒
許可權
,上不去...
由於你是連接
伺服器
,有時需要
用戶許可權
,這樣的話,
參數
就要相對復雜一點...

『拾』 編寫腳本,如何實現自動ftp到相應的環境,並下載相應的文件(shell)

可是試試用 wget 下載。這個可以登錄下載一起完成。
組織一下寫入shell腳本中(因為你的具體情況我不清楚,所以腳本代碼不知道該怎麼給你寫,你自己寫進去吧):

wget -c -t 10 "ftp://user:passwd@IP/dir/file" & > /dev/null

===============
後台靜默執行,如果出錯會顯示出錯信息(沒有將錯誤信息送到null中就是此意)。
如果要指定要下載到的目錄,就這樣
wget -c -t 10 "ftp://user:passwd@IP/dir/file" -P 目標目錄
=========================