2017-05-01 15 views
-1
import sys, os, datetime, time, urllib 
from subprocess import * 

List_SP_Servers=["toto1","toto2","toto3"] 
ListTraceFile_SP_Servers=["c:\\\\dic1\\\\udic1\\\\file1.txt","c:\\\\dic1\\\\udic1\\\\file2.txt"] 

for l__sp in List_SP_Servers: 
    try: 
     print '\n--------'+str(l__sp)+'--------' 
     for l__traces in ListTraceFile_SP_Servers: 
      #l__cmd1 = '['+'\"psexec\",\"\\\\'+l__sp+'\",'+'\"-nobanner\"'+',\"ls\",\"-al\"'+',"'+l__traces+'\"'+']' 
      #l__cmd1 = '(['+'\"psexec\",\"\\\\'+l__sp+'\",'+'\"-nobanner\"'+',\"ls\",\"-al\"'+',"'+l__traces+'\"'+'],shell=True,stdout=PIPE).communicate()[0]' 
      #print l__cmd1 
      #output1=popen(l__cmd1,shell=True,stdout=PIPE).communicate()[0] 
      #l__cmd1 = "[\"C:\\Tools\\Sysinternalsuite\\psexec\",\"\\\\\\"%s"\",\"-nobanner\",\"ls\",\"-al\","%s"\"]" % (l__sp,l__traces) 
      #print 'La vies est -->'+l__cmd1 
      #l__cmd1_WithCall = "\'psexec\",\"\\\\\\"%s"\",\"-nobanner\",\"ls\",\"-al\" "%s"\'" % (l__sp,l__traces) 
      l__cmd1_WithCall = "\'psexec \\\%s -nobanner ls -al %s\'" % (l__sp,l__traces) 
      #l__cmd1_WithCall = "\"psexec\",\"\\\%s,\"ls\",\"-al\",%s" % (l__sp,l__traces) 
      print 'l__cmd1_WithCall-->',l__cmd1_WithCall 
      p5=call(l__cmd1_WithCall,shell=True) 
      print '---->',p5,'<-----' 
    except: 
     print '\n'+l__sp+' Can\'t reach it !\n' 

上記のコードは、WindowsサーバーからリモートWindowsサーバーへの一部のファイルの最終更新日を取得しようとしているため、エラーが表示されます。 私はpsexecを使ってWindows上にいますが、そのような情報を得るための他の解決策かもしれません。Windowsの最終更新日を取得するリモートファイル

私は​​を使用してみましたが、すべてエラーが出ますが、cmdで直接コマンドを入力しようとしたときにうまくいきました。ファイルは、Windowsで修正された最後の時間を得るために

+0

も私たちに与えてください日付に変換し、以下のコードを使用することができますエラーメッセージとコードスニペットのどの行に表示されるかを示します。また、['os.stat()'](https://docs.python.org/3/library/os.html#os.stat)などを使って時間を取得することを考えましたか?外部ツールを使用していますか? – blubberdiblub

+0

ありがとうございます。これは私の問題です。私はローカルで情報を得る方法を知っています。私の目標は、リモートサーバーのファイルに対して同じようにすることです。また、l_cmd1内のコマンドが表示されている場合は、Windowsのコマンドプロンプトに入力するとうまく動作しますが、subprocess.popenに配置するとうまく動作しません。そして、あなたは正しいですが、私は外部ツールを使用しないで別の方法があると確信していますが、どのように? – vivadeen

+0

あなたはまだ私たちにあなたが得ているエラーを表示していません。 – blubberdiblub

答えて

2

、あなたが最初に

import os,datetime 
timestamp = os.stat(PATH_OF_FILE).st_ctime 
readable = datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S') 

あなたがタイムスタンプを取得し、読みやすいが

+0

しかし、コードに示されている私の懸念は、遠隔からです。これはうまく動作し、同じサーバー(ローカル)にいるときに取得しましたが、リモートサーバーのファイルに対しても同じようにします。 – vivadeen

+0

@vivadeen関連するディレクトリを共有として利用できるようにすることができます。私はあなたがPsExecを許可することを意味しています.PsExecはもっと強力なので、共有に対して何を話していますか? – blubberdiblub

+0

読めるリモートサーバーが1つまたは2つしかない場合はこのソリューションを利用できますが、この情報を取得するリモートサーバーは70台あります。 – vivadeen

関連する問題