태그 보관물: 백업

Airtable 테이블 백업하기

에어테이블(Airtable)을 사용 중일 때 정기적으로 백업하는 수단이 마땅치 않아서 찾아본 결과, airtable-export 파이썬 라이브러리를 이용하면 YAML/JSON 형식으로 테이블을 백업할 수 있다.

간단하게 pip 명령으로 설치한 후에

$ pip install airtable-export

다음과 같은 형식으로 에어테이블 base 아이디와 백업할 테이블 아이디, API 키, 출력 형식 등을 지정하면 된다.

airtable-export export base_id table1 table2 --key=key --ndjson

지금은 대략 다음과 같은 파이썬 코드로 여러 테이블들을 주기적으로 백업하고 있다.

import subprocess

base_id = 'BASE 아이디'

tables_to_backup = ['<테이블 아이디>']

args = []
args.append('airtable-export')
args.append('export')
args.append(base_id)
for each in tables_to_backup:
    args.append(each)
args.append('--key=<API 키>')
args.append('--json')

subprocess.run(args)

MySQL 백업 스크립트

일자별로 MySQL 데이터베이스를 백업할 일이 있어서 셸 스크립트다.

#!/bin/bash

DATE=$(date +%Y%m%d)
BACKUP_DIR=<백업 파일을 저장할 디렉터리>
mysqldump -u <사용자 ID> -p<비밀번호> <DB명> > $BACKUP_DIR"backup_"$DATE.sql
tar -cvzf $BACKUP_DIR"backup_"$DATE.tar.gz $BACKUP_DIR"backup_"$DATE.sql --remove-files

이 셸 스크립트를 cron에 등록해 두면 BACKUP_DIR에 지정한 디렉터리에 backup_20210902.tar.gz 같은 파일명으로 백업 파일이 저장된다.

cron 잡에는 다음과 같이 등록해서 매일 새벽 4시에 실행되도록 만들어뒀다.

0 4 * * * /home/<user>/scripts/mysql-backup.sh >> /home/<user>/logs/mysql-backup.log 2>&1