파이썬 paramiko sshclient 질문

조회수 448회

(A 스크립트)

whereis = os.popen("which fdisk") 
print(whereis.read())

위 A 스크립트를 로컬에서 실행시키면 정상 출력이 되는데

(B 스크립트)

ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,username=user,password=pw)
scp = SCPClient(ssh.get_transport())
scp.put('/python/test','/tmp')
stdin, stdout, stedrr = ssh.exec_command("sudo python /tmp/test")
r = stdout.read()
scp.close()
ssh.close()

B 스크립트를 통해 paramiko scpclient로 다른 서버로 A스크립트를 가져가서 exec_command로

A 스크립트 실행 후 해당 내용을 다시 로컬에서 출력시키면 아래와 같은 메시지가 뜹니다.

which: no fdisk in (/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin)

환경 변수와 관련된 내용인 것 같은데 무슨 문제인지 감이 잡히질 않네요. ㅠㅠ

고수님들 도와주세요..!

  • 다른 서버에는 fdisk 명령이 수행되던가요? 메세지를 보세요. /usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin 경로들중에 fdisk 가 없다는 겁니다. 정영훈 2020.4.24 16:09
  • 넵 다른 서버에서도 fdisk 명령이 수행이 되고, 로컬과 같은 조건과 환경의 서버입니당. 단지 exec_command 로 실행 시키면 저런 메시지가 뜨네요.. 파이썬 2020.4.24 16:23
  • 그렇게 바로 수행하지 말고 쉘스크립트에서 수행하는 형태로 변경하세요 exec_command 에서 쉘스크립트 파일을 실행하구요. 아마도 쉘환경(bash, sh 등) 때문에 그럴 수 있습니다. 정영훈 2020.4.24 18:00
  • 쉘 스크립트로 작성 후 exec_command로 실행해도 같은 메시지가 나오네요..ㅠㅠ 파이썬 2020.4.24 20:20

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)