배우고 익힘/컴퓨터

Backblaze b2에 백업하자

White smoke 2022. 6. 20. 20:59

데스크탑을 파일 저장서버로 사용하고 있는데, 한 번 클라우드 인스턴스가 날아가니 일하면서 생기는 자료가 날아갈지도 모른다는 공포에 휩싸이는 정도까지는 아니고 걱정이 되어 백업을 찾아보았다.

이것 저것 보다가 rclone을 사용해서 Backblaze b2에 저장하기로 결정. 최초 10기가 까지는 공짜랜다. 저장하는 용량에 따라 돈을 내고, 다운로드 할 때 또 돈을 (더 비싸게) 낸다. 그니깐 이거는 백업이다 정말로.

10기가에 파일이 3500개 정도였는데 17분 45초면 꽤 빠른 업로드 속도 아닌가 싶다. 오 맘에 두뤄써!

오 천재들이여! 이런 좋은 세상에 살게 해주셔서 감사합니다.

참고자료

rclone 자동화 스크립트
rclone_jobber/rclone_jobber_tutorial.org at master · wolfv6/rclone_jobber · GitHub

 

GitHub - wolfv6/rclone_jobber: An rclone script to perform backups

An rclone script to perform backups. Contribute to wolfv6/rclone_jobber development by creating an account on GitHub.

github.com

cron 스크립트 기본 설명
서버에 예약 업무 시키기 (crontab 설정) (tistory.com)

 

서버에 예약 업무 시키기 (crontab 설정)

서버에 작업할 스크립트는 써놨는데 매번 직접 실행하기 귀찮습니다. 예를 들어 매주 일요일마다 백업하기, 매일 아침 6시에 업데이트 하기 등 규칙적으로 해줬으면 하는 작업들을 대신 실행시

hoodiejun.tistory.com

내가 작성한 슈퍼 간단 스크립트. 이걸 crontab -e 에 실행하도록 했지.

#!/bin/sh
rclone sync -i /home/내이름/MySMB/work/01_고객사 remote:버킷이름 --progress --max-age 24h --fast-list

문제 발생

crontab -e에서 실행되지가 않는다... 대략 이틀동안의 삽질 끝에 이제 된다. 원인은 다음 4가지.

  • 왜 안되는지는 로그를 확인해야 하는데, 나는 왜 로그가 생성되지 않는걸까. 삽질하다보니 script 상의 경로가 잘못되었다. 로그 생성되는 디렉토리만 입력했었고, 파일명의 형태를 지정하지 않았었다. /디렉토리/abc.log 형태로 수정하니 로그가 생성되었다.
  • 그럼에도 불구하고 계속 또 다시 안되는 현상이 발생했는데, 로그를 확인하니 아래의 문구가 출력되어서 시간 초과로 인해 실행이 되지 않았다.
y) Yes, this is OK (default)
n) No, skip this
s) Skip all copy operations with no more questions
!) Do all copy operations with no more questions
q) Exit rclone now.

y를 눌러줘야 하는데 안눌러주니 시간이 지나다가 자동으로 멈췄다. 삽질하다보니 -i 옵션 때문으로 확인했다. 이 옵션은 최초 설정시에만 확인차 하는거고, 반복 작업에서는 저 옵션을 빼야 한댄다. i가 interactive라고 서로 상호작용, 주거니 받거니해서 그른가보다. 그리고 끝에 --auto-confirm 옵션을 추가해줬다.

  • 권한 및 경로 문제. SHELL 문제가 어쩌고 저쩌고란다. 잘 이해하지 못했다. #!bin/bash 및 PATH 경로 등을 입력해줘야 한다고 해서 입력했다.

최종 수정된 스크립트는 다음과 같이 되었다.

#SHELL=/bin/bash
#MAILTO=''
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

* 04 * * 1-5 /home/유저네임/scripts/rclone-auto.sh >/home/유저네임/logs/crontab.log 2>&1

도움을 준 천재들

아래 두 링크가 핵심이었다.

linux - Why is my crontab not working, and how can I troubleshoot it? - Server Fault

 

Why is my crontab not working, and how can I troubleshoot it?

This is a Canonical Question about using cron & crontab. You have been directed here because the community is fairly sure that the answer to your question can be found below. If your question ...

serverfault.com

cron - Why crontab scripts are not working? - Ask Ubuntu

 

Why crontab scripts are not working?

Often, crontab scripts are not executed on schedule or as expected. There are numerous reasons for that: wrong crontab notation permissions problem environment variables This community wiki aims to

askubuntu.com