FTPサーバーからファイルを移動するスクリプトの作成

FTPサーバーからファイルを移動するスクリプトの作成

FTPサーバー上の複数のファイルを別のディレクトリに移動しようとしています。これまでログインしてリモートディレクトリの新しいファイルを取得するbashスクリプトを作成しましたが、 "mv"コマンドはftpコマンドではサポートされていません。デフォルトでは、スクリプトは新しいファイルをダウンロードし、ダウンロード後にファイルを同じサーバー上の別のディレクトリに移動します。

答える前に、この作業は自動化する必要があることに注意してください。したがって、FilezillaなどのGUIを使用すると、さまざまなFTPサイトにログインしてファイルを手動で移動する必要があるため、役に立ちません。また、SSHが利用できないことに注意してください。他社が管理していて、私が得られるのはFTPアクセスだけだからです。最後に、ファイル名が何であるかわからないので、ワイルドカードを使用します。

答え1

スクリプトを使ってログインに成功したように見えるので、スクリプトを使ってログイン後のコマンドは次のようになります。

  • 常識とは対照的に名前を変更するこのコマンドはファイルを移動します

    /path/to/file/to/move /path/to/files/destination/ 名前変更

  • mp4などのワイルドカードと一緒に使用する必要があります。

    /path/to/files/*.mp4 /path/to/destination/ 名前変更

これがあなたが探していることを願っています!

源泉:https://stackoverflow.com/questions/9461844/how-to-move-files-using-ftp-commands

答え2

FTPにはmvコマンドはありません。名前変更コマンドを使用する必要があります。

これは、ファイルを作成して
複数のファイルを移動する完全なスクリプトで、各ファイルの名前を1つずつ変更(移動)する概念です。
1. mlsコマンドを使用してftpサーバーからファイル リスト

インポート
する
ファイルでの使用 ftp コマンドの実行

#!/bin/sh
clear
# change local directory
cd [local-directory]

#collect file names
ftp -ni ftp.abccompany.com <<EOF
user [user] [password]
cd /OUT
mls abc*.* list.txt 
quit
EOF

# create ftp action list
echo >>todo.lst user [user] [password]
while read N
do
    #echo >>todo.lst cd /OUT #for demo you can do more actions on text file
    #echo >>todo.lst get $N  #for demo you can do more actions on text file
    echo >>todo.lst rename $N ARCHIVE/$N #did not change file name, move directory only
done <list.txt

echo >>todo.lst quit

# ftp transfer process
ftp -nv ftp.abccompany.com <todo.lst

# cleanup
rm todo.lst

関連情報