web-dev-qa-db-ja.com

rsyncを使用して、コピーではなくハードリンクのみを作成できますか?

rsyncとGoogleドライブアプリ(Macintoshコンピューターを使用しています)を使用してコンピューターを自動的にバックアップするシステムに取り組んでいます。 (このアプリは、コンテンツがGoogleドライブクラウドに保存されるディレクトリを作成します。)バックアップシステムのアイデアは、ファイルを(自動的に)Googleドライブディレクトリにコピーし(できればrsyncを使用)、ディレクトリをアップロードすることです。クラウドに。

ただし、このシステムには大きな欠点があります。それはメモリの浪費です。バックアップするすべてのファイルをコンピューターの2番目の場所にコピーする必要があり、ファイルが使用するスペースが2倍になります。コピーの代わりにハードリンクを作成する方がはるかにメモリ効率が高くなります。ハードリンクを使用してディレクトリツリーを複製し、元のツリーが変更されたときに複製を更新したいと思います。

コピーの代わりにrsyncを使用してハードリンクを作成できますか?これはlink--dest=オプションで可能かもしれないと思いますが、私には理解できません。

編集:フィードバックに応じたいくつかの説明。

  1. この質問は、 rsync --link-destがシンボリックリンクで期待どおりに機能しない の重複としてリストされています。なぜ同じ質問なのかわかりません。類似性は、ハードリンクを作成するために--link-dest=オプションを使用することに関係していると私は収集します。しかし、これは私がやり方を理解していないことです!だから私は重複した質問に満足していません。 --link-dest=を使用してハードリンクを作成することは、比較するバックアップがすでにある場合にのみ機能するようです。
  2. 私はこのサイトのユーザーに比べてコンピューターに堪能ではありません。私の質問に対する答えが「これは簡単です。rsyncのマニュアルページをもっと注意深く読んでください」などの場合は、それを行います。
  3. 他のbashユーティリティを使用して、探している機能を実現できて、とてもうれしいです。たまたまrsyncが好きですが、他のオプションもあります。 JdeBPは、たとえばpaxの使用を提案しています。
3
user134824

通常の方法は(メモリからの書き込み)です。

NEWBACKUP=`date +%s` # or some other format
cp -al "$OLDBACKUP" "$NEWBACKUP"
rsync -aH --delete "$SOURCE" "$NEWBACKUP"

チェックアウト LinuxとRsyncを使用した簡単な自動スナップショットスタイルのバックアップ

私が適切に調査したことのないrsyncの--link-destオプションもあります。

3
Law29