2012-03-22 9 views
1

私はオフィス環境は非常に小さく、私のチームは作成したpdfsを毎日sFTPサーバーに送ります。sFTP接続に到達できない場合にアラートを電子メールで送信しますか?

誰かがファイルをアップロードするためにログインできない場合があります。

私の通常の行動は、自分自身でsFTPサーバーに接続し、lsのようなコマンドを実行して応答しているかどうかを判断することです。 (資格情報を使用して)SFTPサーバに

  1. ログイン:障害が発生した場合

    私は通知でこれを自動化できるようにしたいと思います。

  2. LSコマンドを実行してください
  3. 接続がタイムアウトまたはログインに失敗した場合は、電子メールを送信してください。

私はバッチファイルの作成経験は限られていますが、メールを送信するには「失敗した」/応答がありません。

アイデアを手伝ってもらえますか?私はこれを実行することができるServer 2000マシンを持っているので、VBまたはスケジュールされたタスクのバッチとしてこれを実行したいと思います。私はバッチが電子メールを送信する問題を抱えていることを知っていますが、Blat.exeを使用して渡された変数を含む電子メールを送信する別のバッチファイルがあるので、失敗した応答を送信するバッチを取得できればそれを使用できます...

答えて

0

これはバッチファイルで行うことができます。

logon.ftpというファイルを作成します。このファイルには、FTPログオンスクリプトが含まれています。鉱山は含まれています

open Ftp_server 
ftpuser 
ftppassword 
ls -l 
quit 

testftp.batファイル:

ftp.exe < logon.ftp | grep "Not connected" > nul && call :alert_someone 
@echo Logon successful 
goto exit 

:alert_someone 

@echo %date% %time% > alert.txt 
@echo ftp_server appears to not be taking logins. >> alert.txt 
blat alert.txt -to you -from ftp_watcher -subject "alert %date% %time% ftp_server not taking logins" 

:exit 

あなたは、文字列のチェックを行うことができますので、あなたがBLAT取得する必要があり、とgrepます。私のwinxp ftpはエラーレベルをサポートしていないので、errorlevelを使用しています。

これを行うにはwgetやcurlを使うことができますが、エラーレベルをサポートしています。

0

バッチファイルこの種のことにはあまりにも基本的すぎることがあります。

あなたは... Pythonプログラミング言語(http://www.python.org)を試し、さらにParamikoモジュール(http://www.lag.net/paramiko/)の線に沿ってスクリプトを記述することも可能であろうをインストールすることと喜んでいた場合は

import paramiko 

try: 
    t = paramiko.Transport(('TheHostname', 22)) 
    t.connect(username='MyUsername', password='MyPassword') 
    sftp = paramiko.SFTPClient.from_transport(t) 
    dirlist = sftp.listdir('.') 
except: 
    print "It's Broken" 
    #Send e-mails and such here 

あなたは定期的に実行するようにスケジュールできます。

関連する問題