스토어에서 Advanced SSH & Web Terminal 애드온 설치.
GitHub 계정의 Settings > SSH and GPG keys에 자신의 공개키 등록.
# ssh로 접속 후 백업할 폴더 이동
cd /config
# 현재 폴더를 Git 저장소로 초기화
git init
# 백업 제외할 항목추가
vim .gitignore
.cache/
.cloud/.storage/*!.storage/lovelace*deps/tts/
secrets.yaml
id_rsa
*.db
*.db-shm
*.db-wal
*.log
# 원격 저장소 주소 등록 (GitHub계정홈에서 새 저장소를 private로 먼저 구성)
git remote add origin git@github.com:사용자계정/저장소이름.git
# 기본 브랜치 이름을 main으로 설정
git branch -M main
# 현재 위치의 디렉토리에서 변경된 파일들을 저장 대기 목록에 추가
git add .
# 대기 중인 파일들을 로컬에 기록 (버전 생성)
git commit -m "메시지"
# 로컬 기록을 GitHub 서버로 전송
git push origin main
configuration.yaml
automation: !include automation.yaml
shell_command: !include shell_command.yaml
automation.yaml
- id: system-core/backup
alias: system-core/backup
mode: single
triggers:
- trigger: time
at: '05:00:00'
actions:
- action: shell_command.git_backup
shell_command.yaml
git_backup: >
sh -c "cd /config && [ -n \"\$(git status --porcelain)\" ] && git add . && git commit -m \"daily backup $(date '+%y-%m-%d %H:%M:%S')\" && GIT_SSH_COMMAND='ssh -i /config/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' git push origin main || echo 'No changes to commit'"
** GitHub를 이용한 백업의 장점은 변경점 관리가 돼 수정삭제 이력을 유지할 수 있다는 것.
** 개인키는 홈보다는 /config 디렉토리에 두는 것이 관리가 편함.
** 리눅스나 windows 홈계정의 설정파일도 GitHub에서 관리. 흩어진 설정파일은 하드링크로 홈에 만드는 걸로 해결.
