
繰り返しクラッシュするUbuntu 16.04をデバッグするために、/var/logをHDDから外部USBメディアにバックアップしたいと思います。 Live OS(Ubuntu 16.04)を実行しており、--archiveオプションを使用しています。
$ sudo rsync --archive /media/ubuntu/2f1ea741-cc93-4b0e-ad74-1e21d56d27a9/var/log/* /media/ubuntu/transcend/DebuggingSystemCrash@box3/var_log_2016-07-04-0939
予想される動作
アーカイブモードは次のようになる-rlptgoD
ため、変更時間を保存する必要があります。
-t, --times preserve modification times
観察された行動
ファイルのタイムスタンプ(atimeそして時間はいいえ保存中です。スクリーンショットをご覧ください。フォルダ変更時間はい保存してください。
ソースとターゲットの両方がインストールされているため、この問題は以下に関連する可能性があります。ソースツリーにマウントポイントがあるときにファイルのタイムスタンプを保存するようにrsyncに指示する方法。
私も以下を読みました。
私は何を逃したことがありませんか?
修正する
いいえsudoでrsyncを実行すると、mtimeに関して予想される動作が生成されますが、一部のファイルはスキップされます。
答え1
との違いは、次の抜粋sudo
によって発生する可能性があります。ドキュメント/ファイルシステム/vfat.txt。 (ターゲットファイルシステムの種類と^ Wfilesystemディレクトリを所有している人を知る必要があります。vfat
この場合はマウントオプションによって決まりますvfat
)。
とにかく、ファイルシステムの種類の重要性を示すため、これを公開しています。全体的な結論はLinuxでFATを使用するのは痛いです(FATのrsyncにも特別な問題があります)。。
リストされている問題の少なくとも1つが、他のデフォルト値(おそらくudisks
手動mount
コマンドではなくGUIで使用される値)で解決されていると確信しています。いずれにせよLinuxオペレーティングシステムの一部をFATにコピーし、ファイルメタデータに特定の結果が必要な場合は時間を無駄にしています。(タイムスタンプ)またはファイル名。この場合、デフォルトのLinuxファイルシステムを使用する必要があり、可能であればソースファイルシステムと同じタイプを使用する必要があります。
または、単一のファイルをコピーする代わりにファイルデフォルトのLinuxツール(tar
Zipファイルなど)を使用していますが、バックアップ用に設計されていますLinux* nixファイル - 名前と最も一般的なメタデータ。例えばtar -c -f out.tar input-directory/
(圧縮省略)です。
LinuxでFATタイムスタンプを設定するためのリファレンスドキュメント
allow_utime=### -- This option controls the permission check of mtime/atime.
20 - If current process is in group of file's group ID,
you can change timestamp.
2 - Other users can change timestamp.
The default is set from `dmask' option. (If the directory is
writable, utime(2) is also allowed. I.e. ~dmask & 022)
Normally utime(2) checks current process is owner of
the file, or it has CAP_FOWNER capability. But FAT
filesystem doesn't have uid/gid on disk, so normal
check is too unflexible. With this option you can
relax it.
避けるべきコミュニティ検証やその他の潜在的な問題
だからブログ投稿「FAT32インストール所有者だけがファイルタイムスタンプを設定できます」という確認が見つかりました。私はこれをデザインバグと呼びたいです(ルートもこれができるはずです)。参照文書にはほとんどそのように記載されていますが、それに対するパッチを送信するにはあまりにも怠惰です。
ブログでは、ファイル/ディレクトリの違いの説明も提供しています。残念ながら、これはあなたが描いたものとは正反対のようです。 以下に説明するファイル/ディレクトリの違いにより、一般ユーザーがディレクトリでタイムスタンプを正しく設定できないようにする必要があると思います。一方、あなたが示しているのは、ルートの場合、ディレクトリではタイムスタンプを正しく設定できますが、ファイルではタイムスタンプを設定できません。正しいタイムスタンプを設定してください。
私の考えでは、これは--modify-window=1
rsync関連の問題の解決策です。したがって、cp
ファイルのコピーを使用すると、異なるデータポイントを取得できます。
FAT32 マウントポイントの所有者であっても、ディレクトリ時間を安定して設定できません。
これで、元のファイルのタイムスタンプを正しくコピーできますが、すべてのディレクトリ変更時間がrsyncコマンドを実行した時刻に設定されていることがわかりました。これはまったく欲しいものではありません。クイックGoogle検索により、この問題に関するフォーラム投稿が公開されました。http://ubuntuforums.org/showthread.php?t=886048
このフォーラムの記事では、rsyncが異なると見なす前に、ファイルとディレクトリの時間がどれだけ一致する必要があるかについて1秒を提供する「--modify-window = 1」オプションを追加することを提案します。一部では、これは元のディレクトリタイムスタンプが正しく維持されると言います。