소개

안녕하세요 이번에는 리눅스 파일 동기화 기능을 가진 auto_sync를 소개합니다.

이 프로그램은 sftp를 이용하여 리눅스 시스템 간에 파일을 동기화 시켜줍니다.

 

사용 환경

우선 환경은 리눅스OS에 파이썬 3.x버전을 사용하고 paramiko라는 모듈을 설치해 주셔야 합니다.

간단히 파이썬 3버전 환경에서 paramiko만 설치해주시면 됩니다.

명령어는 pip install paramiko 입니다.

 

설치 및 실행

그리고 깃허브에서 프로젝트를 받아줍니다.

git clone https://github.com/buttercoconut/auto_sync.git

 

받은 소스에서 설정파일을 수정해줍니다.

auto_sync/config/example.conf 를 자신이 동기화 하고자 하는 서버 정보로 수정을 한 뒤에

크론탭 또는 직접 실행하여 동기화를 진행하실 수 있습니다.

 

수동으로 실행하는 명령어는

  1. python project_root/main/processor.py [conf_file_name] [task]
  2. ex)python auto_sync/main/processor.py example recv   # example.conf의 설정 서버에서 파일을 받아옴.

 

task 에는 두가지가 있습니다.

recv / send

 

크론탭을 이용하여 일정시간마다 동기화하실 경우

우선 프로젝트 폴더 안에 run.sh 배치 파일을 생성하여 실행 스크립트를 작성합니다.

run.sh

#!/usr/bin/env bash
source /home/username/anaconda/bin/activate auto_sync
python /home/username/auto_sync/main/processor.py util recv
python /home/username/auto_sync/main/processor.py util send
python /home/username/auto_sync/main/processor.py doc recv
python /home/username/auto_sync/main/processor.py doc send

이러한 식으로 하셔도 되고 맘에 드는 방법으로 수정해서 사용해도 됩니다.

 

crontab -e 로 크론탭 수정 모드에서

0분과 30분 마다 동기화 진행

0,30 * * * * /home/username/auto_sync/run.sh

 

동기화 성공 시 소스가 실행된 위치 상에 log디렉터리에 log가 생성됩니다.