アプリケーションサーバーの1つの場所からデータベースサーバーに特定のファイルを自動的に転送する必要があります。
この手順を使用して手動で実行できますが、スクリプトで使用する必要があります。
#! /bin/ksh
directory path where the file need to be
ftp (hostname of the application server)
username
password
file location in the apps server
get filename
quit
答え1
一部のFTPクライアントでは、コマンドラインでユーザー名とパスワードを指定できます。私が知っている2つのことncftp
ですlftp
。その後、単一の非対話型コマンドを使用してスクリプト内のファイルを検索できます。
答え2
私はそれを使ってそれを得ました:
ftp -inv <<EOF
open app.server.address
user username password
cd some/location
get filename
bye
EOF
このftp
-i
オプションは対話型プロンプトをオフにし、-n
自動ログインとユーザー名とパスワードのプロンプトを無効にします。
答え3
スクリプト自体にユーザー名とパスワードを保存したくない場合は、~/.netrc
次の形式を使用してターゲットホストのエントリを生成できます。
machine <address>
login <username>
password <password>
<address>
そのうち、およびそれぞれがホストアドレス、ユーザー名、およびパスワードに<login>
置き換えられます。また、適切な権限(所有者のみが読み書きする)があることを<password>
確認する必要があります。~/.netrc
このアプローチの利点は、資格情報が1つの場所に保存され、複数のスクリプトからアクセスできることです。適切な権限があることを確認する方が~/.netrc
管理するよりも簡単です。みんな資格情報が必要な場合があるスクリプト。
ftp
その後、引き続きコマンドを渡すことができます。ここのドキュメントまたは使用lftp
-c
オプションで、コマンドをコマンドライン引数として渡すことができます。前者を選択した場合は注意してください。いいえに保存されている資格情報を使用した自動ログインは無効になるため、この-n
オプションを指定してください。ftp
~/.netrc