自動FTPスクリプトがソースディレクトリを見つけることができません。

自動FTPスクリプトがソースディレクトリを見つけることができません。

転送に必要なファイルを検索する場所を知るために、ソースディレクトリを含めるように以下のスクリプトをどのように変更できますか?

週に一度自動的にファイルをリモートサーバーに転送するbashスクリプトがあります。

スクリプトは次のとおりです。

#!/bin/bash

HOST=sftp.mydomain.com  
USER=user           
PASS=pass          

ftp -inv $HOST << EOF
$USER $PASS
cd /d D:\destination\directory
put file1.gz
put file2.gz
put file3.gz

bye

EOF

ファイル1〜3はすべてsource/ディレクトリにあるので、source/ディレクトリ内のすべてのファイルを上記で指定した宛先パスに転送したいと思います。

しかし、スクリプトが元の仮想マシンで実行されているため、スクリプトはすべてのフォルダから簡単に抽出できるため、ディレクトリを指定する必要はないと思います(初心者のエラーを理解しています)。

または:単にフォルダの内容全体をリストするのではなく、ディレクトリ全体にftpを使用するより簡単な方法はありますか?

ベストアンサー1

プロセスがftpソースと見なすディレクトリを変更するには、cd辞書ディレクトリまたはlcdその中のディレクトリにすることができます。

1.

cd /source/directory
ftp ...

2.

ftp ...
lcd /source/directory
...

lcd(からman ftplocal change directoryの略語です。

ローカルコンピュータの作業ディレクトリを変更します。

ここで、「ローカル」は実行中のシステムを示しますftp

現在のローカルディレクトリ内のすべてのファイルをftpの現在のリモートディレクトリに配置するには、次のようにします。

prompt
mput *

FTPコマンドは、またはprompt同じ「マルチ」操作中に対話型プロンプトを無効にします。から引用mgetmputFTP マニュアルページ(または地域を確認してくださいman ftp):

複数のファイルの転送中にインタラクティブなプロンプトが表示され、ユーザーはファイルを選択的に検索または保存できます。

おすすめ記事