転送に必要なファイルを検索する場所を知るために、ソースディレクトリを含めるように以下のスクリプトをどのように変更できますか?
週に一度自動的にファイルをリモートサーバーに転送する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 ftp
)local change directory
の略語です。
ローカルコンピュータの作業ディレクトリを変更します。
ここで、「ローカル」は実行中のシステムを示しますftp
。
現在のローカルディレクトリ内のすべてのファイルをftpの現在のリモートディレクトリに配置するには、次のようにします。
prompt
mput *
FTPコマンドは、またはprompt
同じ「マルチ」操作中に対話型プロンプトを無効にします。から引用mget
mput
FTP マニュアルページ(または地域を確認してくださいman ftp
):
複数のファイルの転送中にインタラクティブなプロンプトが表示され、ユーザーはファイルを選択的に検索または保存できます。