ファイル名とそのパスが記載されたテキストファイルがあります。例:
リスト.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 経由で動作します。基本的には同じです...