名前と場所がテキストファイルに含まれているファイルをFTPアップロードする

名前と場所がテキストファイルに含まれているファイルをFTPアップロードする

ファイル名とそのパスが記載されたテキストファイルがあります。例:

リスト.txt

/dirA/fileA.bin
/dirB/fileC.txt
/dirB/fileD.txt
(...and so on)

/dirA/fileA.binソースに一致するツリー構造 (例:宛先に移動するソース/dirA/fileA.binなど)がすでに存在する宛先に、FTP 経由でこれらのファイルをアップロードするにはどうすればよいでしょうか。

検索した結果、最も近いものは以下のとおりですが、完全に同じではありません。

curl -T "{/dirA/fileA.bin}" ftp://XXX/dirA --user abc:xyz

ご協力いただければ幸いです。どうぞよろしくお願いいたします。

答え1

いくつかの bash スクリプトが役に立つでしょう。しかし、なぜ FTP が必要なのでしょうか? SSH を使用できるなら、もっと簡単です... たとえば次のようになります:

#!/bin/bash
input="/path/to/txt/file"
spawn ssh user@remotecomputer
expect "password:"
sleep 1
send "<your password>\r"

while IFS= read -r line
do
    rsync -v -e ssh $line user@remotecomputer:/remotepath
done < "$input"

公開鍵をリモート マシンにエクスポートすると、初期接続なしでも通過でき、rsync は ftp 経由で動作します。基本的には同じです...

関連情報