以下の環境を想定
FTPクライアント側・・・Redhat Linux FTPサーバー側・・・WIndows 2008R2
1.事前にLinuxにてFTPクライアントが入っているかを確認
[root@rhelvm1 Desktop]# rpm -qa |grep ftp
gvfs-obexftp-1.4.3-15.el6.x86_64
ftp-0.17-54.el6.x86_64 ★・・・・・・・・・・・・・・・・・パッケージ名がftpのみのものがftpクライアント。
2.Windowsサーバ側は、役割の追加からIISサービスを追加する。IISサービスの中にFTPサーバーがあるため。
3.FTPを対話的にではなくサイレント実行するには事前にFTPで使うパラメータを定義したファイルを作成する。ファイル名はなんでもよい
vi ftp.txt
open test1 <—open <接続先ホスト名>
user TEST/Administrator Demad$Rack01 <—user <ユーザ名> <パスワード> の構文。ここで注意するのは接続先WindowsがADのドメイン配下にある場合、<ドメイン名>/<ユーザ名>の形とする。かつ、ドメイン名とユーザ名の間は\ではなく、/を使 わないと認証エラーとなる。
bin <—バイナリモード
prompt <—promptの切り替え。デフォルトはONなので、これでOFFとなる。
put test2.txt <—put,getのコマンド
quit <—最後に終了のコマンド
4.上記FTP設定ファイルを作成したら、下記 -nコマンドで読み込ませる。
ftp -n <ftp.txt
↓このように無対話で実行される
[root@rhelvm1 ~]# ftp -n -v < ftp.txt
Connected to test1 (192.168.0.10).
220 Microsoft FTP Service
Remote system type is Windows_NT.
331 Password required for TEST/Administrator.
230 User logged in.
200 Type set to I.
Interactive mode off.
local: test2.txt remote: test2.txt
227 Entering Passive Mode (192,168,0,10,252,230).
125 Data connection already open; Transfer starting.
226 Transfer complete.
221 Goodbye.