2014-08-18 04:35:50 +0000 2014-08-18 04:35:50 +0000
77
77

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&が十分にスマートではないと仮定し、また、相対的なディレクトリの変更のためにシンボリックリンクの内容を修正しようとしません。これは正しいのでしょうか?これは大丈夫です。バックアップディレクトリでリンクが壊れていても問題ではありませんので、もしそのような時が来てリストアする必要がある場合には、リンクが修正されて動作するようになります。

回答 (2)

98
98
98
2014-08-18 05:26:17 +0000
    1. “シンボリックリンクをシンボリックリンクとしてコピーする "とは、まさにその通りの意味です: rsync がソースディレクトリにシンボリックリンクを見つけた場合、宛先に同一のシンボリックリンクを作成します。**これ以上のことはありません。--linksが何をするかを誤解しているため、間違った動作を要求しているからです (答え#1を参照)。
  1. デフォルトでは、宛先を正確にコピーします。

19
19
19
2018-12-30 07:47:50 +0000

@grawityさんの回答は素晴らしいものですが、ここにドキュメントの関連情報のスクリーンショットがあります。例えば、-l-Lオプションの正確な文言は以下の通りで、問題の中で最も関連性の高いものと思われます。

ソース。 https://linux.die.net/man/1/rsync 、またはLinuxのman rsyncのマニュアルページを参照してください。

-a (--archive) オプションにも -l オプションが含まれていることに注意してください。マニュアルページを参照してください。

-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)

注意:コピー、ミラーリング、全体の進捗状況の表示など、私のお気に入りの -l コマンドと指示については…

…ドライランの実行、標準エラーと標準出力の(別の)ファイルへのロギング、統計情報の表示、includeパスファイルexcludeファイルの使用などを含む、お気に入りのrsyncコマンドと手順については、2番目のセクションの「2. rsyncコマンドラインツール(Linux, Windows with Cygwin)」の下にある私の完全な回答を参照してください。 https://superuser.com/a/1464264/425838

関連する質問

6
10
5
37
1