DropboxからGoogle Driveに乗り換えた
以前から Mac 複数台、Linux 複数台、iPhoneでDropboxを使ってきたのだけど、最近マシンを交換したら3台制限に引っかかって同期できなくなってしまったので、Google One を契約してるのもあり無難なところでGoogle Driveに移行することにした。
方針
- Googleドライブ直下に
Sync
というフォルダを作って、このフォルダだけ同期する (以前の~/Dropbox/
的な感じ)
セットアップ
macOSはまぁ普通にダウンロードしてインストールして設定すればいいんだけど、Googleドライブ直下のファイルの同期を抑止する方法がわからんかった。
LinuxはGUIは必要ないのでGrive2を使うことにした。
0.5.1-dev(2019-07-12現在未リリース)から .griveignore
ファイルで同期する対象の指定ができるようになったのでこれを使う。
ビルドとインストールはドキュメントの通り(ソースはリリースページのじゃなくて、git clone
するかmaster.zip
を使う)ににして、初回実行はこんな感じ。
$ grive --version grive version 0.5.1-dev Jul 11 2019 18:10:47 $ mkdir ~/GoogleDrive/ && cd ~/GoogleDrive/ $ cat << EOF > .griveignore * !Sync EOF $ grive -a
これで Sync
だけが同期される。
griveは同期が終わると終了して常駐はしないので、定期的に、更新があったときに同期が実行されるようにする。
今回はホームディレクトリ下のディレクトリ GoogleDrive
を基点ディレクトリとしたので、一般ユーザーで次のように仕込めばよい。
systemctl --user enable grive-timer@$(systemd-escape GoogleDrive).timer systemctl --user start grive-timer@$(systemd-escape GoogleDrive).timer systemctl --user enable grive-changes@$(systemd-escape GoogleDrive).service systemctl --user start grive-changes@$(systemd-escape GoogleDrive).service
ログは journalctl
で確認できる。
journalctl -f --user -u grive-timer@GoogleDrive.timer journalctl -f --user -u grive-changes@GoogleDrive.service
というわけで今までありがとうDropbox!
今回のおハマり
sshで入った先で systemctl --user
がエラーになるときは、
$ systemctl --user Failed to connect to bus: No such file or directory
sshd_configでUsePAM yesになっているか確認しましょう。
pam経由からのsystemd-logindからのログインじゃないのでセッションが作られません。