Google ドライブから node_modules などを除外する方法

BLUE💙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

BLUE💙
BLUE💙