Google ドライブから node_modules などを除外する方法
BLUE💙
1 min read
ほとんどのプロジェクトは Github などでバージョン管理をしており、定期的に push しているはずだ。しかし、Github には push しないけれど、バックアップを取っておきたいファイルというのもある。
ただし、何も設定をしないまま同期をすると node_modules
や .git
などの容量が大きめのディレクトリが、いい感じに同期されない。どうやらシンボリックリンクがあると、同期にエラーが起きるようだ。
というわけで、以下の方法でいい感じに同期しちゃいましょう。
前提
Mac
Google ドライブ
ディレクトリ構成
# 同期元
~/Projects
# 同期先
~/Google Drive/My Drive
要件
~/Projects
のファイルを定期的に~/Google Drive/My Drive
に同期したい。指定したファイルやディレクトリは除外したい。
実装
vim ~/backup.sh
#!/bin/bash
# Sources
sources=(
"$HOME/Projects"
"$HOME/Tools" # 追加できる!
)
# Target
target="$HOME/Google Drive/My Drive"
# run the sync
for source in "${sources[@]}"; do
rsync -avz --delete \
--exclude='node_modules' \
--exclude='.git' \
--exclude='.DS_Store' \
"$source" "$target"
done
echo "🎉 Backup completed at $(date)"
実行権限を与える
chmod +x ~/backup.sh
定期実行
crontab -e
例として、1時間に1回の実行をする。
0 * * * * /bin/bash ~/backup.sh
完成!
すぐに試したい場合は、速攻でコマンド実行してみればおk
./backup.sh
これで、GitHub にしばらく push してなかったとしても、パソコンがいきなりぶっ壊れても、すぐに開発に取り組めるのであります🙋♀️
0
Subscribe to my newsletter
Read articles from BLUE💙 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by