Dot 파일(구성 파일)을 쉽게 관리

오래된 노트북에서 새 노트북으로 마이그레이션하거나 전체 OS를 다시 설치할 때마다 항상 모든 구성 파일(Ide 구성, bash 기록, 앱 프로필 등)을 하드 디스크에 복사했습니다.

홈 폴더에서 불필요한 구성을 모두 복사(모두 압축하여)하거나 특정 구성을 선택하면 계속 누락됩니다.



그 모든 것을 압축하더라도 저장하는 것은 또 다른 큰 도전이었습니다. 데이터 저장에는 로컬 또는 클라우드에 저장하여 데이터를 보존해야 하므로 비용이 발생합니다. 이 모든 단계를 수동으로 반복해야 하므로 구성을 업데이트하는 것이 훨씬 더 어렵습니다.

그래서 Git을 사용하여 구성 파일을 추적하기 시작했고 모든 구성 파일을 푸시할 수 있는 Private Repo를 만들었습니다.

처음에는 dotfiles 디렉토리 안에 sync. sh라는 이름으로 bash 스크립트를 만들었습니다.
sync.sh
#
#!/bin/bash
declare -a filesToSync=(".bashrc" ".bash_history" ".zshrc" ".zsh_history" ".gitignore_global" ".gitconfig")
## now loop through the above array
for i in "${filesToSync[@]}"
do
   cp ~/$i ~/dotfiles/$i
   # or do whatever with individual element of the array
done
declare -a foldersToSync=(".config/Terminator",".config/JetBrains") 
## now loop through the above array
for i in "${foldersToSync[@]}"
do
  cp -r ~/$i ~/dotfiles
   ## or do whatever with individual element of the array
done


따라서 bashsync.sh를 실행한 후 스크립트는 모든 로컬 구성 파일과 폴더를 디렉토리의 dotfiles 폴더로 복사합니다.

이제 이 명령을 실행git add . git commit -m “message” git push -u origin master하여 내 Git 저장소로 푸시하기만 하면 됩니다.

그런 다음 다시 매주 위의 수동 프로세스를 자동화하고 싶었기 때문에 동일한 dotfiles 디렉토리 내에 이름이 있는 파일을 만들었습니다.
cronscript.sh
#
#!/bin/bash
cd ~/dotfiles
bash syncfile.sh
git add .
git commit -m “weekly changes”
git push -u origin master -f 


마지막으로 crontab -e로 주간 Cron 작업을 생성했습니다.
0 0 * * 0 bash /home/ujwal/dotfiles/cronscript.sh

결론



매주 내 구성 파일이 자동으로 동기화되므로 전혀 기억할 필요가 없습니다.

https://github.com/jbernard/dotfiles 과 같이 위의 스크립트보다 더 많은 기능을 가진 도트 파일 관리를 위한 다른 훌륭한 도구가 있습니다.
bash 스크립팅도 나란히 배울 수 있었기 때문에 간단하게 저만의 스크립트를 만들었습니다.

좋은 웹페이지 즐겨찾기