rsync とシンボリックリンク
cron
を実行するrsync
ジョブを使用して毎晩ホームディレクトリを外部ドライブにバックアップしたいのですが、rsync
のシンボリックリンクフラグの正確な動作がわかりません。rsync
のシンボリックリンクフラグの正確な動作がわかりません。
1.-a
の -l
フラグには rsync -a
フラグ(つまり「シンボリックリンクをシンボリックリンクとしてコピーする」)が含まれています。これは単にリンクを_コピーするという意味なのか、それともリンクを追ってリンク先のディレクトリにあるものをすべてコピーするという意味なのでしょうか?バックアップする必要のない何百ギガバイトものメディアファイルをコピーしなければならないようなディレクトリへのリンクを持っているので、これは避けたいのです。
2. --no-links
がこれらのメディアファイルをすべてコピーしてしまうことを恐れて(確信はないが)、代わりに --no-links
フラグを追加した。これは私の望む動作ではないようだ。これは、コピーしたいリンク(例えば、異なるプロジェクトディレクトリから共通のヘッダファイルへのリンクなど)があるので、問題となるリンクのコピーを無視するだけです。
3. 上記の#1(rsync
フラグなし)が本当に欲しいもので、リンク先のファイルをコピーせずにリンクをコピーするだけだと仮定すると、バックアップしたときにリンクが切れてしまうのでしょうか?例えば、私はソースディレクトリ/home/me/projects/misc
を/media/extdrive/backup/home/me/projects/misc
からrsync
にするかもしれません。この場合、私は0x6&が十分にスマートではないと仮定し、また、相対的なディレクトリの変更のためにシンボリックリンクの内容を修正しようとしません。これは正しいのでしょうか?これは大丈夫です。バックアップディレクトリでリンクが壊れていても問題ではありませんので、もしそのような時が来てリストアする必要がある場合には、リンクが修正されて動作するようになります。