git으로 work 폴더 백업 자동화하기

1 minute read

나는 게으른 사람이다. 그리고 뭔가를 백업하는건 아주 귀찮은 일이다. 소스코드는 그나마 낫다. 개발하고 수정할 때마다 git remote 서버로 push하면 된다. 하지만 작업용 및 관리용으로 들고 있는 work 폴더를 백업하는건 너무나도 귀찮은 일이다. 그러니 자동화하기로 했다. 작업 단계는 이렇다.

  1. work 폴더의 변경사항을 git으로 commit 하는 스크립트를 만든다.
  2. 스크립트를 매일 1회 배치로 돌아가게 한다.

Windows7과 Windows10에서의 설정법을 각각 정리해보았다.

1. Windows7

아래 쉘 스크립트를 만들어

#! /bin/bash
cd /d/work # 내가 백업할 폴더
git status
git add .
git commit -m $(date +"%Y%m%d_%T")
git push -u origin master

작업 스케줄러에 등록한다.

2. Windows10

Windows Subsystem for Linux(WSL) 덕분에 SSH Key 관리가 다소 복잡해졌다. 이 블로그의 글을 참조하여 SSH Key를 만든 후, 아래 batch 스크립트를 작업 스케줄러에 등록한다(no shell script! bat)

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"

REM d:\work 가 백업할 폴더
d:
cd work
git add .
git commit -m "%fullstamp%"
git push -u origin master 

이걸로 내 인생을 매일 1분씩 아낄 수 있게 되었다.

Tip: MS Office 문서 파일을 실행하면 ~$로 시작하는 임시 파일이 생성되는데, 이 파일 때문에 commit이 안되는 현상이 발생한다. 그러니 gitignore에 등록해주자. 아래처럼 만들어주면 된다.

~$*

끝!

참고: https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script/11037921

Leave a comment