ファイルをバックアップするためにスクリプトを変更するにはどうすればよいですか?

ファイルをバックアップするためにスクリプトを変更するにはどうすればよいですか?

以前のWindowsコンピュータで購入したばかりのスタンドアロンLinuxノートブック(s / h Dell Linux Mint 17.1)にファイル(テキストファイル、jpeg、映画のみ)を移動しました。これらのファイルをUSBにバックアップするには、バックアップツールに2つの問題があります。

  • (1)このツールはノートブックから削除したファイルを削除しません。つまり、USB経由でファイルを削除することです。
  • (2)バックアップするたびにツールを設定する必要があります。これは非常に面倒です。

Linuxについて学ぶには数週間かかりました。端末で素早く実行するために、次のスクリプトを作成しました。

#!/bin/bash
rsync -arh --quiet --delete ~/ /media/my-laptop/my-usb

私はこれに問題があると思います。すべてがある程度うまくいくようです(つまり、スクリプトを実行した後、すべてのUSBにハードドライブの内容の正確なコピーがあります)。しかし、(ctrl hを使用すると)隠しファイルもコピーされ、ビルド中にたくさん表示されることがわかります。エラーメッセージは次のとおりです。

rsync : mkstemp “media/my-pc/my-usm/.local/share/Trash/files/. …...” failed : Invalid argument (22). 

rsync : symlink “media/my-pc/my-usm/.local/share/Trash/files/….”  →  “….”  failed : Operation not permitted (1). 

簡単に2行#を修正してください!上記のスクリプトを使用すると、隠しファイルや関連するエラーメッセージなしで自分のファイルとファイルのみをバックアップできますか?

答え1

ポイントファイルのバックアップを回避しようとするのではなく、これらのファイルのバックアップが失敗する理由を確認することをお勧めします。

バックアップ先はFATファイルシステムです。これはファイルに関連付けられているすべてのメタデータ(所有権、権限など)を処理しないため、データの「真の」コピーは作成されません。

ここで 1 つのオプションは、デバイスをext4ファイルシステムに再フォーマットし、そのファイルシステムにバックアップすることです。ext4孤立したデータが発生しないように、Windows用のFOSSドライバを使用してファイルシステムを読み取ることができます。

USBデバイスを再フォーマットする場合は、正しいデバイスをフォーマットしていることを確認してください。ルートファイルシステムを削除すると、回復は非常に困難です。

私はそれを望むそれはまるで /dev/sdb1しかし/dev/sda*、。コマンドを使用してデバイスを確認できますが、mount | grep /mediaデバイス名がインポートした名前と異なることを確認してくださいmount | grep '/$'。不明な場合は、コマンドの完全な結果で質問を更新してくださいmount

別のオプションはduplicity

答え2

そうすればいいえ「隠し」ファイルを含めるには、rsyncそのファイルを無視するように指示できます。

--exclude=".*"

したがって、あなたの例によると:

rsync -arh --quiet --exclude=".*" --delete ~/ /media/my-laptop/my-usb


編集する: しかし、このアプローチはいいえサポートどの.設定ファイル(ファイル名で始まる「隠し」ファイル)

関連情報