簡體   English   中英

從Unix中的FTP從遠程服務器獲取最新文件

[英]Get the latest file from a remote server from an FTP in Unix

我需要從Unix中的遠程主機獲取文件。 我正在使用ftp命令。 問題是我需要該位置的最新文件。 這就是我的做法:

dir=/home/user/nyfolders
latest_file=$(ls  *abc.123.* | tail -1)
ftp -nv <<EOF
open $hostname
user $username $password
binary
cd $dir
get $latest_file
bye
EOF

但是我得到這個錯誤:

(remote-file) usage: get remote-file [ local-file ]

我認為我試圖從ftp命令中獲取文件的方式不正確,有人可以幫幫我嗎?

您不能在ftp命令腳本中使用shell功能,例如別名,管道,變量等。

ftp不支持使用任何語法的此類高級功能。

但是,您可以分兩步進行操作(以在步驟之間利用外殼功能)。

首先獲取到本地文件的遠程目錄列表( /tmp/listing.txt ):

ftp -nv <<EOF
open $hostname
user $username $password
cd $dir
nlist *abc.123.* /tmp/listing.txt
bye
EOF

查找最新文件:

latest_file=`tail -1 /tmp/listing.txt`

並下載:

ftp -nv <<EOF
open $hostname
user $username $password
binary
cd $dir
get $latest_file
bye
EOF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM