728x90
반응형
Paramiko
원격 장치에 대한 보안 연결을 위한 모듈로 SSH/ SFTP 연결 시에 사용한다.
만약 설치 중 에러 발생 시 pip를 업그레이드하고 의존성이 있는 라이브러리를 설치해준다.
코드
pip install paramiko
# requirements.txt - paramiko
import sys
import subprocess
try:
import paramiko
except:
subprocess.check_call([sys.executable,'-m', 'pip', 'install', '--upgrade', 'pip'])
subprocess.check_call([sys.executable,'-m', 'pip', 'install', '-r', 'requirements.txt'])
import paramiko
def command_exec(ip, port, user, pw, cmds):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
ssh.connect(ip, port, user, pw)
stdin, stdout, stderr = ssh.exec_command(";".join(cmds))
lines = stdout.read()
res = ''.join(str(lines))
return res
if __name__ == "__main__":
cmds = ["whoami", "echo hello", "reboot"]
command_exec("123.123.123.123", 22, "user", "1234", cmds)
후기
기능은 잘 동작하지만 여러줄의 명령어를 실행하거나 세션을 유지하여 터미널 처럼 사용하기 어려운 것 같다.(방법을 찾아보고는 있음) 현재는 join 함수로 명령어들을 ;로 묶어 한번에 서버에서 실행시키도록 함수를 작성하였다.
728x90
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] OS 모듈 : 디렉토리 전체 탐색하기 (하위 디렉토리까지) (0) | 2022.11.20 |
---|---|
[python] JWT 모듈 (0) | 2022.09.13 |
[Python] Yahoo_fin 모듈 (0) | 2022.09.11 |
[Python] 데코레이터 (@, Decorator) (0) | 2022.03.21 |
[Python] min, max 함수 (0) | 2022.03.10 |
[python] lambda 표현식 (0) | 2022.01.07 |
댓글