2014-01-13 2 views
1

다른 서버에있는 일부 파일의 존재 여부를 원격으로 확인해야합니다. 서버는 Linux 및 AIX에 있습니다.다른 서버에 원격으로 파일이 있는지 확인하십시오.

리눅스 :

tn = telnetlib.Telnet(self.mHost) 
tn.read_until(b"login: ") 
tn.write(self.mUsername.encode('ascii') + b"\n") 
tn.read_until(b"Password: ") 
tn.write(self.mPassword.encode('ascii') + b"\n") 
(tn.read_until(b"$")).decode('ascii') 

나는 파이썬 텔넷 및 리눅스 쉘 내가 텔넷을 통해 명령을 실행할 수 있도록 내가 프롬프트 기호를 인식하는 다른 OS에 대해 서로 다른 코드를 사용할 필요가 로그인 할 때 다르게 행동 시도

AIX는 :

tn2 = telnetlib.Telnet(self.mHost) 
tn2.read_until(b"login: ") 
tn2.write(self.mUsername.encode('ascii') + b"\n") 
tn2.read_until(b"Password: ") 
tn2.write(self.mPassword.encode('ascii') + b"\n") 
(tn2.read_until(b">")).decode('ascii') 

는 연결 성공적인 후에, 나는 파일을 확인하는 간단한 '1!'명령을 사용했다. 내가 한 번 쓰기 - 실행 - 어디서나 솔루션에 필요하므로

ls -ltr | awk -F" " '{print $5 "|" $6 "-" $7 "-" $8 "|" $9}' | tail -n 20 

그러나 bash 쉘 및 KSH 쉘은 몇 가지 명령에서 다른 기능을 수행 할 수 있습니다.

가능한 선택 : 자바 6, 파이썬 3.0

+0

당신이 사용할 수있는 자바의 버전을 알려 주시기 바랍니다 수 있습니까? – Jabir

+0

질문/문제를 게시하는 것을 잊어 버렸습니다. –

+1

왜 텔넷을 사용해야합니까? 두 서버 모두 SSH 데몬을 실행하지 않습니까? –

답변

0

두 서버를 Asusming는 유닉스/리눅스는 [http://docs.fabfile.org/en/1.8/api/contrib/files.html#fabric.contrib.files.exists}의 fabric.contrib.exists() 함수 호출을 (직물)를 사용할 수 있습니다 실행하는 SSH 데몬을 기반으로해야합니다.

인터랙티브 예 :

from fabric.api import execute 
from fabric.contrib.files import exists 

>>> execute(exists, "data.csv", hosts=["localhost"]) 
[localhost] Executing task 'exists' 
{'localhost': True} 
+0

개발자가 AIX 나 다른 비슷한 korn shell 기반 OS에서 테스트하지 않았다고 가정합니까? – lamwaiman1988

+0

확실하지 않습니다. 하지만 그것은 POSIX이므로 * 작동해야합니다 :) 그냥 시도해 보겠습니다. * Python은 크로스 플랫폼입니다. * 이론적으로 * "잘 작동합니다". –

관련 문제