導航:首頁 > 操作系統 > linuxftp下載腳本

linuxftp下載腳本

發布時間:2022-10-29 18:59:30

linux系統用shell寫個腳本ftp上傳下載文件,文件名帶日期。

這個不是一句話搞定的
vi xxxx.sh 寫一個腳本

#/bin/bash

DATE=`date "%Y%M%D"`
DIR=/xxxxx/xxx
cd $DIR
lftp -pxxx [email protected]
cd xxxxx
get $DATE.txt
exit

chmod +x xxxx.sh
然後 sh xxxx.sh

大致的結構這樣,具體的你要好好研究一下shell才可以。

⑵ Linux FTP腳本

試一下在put前,設置傳輸模式為二進制,即用 binary 命令

另外,是不是你的winrar不支持.gz格式的,結果導致它報錯?你可以試一下用其他格式壓縮,或者乾脆就不壓縮,直接傳一個文本或圖片文件過去看看有沒有傳輸的問題。

⑶ linux下用ftp命令從遠程ftp伺服器下載oracle的dmp再導入到本機oracle資料庫中的腳本問題

在bye之後su之前少了一個end

⑷ linux下ftp伺服器的上傳下載的過程

在我用的所有ftp伺服器中來說,首推iis7伺服器管理工具,而且一直在用,感覺非常好。它可以作為FTP的客戶端,想要進行FTP的上傳下載操作,只需要下載安裝iis7伺服器管理工具就可以了,操作不復雜!

簡單的介紹一下iis7伺服器管理工具:可以批量管理WIN系列伺服器、VPS、批量導入伺服器VPS的IP,埠,賬號和密碼 、批量打開N個伺服器VPS的遠程桌面、遠程桌面後,遠程窗口右上角會出現 伺服器備注的信息,如鄭州xxx號伺服器 5、遠程桌面後,不影響任務欄顯示。可以及時看其他窗口。支持多種方式連接,操作簡潔,自身附帶教程。


第一步:點擊主程序圖中「上傳下載」鍵;

第二步:點擊「 Ftp」;

第三步:點擊「添加」;

第四步:在彈出伺服器信息框中填寫Ftp信息,注意:FIP ip埠、賬號、密碼為必填項;

第五步:選擇需要打開的FTP伺服器;

第六步:點擊打開,即刻見FTP效果圖。

⑸ 求LINUX腳本,從ftp下載dmp文件,再導入到本機的oracle資料庫中,腳本該怎麼寫啊

編輯shell內容如下:
ftp -n xxx.xxx.xxx.xxx<<EOF
user username password
bin
mget xx.dmp
bye
EOF
imp xxx/xxx@xxx file=xx.dmp log=imp.log full=y ignore=y ......

⑹ 用shell的linux伺服器 .sh插件怎麼從遠程ftp伺服器下載文件

//ftpput.sh
[cpp] view plain
#!/bin/sh
#FileName:ftpput.sh
#Function:從本地客戶端向ftp伺服器上傳一個文件
#Version:V0.1
#Author:Sunrier
#Date:2012-07-20

#$#表示傳遞給此Shell腳本的參數個數
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <local_dir/filename> <remote_dir>"
exit 1
fi

#IP表示ftp的伺服器ip地址
IP=127.0.0.1
#IP=192.168.6.1

#FULLNAME獲取本地文件全路徑名
FULLNAME=$1

#DESTDIR獲取需要上傳的ftp遠程目錄路徑
DESTDIR=$2

#basename返回一個路徑中的文件名部分
#如FULLNAME="/home/Sunrier/Proj/log/test.log";
#當local_filename=`basename $FULLNAME`
#最終local_filename="test.log"
local_filename=`basename $FULLNAME`

#DESTFILE表示ftp伺服器的路徑,以及保存後的文件名
DESTFILE=$DESTDIR/$local_filename

#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
bin
passive
cd /home/remote/log/ftpfile
put $FULLNAME $DESTFILE
quit
FTPIT

exit 0

//注釋:
[cpp] view plain
#!/bin/sh
#FileName:ftpput.sh
#Function:從本地客戶端向ftp伺服器上傳一個文件
#Version:V0.1
#Author:Sunrier
#Date:2012-07-20

#$#表示傳遞給此Shell腳本的參數個數
#-lt表示小於
#-eq表示等於
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <local_dir/filename> <remote_dir>"
exit 1
fi

#IP表示ftp的伺服器ip地址
#IP=127.0.0.1
IP=192.168.6.1

#FULLNAME獲取本地文件全路徑名
FULLNAME=$1

#DESTDIR獲取需要上傳的ftp遠程目錄路徑
DESTDIR=$2

