2016-04-27 13 views
1

何らかの理由で、接続がアクティブでない間にFTP接続を終了したい場合、ファイルが転送されている間は必ずしもそうとは限らず、Unixシェルスクリプト接続は何も転送せずに開かれたままであり、ftpコマンドラインでスタックされているため、次の行に進むことはできません。UNIXシェルスクリプトでftp接続を閉じる方法

UNIXシェルスクリプトから非アクティブな接続を終了する方法がありますか?

ftp -nv <<-EOD > ${tmpftplog} 
open ${server} 
user ${username} ${password} 
put ${datafile} ${mfDatafile} //<---Line Stuck!! 
bye 
EOD 

これは、私は、コマンドを入れてきたものでスタックしている(常にではない)が、私は接続がない場合は、FTPを閉じたいです。

アイデア?

+0

あなたは、接続*が開いたままになっているときにftpがスタックされていると言います。また、*接続していないときは閉じたいとも言いました。どの接続状態をテストしたいですか? –

+0

いいえ、つまり、FTP接続中にファイルが転送されていることがあります。ファイルがスタックされず、接続が開いたままであるとは限らず、3時間を過ぎても接続が開いていて、 kshシェルスクリプトはスクリプトを続行できません。 –

+0

'ftp'を実行しているOSは? –

答えて

0

このコードでは、仕事を行います。

#!/bin/sh 

FTP_USERNAME=username 
FTP_PASSWORD=password 
FTP_SERVER=ftp_address 

run_access_server() 
{ 
       lftp <<STOP 
       open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_SERVER 
       # put your commands here 
       bye 
STOP 
} 

run_access_server 

は、uは何かを必要とするなら、私に教えてください。

関連する問題