アプリケーションサーバーとデータベースサーバー間でファイルを転送するためのkshスクリプトを生成する必要があります。

アプリケーションサーバーとデータベースサーバー間でファイルを転送するためのkshスクリプトを生成する必要があります。

アプリケーションサーバーの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

関連情報