それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

rcloneのバックアップがシンボリックリンクのリンク取得していないことが判明

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