업무 자동화의 필요성
회사에서 업무를 하거나 집에서 작업을 할 때에 주기적으로나 버전별로 파일을 백업을 해야될 때가 있었는데,
수동적으로 백업을 하다보니 귀찮아지는 경우가 생겨 백업을 제대로 안하는 일이 생겼다.
그렇게 자동 백업 스크립트를 만들기로 하고 스크립트를 작성하였다.
스크립트 작성
처음에 생각했던 기능들은 대략 이 정도이다.
1. 백업하고자 하는 파일을 특정 디렉토리에 복사 붙여넣기하여 백업하는 기능
2. 1에서 백업했던 파일을 자기 자신한테 메일을 보내 백업하는 기능
3. 이 1, 2의 작업을 일정 주기마다 실행할 수 있게하는 기능
이 세가지의 기능을 생각해두고 외부, 내부 모듈을 사용해 스크립트를 작성하였다.
1~10LINE
기능을 구현하는 데에 필요한 모듈들을 import한 부분이다.
os - 운영 체제에서 제공하는 기능을 파이썬에서 사용할 수 있게 해주는 모듈
schedule - 정해진 시간이나 주기 마다 스크립트를 실행하게 해주는 모듈
time - 다양한 시간 관련 함수를 제공하는 모듈
smptlib - SMTP(Simple Mail Transfer Protocol)를 사용하여 인터넷 메일을 발송할 수 있게 해주는 모듈
5~8LINE들의 모듈들은 전자 우편을 발송하기 위한 인터넷 표준 포맷을 정의할 수 있게 해주는 모듈이다.
copyfile - 파일 복사를 위한 모듈
datetime - 날짜와 시간을 클래스를 제공하는 모듈, 날짜와 시간의 포맷팅 함수를 제공하는 모듈
53~57LINE
53LINE - 해당 함수 호출을 5초마다 한번씩 실행시키겠다고 설정
55~57LINE - while문으로 무한루프를 돌게 함으로써 스케쥴의 상태를 1초마다 체크한다.
12~51LINE
백업 기능을 수행하는 부분이다.
15LINE - 스케쥴러를 통해 함수를 호출했을 때 넘겨받은 파라미터를 통해 OS모듈의 현재 디렉토리를 변경한다.
17~19LINE - 백업 디렉토리를 만드는 부분이다. 변경된 OS모듈의 디렉토리에 backup폴더가 없으면 backup폴더를 생성한다.
24~26LINE - 백업할 파일의 존재여부를 확인하고 앞서 생성한 backup 디렉토리에 복사 붙여넣기하여 1차 백업을 진행한다.
28LINE - 앞의 과정을 모두 성공적으로 수행하면 백업한 파일을 메일로 발송하여 2차 백업을 진행한다.
30~32LINE - smtp 프로토콜을 사용해 메일을 발송하기 위해서 smtp 객체를 생성 후
login()메소드를 통해 메일의 사용자 인증을 받는다.
StartTLS는 비보안 연결에서 보안 연결로 이메일 서버에 알리는 데 사용되는 프로토콜 명령입니다.
34~36LINE - 메일 발송을 하기전 제목과 내용을 어떻게 보낼지 설정하는 부분이다.
38~45LINE - 백업할 파일을 가져오는 부분이다.
첨부할 파일을 가져오고, octet-stream 형식으로 파일을 읽어와 base64 형식으로 인코딩을 하고
메일 발송 본문에 가져왔던 파일을 저장 후
이 작업이 끝나면 메일 발송을 한다.
RESULT
이 작업을 끝내고 나니 다른걸 만들어보고 싶은 생각과 파이썬으로
할 수 있는게 꽤 많겠구나 싶은 생각이 들었다.
그리고 무엇보다 너무 재밌었다..
이런 업무 자동화 스크립트를 만들면 나중에 더 큰 포트폴리오가 될 것 같아
이 파일 자동 백업 스크립트를 소프트웨어화 해서 더 사용성과 범용성을 늘리기로 했다.
'Python' 카테고리의 다른 글
[Python] 6. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.28 |
---|---|
[Python] 5. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.24 |
[Python] 4. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.24 |
[Python] 3. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.16 |
[Python] 2. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.10 |