1. pexpect 사용해보려고 하였으니 윈도우에서 사용이 불가

python27, python53 설치 후 pexpect 설치하여 테스트 해보았으나 동작하지 않음

대안으로 winexpect 라는것이 있는데 오픈소스를 더이상 관리하지 않고 종료된 상태


2. tcl.exe 를 이용하여 윈도우에서 expect 기능을 사용할수 있으나 

python 에서 호출할경우에 tcl 스크립트 호출해야하는 python -> tcl -> output 구조가 되서 에러처리에 문제가 있어보임


1/2 번 모두 비밀번호 입력을 자동화 하려고 하것인데

생각해보니 서버단에서 개인키를 핸들링하면 키로 인증하여 윈도우서버간에 파일전송을 할수가 있음

(파일전송후에는 키를 삭제하면됨)


src나 dst 경로에 공백이 들어갈 경우에 Administrator@test.com:'/cygdrive/e/path\ to\ directory' 와 같이 처리해주면됨


import os
cmd = "rsync -av -e \"ssh -o \"StrictHostKeyChecking=no\" -i /cygdrive/c/id_rsa -p 2222\" "
cmd += "Administrator@test.com:'/cygdrive/e/path\ to\ directory' /cygdrive/f"
os.system(cmd)


'Python' 카테고리의 다른 글

Threading  (0) 2016.12.22
pidlockfile.py for windows  (0) 2016.12.19
remove ^M(Carriage Return)  (0) 2016.11.30
sqlalchemy  (0) 2016.11.28
pexpect.pxssh  (0) 2016.11.24


mail block 여부를 확인해야하는데 telnet 연결을 하면 block이 되더라도 연결은 성공이기 때문에 $? 값이 0 으로 참이다 ㅡㅜ 
($? will contain the exit status of the last command)
그래서 메시지로 확인을 해야하는 경우가 있어 구글링해봄


# exec 3<>/dev/tcp/mx4.naver.com/25

# RESPONSE="`cat <&3`"

# echo "Response is: $RESPONSE"

Response is: 220 mx.naver.com ESMTP uhOoOzccQ6eHbxMheoMwfA - nsmtp

451 4.4.2 Timeout - closing connection uhOoOzccQ6eHbxMheoMwfA - nsmtp


# exec 3<>/dev/tcp/mx4.naver.com/25

# RESPONSE="`cat <&3`"

# echo "Response is: $RESPONSE"

Response is: 421 4.3.2 Your ip blocked from this server O8n3JcaPR-SkE+jwsts6GA - nsmtp 



if [[ "$RESPONS" =~ "blocked" ]]; then

    echo "blocked"

else

    echo "ok"

fi



+ Recent posts