paramiko라는 python 모듈을 사용하시면

SSH를 이용하여 원하는 서버에 접속 후 명령어를 실행시켜 결과를 가져올 수 있습니다.

사용법 이전에 설치에 대해서 알아보면 일단 2가지 파일을 다운로드 받으셔야 합니다.

pycrypto, paramiko 다운로드 링크는 꼭 달아드리도록 하겠습니다.

파이썬 모듈의 기본적인 설치 방법은 아래와 같습니다. 설치파일의 압축을 풀고 해당 디렉토리에서

아래의 명령을 수행하시면 설치가 됩니다.

먼저 pycrypto, paramiko를 순서대로 설치하시면 됩니다.

python setup.py build
python setup.py install 

해당 모듈의 사용법은 아래와 같습니다.

from paramiko import SSHClient,AutoAddPolicy

client = SSHClient()
client.load_system_host_keys()

client.set_missing_host_key_policy(AutoAddPolicy()) 

client.connect('192.168.137.101', username='admin', password='admin')
stdin, stdout, stderr = client.exec_command('list')
                                                                               
for line in stdout:
    print '... ' + line.strip('\n')
                                                                             
client.close()

특정 디렉토리를 입력하면 하위디렉토리의 리스트를 나타내는 코드입니다.

예를 들어 디렉토리명에 '/'을 입력하면 root디렉토리 하위의 모든 디렉토리명을 리스트로 반환하고

'/root'를 입력하면 /root 밑의 모든 하위 디렉토리를 리스트로 반환합니다. 인용은 stackoverflow.com입니다

import os 

def listdir_fullpath(d):
   
return [os.path.join(d, f) for f in os.listdir(d)]

listdir_fullpath('/')

넷백업은 각 폴리시 별로 백업 대상디렉토리가 정해지는데

아래와 같은 코드를 사용하면 각 폴리시에서 어떤 폴더들이 백업대상 폴더로 세팅되었는지 알수 있다.

import commands

def get_policy_list():
    lines=commands.getoutput('bppllist').split('\n')
    return lines

def get_include_dir(policies):
    backup_target={}
    print policies
    for policy in policies:
        if policy != 'ORACLE_ARCHIVE':
            dirs=[]
            includes=commands.getoutput('bpplinclude %s -L'% policy).split('\n')
            for include in includes:
                dir=(include.split(':')[-1]).strip()
                dirs.append(dir)
            if( dirs.count('CATALOG_DRIVEN_BACKUP') == 0):
                backup_target[policy]=dirs
            else:
                pass
    for line in backup_target.keys():
        print line,backup_target[line]

policies=get_policy_list()
get_include_dir(policies)

+ Recent posts