[英]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.