#basename返回一個路徑中的文件名部分
#如FULLNAME="/home/Sunrier/Proj/log/test.log";
#當local_filename=`basename $FULLNAME`
#最終local_filename="test.log"
local_filename=`basename $FULLNAME`

#DESTFILE表示ftp伺服器的路徑,以及保存後的文件名
DESTFILE=$DESTDIR/$local_filename

#-i表示在多個文件傳輸期間關閉交互提示
#-n表示禁止自動登錄到初始連接
#<<FTPIT 和最後的 FTPIT:術語叫:當前文檔here documents. here document 就是一段特殊目的的代碼塊,
#它使用I/O重定向的形式來將一個命令序列傳遞到一個交互程序或者命令中,比如ftp、cat,或者ex文本編輯器.
#本句可以理解從<<FTPIT開始以非對話模式的ftp連接,直到輸入FTPIT為止的所有命令.
#當然FTPIT這個名字是可以隨便取的,不一定必須是FTPIT,可以取其它的名字。
#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT

#連接到指定ftp伺服器上
open $IP
#連接到指定ftp伺服器上,並指定埠
#open $IP $PORT

#登陸ftp伺服器上的用戶名和密碼
#user username password
user Sunrier redhat

#bin表示以二進制方式傳輸
#bin等價於bi,binary等
#另一種方式傳輸是ascii,默認情況下,將文件傳輸類型設置為ASCII
bin

#主動模式的FTP是指伺服器主動連接客戶端的數據埠,被動模式的FTP是指伺服器被動地等待客戶端連接自己的數據埠
#被動模式的FTP通常用在處於防火牆之後的FTP客戶訪問外界FTP伺服器的情況.
#因為在這種情況下,防火牆通常配置為不允許外界訪問防火牆之後主機,而只允許由防火牆之後的主機發起的連接請求通過.
#因此在這種情況下不能使用主動模式的FTP傳輸,而被動模式的FTP可以良好的工作.
#passive表示設置為被動模式的FTP
passive

#cd表示更改ftp伺服器上(即遠程計算機)的工作目錄
cd /home/remote/log/ftpfile

#lcd表示更改本地計算機的工作目錄
#lcd /home/Sunrier/Proj/log/

#put local_file [ remote_file ]
#其中local_file是指定要復制的本地文件,remote_file是指定要復制的遠程計算機上的文件名,
#remote_file為可選項,如果不指定的話是和本地計算機上的文件名同名.
#put表示把本地路徑下的文件復制到FTP伺服器(遠程計算機)上設置的路徑下的文件
put $FULLNAME $DESTFILE

#quit表示結束與遠程計算機的FTP會話,並退出FTP.
#還有個等價的命令為bye(或by)結束與遠程計算機的FTP會話並退出FTP
quit

#here document塊結束
FTPIT

#正式寫這個Shell腳本時,here document中的#和空行都會執行,
#所以為了消除警告最好去掉here document塊中#開頭的語句以及空行,
#暫時我還沒有找到here document中有效的注釋語句的方法.

exit 0

//ftpget.sh
[cpp] view plain
#!/bin/sh
#FileName:ftpget.sh
#Function:從ftp伺服器上下載一個文件到本地計算機上
#Version:V0.1
#Author:Sunrier
#Date:2012-07-20

#$#表示傳遞給此Shell腳本的參數個數
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <remote_dir/filename> <local_dir>"
exit 1
fi

#IP表示ftp的伺服器ip地址
IP=127.0.0.1
#IP=192.168.6.1

#FULLNAME獲取從ftp伺服器上下載的文件全路徑名
FULLNAME=$1

#DESTDIR獲取從ftp伺服器上下載的文件所存放的本地計算機的目錄路徑
DESTDIR=$2

#remote_filename獲取從ftp伺服器上下載的文件名
remote_filename=`basename $FULLNAME`

#DESTFILE表示下載文件所存放的本地路徑,以及本地保存後的文件名
DESTFILE=$DESTDIR/$remote_filename

#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
bin
cd /home/remote/log/ftpfile
get $FULLNAME $DESTFILE
quit
FTPIT

exit 0

#get remote_file [ local_file ]
#remote_file是指定要復制的文件,local_file是指定本地計算機上的文件名,
#local_file為可選項,沒有指定的話則跟remote_file同名。

//20120726改進版本
[cpp] view plain
#!/bin/sh
#FileName:ftpput.sh
#Function:從本地客戶端向ftp伺服器上傳一個文件(添加遠程目錄是否存在判斷功能)
#Version:V0.2
#Author:Sunrier
#Date:2012-07-26

#$#表示傳遞給此Shell腳本的參數個數
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <local_dir/filename> <remote_dir>"
exit 1
fi

#IP表示ftp的伺服器ip地址
IP=127.0.0.1
#IP=192.168.6.1

#FULLNAME獲取本地文件全路徑名
FULLNAME=$1

#DESTDIR獲取需要上傳的ftp遠程目錄路徑
DESTDIR=$2

#dirname返迴路徑中的目錄部分
#DESTDIR="/home/Sunrier/Proj/log/test.log";
#當PREDESTDIR=`dirname $DESTDIR`
#最終PREDESTDIR="/home/Sunrier/Proj/log"
PREDESTDIR=`dirname $DESTDIR`
SUFFIXDESTDIR=`basename $DESTDIR`

LOCALDIR=`dirname $FULLNAME`

#basename返回一個路徑中的文件名部分
#如FULLNAME="/home/Sunrier/Proj/log/test.log";
#當local_filename=`basename $FULLNAME`
#最終local_filename="test.log"
local_filename=`basename $FULLNAME`

#DESTFILE表示ftp伺服器的路徑,以及保存後的文件名
DESTFILE=$DESTDIR/$local_filename

#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
dir $PREDESTDIR $LOCALDIR/tmp.txt
quit
FTPIT

#find $LOCALDIR -name "tmp.txt" -type f | xargs grep "^d.*$SUFFIXDESTDIR$"
#find . -name "tmp.txt" -type f | xargs grep "^d.*$SUFFIXDESTDIR$"
#find . ! -name "." -type d -prune -o -type f -iname "*tmp.txt" -print | xargs grep "^d.*$SUFFIXDESTDIR$"
#grep "^d.*$SUFFIXDESTDIR$" \$LOCALDIR/tmp.txt
#grep後面查找字元兩邊加不加引號效果相同

grep ^d.*$SUFFIXDESTDIR$ $LOCALDIR/tmp.txt >/dev/null 2>&1

#$?表示上一個命令的運行結果,0表示成功,其它值表示失敗
#if [ $? != 0 ]
if [ $? -ne 0 ]
then
rm $LOCALDIR/tmp.txt
exit 1
fi

#mkdir創建遠程目錄
#mkdir $DESTDIR

#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
bin
passive
cd /home/remote/log/ftpfile
put $FULLNAME $DESTFILE
quit
FTPIT

rm $LOCALDIR/tmp.txt
exit 0

[cpp] view plain
注:

FTP伺服器的啟動:
[root@localhost ~]# service vsftpd start
為 vsftpd 啟動 vsftpd: [確定]

FTP伺服器的埠一般默認為21:
[root@localhost ~]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:523 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:50000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:601 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
[root@localhost ~]#

在使用system執行Shell腳本時,如system("ftpput.sh"),system返回值低8位為system執行腳本所接收到的信號值,9~16位為Shell腳本所設置的exit退出值

⑺ linux如何通過windows代理下載FTP上的文件

Linux配置代理只要使用"tsocks"的軟體就可以了. 通常Linux CL下使用http_proxy=」」 這個環境變數作為http代理,其實也可以用socks_proxy這個環境變數來配置socks代理。
在平常上網的時候, socks代理是很有用的, 為了保護隱密的信息, 訪問一些正常無法訪問的東西. 都離不開代理的。
Linux CL要使用tsocks這個軟體。先要到官網下載軟體:
一般發行版的軟體源裡面相信都有,直接安裝即可。
安裝完成後,編輯/etc /tsocks.conf文件,注意修改下面4行:
local = 192.168.1.0/255.255.255.0 //本地不使用代理
server = 192.168.1.1 //代理ip
server_port = 1080 //埠
server_type = 5 //socks 4 or 5
保存之後,用tsocks 打頭,如:
tsocks apt-get update
socks代理就已經配置好的. 通過埠就可以連接socks代理.

From:

⑻ 求linux系統ftp自動下載文件的代碼,超時重連

有開源的軟體,FileZilla,官網https://filezilla-project.org/,client和server端的都有,你可以下載下來參考。

⑼ Linux中的FTP下載問題!

先告訴你的linux版本,Redhat?ubuntu?,基本上linux系統都是自帶ftp
server軟體的,不需要另下包編譯安裝。

閱讀全文

與linuxftp下載腳本相關的資料

熱點內容
程序員的思路 瀏覽:234
只能用命令獲得的四種方塊 瀏覽:358
怎麼用命令方塊防止開創造 瀏覽:807
掃描版的pdf 瀏覽:790
編程貓怎樣做3d游戲 瀏覽:207
怎麼查找雲伺服器上的ftp 瀏覽:156
我的世界伺服器如何注冊賬號 瀏覽:934
統計英文字元python 瀏覽:423
linux信息安全 瀏覽:908
壓縮機接線柱爆 瀏覽:999
程序員自主創業 瀏覽:584
匯編程序員待遇 瀏覽:359
怎麼批量有順序的命名文件夾 瀏覽:211
杭州程序員健身 瀏覽:19
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833