[python] Fabric으로 로그 파일 관리하기

개발 프로젝트에서는 로그 파일을 효율적으로 관리해야합니다. 로그 파일의 크기가 커지면 서버의 용량을 낭비하고, 로그를 분석하기 어려워지기 때문입니다. 이번 포스트에서는 Fabric을 사용하여 로그 파일을 자동으로 압축하고 백업하는 방법을 살펴보겠습니다.

Fabric 설치하기

먼저 Fabric을 설치해야합니다. 다음 명령을 사용하여 pip를 통해 Fabric을 설치할 수 있습니다.

pip install fabric

로그 파일 압축하기

Fabric을 사용하여 로그 파일을 압축하는 작업을 자동화할 수 있습니다. 다음은 Fabric 스크립트의 예입니다.

from fabric import Connection
from fabric import task

@task
def compress_logs(ctx):
    conn = Connection('<서버 IP 주소>', user='<사용자명>', connect_kwargs={'key_filename': '<키 파일 경로>'})
    with conn.cd('<로그 파일 경로>'):
        conn.run('tar -zcvf logs.tar.gz *.log')
        conn.run('rm *.log')

위 코드에서 <서버 IP 주소>, <사용자명>, <키 파일 경로>, <로그 파일 경로>에 실제 값을 입력해야합니다.

compress_logs 함수는 fabric.task 데코레이터를 사용하여 Fabric 태스크로 정의되었습니다. 이 태스크는 지정된 서버에 연결하고 로그 파일을 압축한 다음, 원본 로그 파일을 삭제합니다.

로그 파일 백업하기

Fabric을 사용하여 로그 파일을 백업하는 작업도 간단히 자동화할 수 있습니다. 다음은 Fabric 스크립트의 예입니다.

from fabric import Connection
from fabric import task

@task
def backup_logs(ctx):
    conn = Connection('<서버 IP 주소>', user='<사용자명>', connect_kwargs={'key_filename': '<키 파일 경로>'})
    with conn.cd('<로그 파일 경로>'):
        conn.run('cp *.log {}'.format('<백업 폴더 경로>'))

위 코드에서 <서버 IP 주소>, <사용자명>, <키 파일 경로>, <로그 파일 경로>, <백업 폴더 경로>에 실제 값을 입력해야합니다.

backup_logs 함수는 fabric.task 데코레이터를 사용하여 Fabric 태스크로 정의되었습니다. 이 태스크는 지정된 서버에 연결하고 로그 파일을 백업 폴더로 복사합니다.

실행하기

Fabric 스크립트를 저장한 후, 터미널에서 다음 명령을 실행하여 태스크를 실행할 수 있습니다.

fab -f <스크립트 경로> <태스크 이름>

예를 들어, compress_logs 태스크를 실행하려면 다음과 같이 입력합니다.

fab -f logs.py compress_logs

로그 파일을 백업하려면 backup_logs 태스크를 실행하면 됩니다.

fab -f logs.py backup_logs

결론

Fabric을 사용하여 로그 파일을 압축하고 백업하는 작업을 자동화할 수 있습니다. 이렇게 하면 용량을 절약하고 로그 분석을 쉽게 할 수 있습니다. 다음 번 프로젝트에서는 Fabric을 사용하여 로그 파일 관리 작업을 시도해보세요.

참고 자료