rclone でgsuite / google drive にバックアップに注意が必要
google ドライブなどいくつかのストレージは、シンボリックリンクをサポートしていないので、シンボリックリンクは取得されない。リンクされたファイルが無視される。
取得されない例
rclone sync /etc/ my-google-drive:/my-etc
シンボリックリンクを辿って取得する
シンボリックリンクそのものが取得できないなら、ファイルを「辿って」取得してしまえばいいのではないかという乱暴な解決策がある。
link をコピーするフラグ
takuya@:~$ rclone help flags | grep links 150: -L, --copy-links Follow symlinks and copy the pointed to item. 249: --skip-links Don't warn about skipped symlinks.
ファイルを実体としてコピーする
rclone --copy-links sync /etc/ my-google-drive:/my-etc
これで、ファイルはシンボリックリンクとしてはコピーされないが、中身はコピーされる。
その他の解決策
そもそも sync / copy を使わない。ちゃんと tar.gz は dump ファイルを取得してバックアップとして転送するなどの解決策が考えられる。
ただし、1つの巨大なファイルを送信するとストレージ・サービス側で拒否される可能性が大きい。
symlink をいれるときの注意
symlink を使うと再帰的なフォルダ構成になる可能性があるので、永遠にsyncが終わらないという事件も起きそう。
少し落ち着いて考える必要がありますね。
シンボリック・リンクのファイルを多く入れているフォルダをrclone したときにはバックアップがないので、なにか手をうつ必要があるのは間違いがない。
2021-11-03
-l, --links Translate symlinks to/from regular files with a '.rclonelink' extension
link ファイルをリンクファイルとして扱うフラグが追加されているのを発見した。
参考資料
- rclone help flags