2012-05-01 17 views
0

に追加されました。私はPython zabbixトラッパースクリプトを2台のサーバーで実行しています。 30秒ごとに実行されます。サーバー2から(OK)Pythonの余分な値が変数

01-05-12 17:40:50 Time_WAIT: 286 
01-05-12 17:41:20 Time_WAIT: 251 
01-05-12 17:41:50 Time_WAIT: 366 
01-05-12 17:42:20 Time_WAIT: 335 
01-05-12 17:42:50 Time_WAIT: 287 
01-05-12 17:43:20 Time_WAIT: 375 
01-05-12 17:43:51 Time_WAIT: 386 
01-05-12 17:44:21 Time_WAIT: 383 

出力:(課題)

01-05-12 17:44:03 Time_WAIT: 368 
01-05-12 17:44:32 Time_WAIT: 388 
01-05-12 17:45:01 Time_WAIT: 0 
01-05-12 17:45:01 Time_WAIT: 339 
01-05-12 17:45:31 Time_WAIT: 311 
01-05-12 17:46:00 Time_WAIT: 400 
01-05-12 17:46:01 Time_WAIT: 0 
01-05-12 17:46:29 Time_WAIT: 411 
01-05-12 17:46:58 Time_WAIT: 448 
これは "SS"

file_log = "/tmp/tcpstate.log" 
proc = open(file_log,"a") 

file = "/var/log/safesquid/safesquid/performance/performance.log" 
time_wait_cmd = subprocess.Popen("ss -o state time-wait | grep webcache | wc -l",shell=True,stdout=subprocess.PIPE) 
ssquid_time = time_wait_cmd.communicate()[0] 
proc_string = datetime.datetime.now().strftime("%d-%m-%y %H:%M:%S") + " " + "Time_WAIT: " + ssquid_time + "\n" 
proc.write(proc_string) 
proc.close() 

SERVER1出力からTIME_WAIT状態を読み取るコードの一部であります

それは30秒ごとに呼び出されて以来、私はなぜServer2の "0"の値を取得し、すぐに正しい値を読み取るか分からない。

これはなぜ起こっているのですか?

+1

ファイルの操作については、[the 'with' statement](http://docs.python.org/reference/compound_stmts.html#the-with-with-statement)を参照してください。読みやすく、終了することができますあなたのためのファイル - 例外の場合でも。 –

+0

アドバイスLattywareのおかげで、問題は私が思うのはサブプロセスのコマンドだと思うので、私は診断のためにファイルに出力しています... – krisdigitx

+0

私はそれが問題の原因であることを示唆していません。あなたのコードはもっとPythonic。 –

答えて

0

いずれかのプロセスが信号を受信して​​いますか?これにより、システムコールが予期されたよりも早く終了する可能性があります。