사용자 도구

사이트 도구


git:as_backup

git as backup

특정 디렉토리 이하를 Git Repository로 백업할 때

  • SSH Key 를 생성해서 등록. github 이면 public key 를 Deploy Key로 등록.
  • private key 는 백업할 시스템 계정의 ~/.ssh/id_rsa 로 둔다. 그게 아니면 Linux SSH에서 ssh-agent로 등록해야한다.
  • 예를들어 /home/x/mydata 이하를 백업한다면, 해당 디렉토리 이하의 디렉토리나 파일들중 ignore할게 있다면 먼저 ignore할 파일, 디렉토리 바로 상위에 .gitignore를 만들어서 해당 파일/디렉토리를 기입해준다.
  • Git repository를 생성한다. 예, mydata리포지토리
# 미리 .gitignore 처리 필수
cd /home/x/mydata
git init
 
# 혹은 .gitattributes 에 * -text 항목 필요. 불필요한 줄끝형식 변환제거
git config core.autocrlf false
git config user.email "your@email.com"
git config user.name "Git AutoBackup"
# 필요하면
git config  push.default simple
 
# 파일 추가하고 커밋&푸쉬
git add .
git commit -m 'backup initialized'
git branch -M main
git remote add origin <https://githost.com/path-to-git-backup.git>
git push -u origin main

주기적 백업을 수행할 shell script 생성

  • backup.sh
NOWT=$(date +"%Y-%m-%d %T")
cd /path/to/workingdir
git add .
git commit -m "$NOWT Automated git push"
git push
  • commit 할게 없어도 오류 없이 무시된다.

cron 등록

  • 매일 새벽 4시 5분에 실행.
5 4 * * * /path/to/backup.sh > /tmp/cron_log.log 2>&1
  • 로그를 계속 남기려면 로그 파일 리다이렉트를 >> 로 설정하고 logrotate 를 해준다.

참조

git/as_backup.txt · 마지막으로 수정됨: 2020/09/23 13:49 저자 kwon37xi