rsyncを使用しました 特定のユーザーディレクトリをあるストレージデバイスから別のストレージデバイスにコピーするコマンド。警告/エラーをスローすることなく、操作は正常に完了しました。しかし、驚いたことに、コピーされるデータは約167GBで、コピーされたデータはわずか1.4GBでした。 「du」コマンドを使用してソースフォルダと宛先フォルダのディスクサイズを計算し、このチュートリアル(duからの不安定なディスク使用統計を修正する方法)に従って、「du」が不安定な結果を表示しないことを確認しました。以下は、シナリオを説明するスナップショットです。
シナリオ: 古いストレージマウントポイントは「/sata1/ home / ramya」であり、新しいストレージマウントポイントは「/ tmp / home/ramya」であると仮定します。前に述べたように、私は rsyncを使用しました 以下に示すようにディレクトリをコピーするには:
usr/bin/rsync -avzlh /sata1/home/ramya/* /tmp/home/ramya/ | tee /tmp/$(date+"%F_%R")-backup.log
上記のコマンドの「アスタリスク」に注意してください(これが問題でした。理由については、折り目の下で説明します)
duコマンドの不一致の結果:
du ソースディレクトリ(/ sata1 / home / ramya /)のコマンド出力:
# du -chs /sata1/home/ramya/ 167G /sata1/home/ramya/ 167G total
du 宛先ディレクトリ(/ tmp / home / ramya)のコマンド出力:
# du -chs /tmp/home/ramya/ 1.4G /tmp/home/ramya/ 1.4G total
上記のスナップショットから、ソースディレクトリのサイズが167 GBで、コピーされたディレクトリのサイズが1.4GBであることがわかります。では、残りのデータはどこにありますか?問題を解決した方法を説明しましょう。
解決策:
問題をデバッグするために、 duを使用しました 以下に示すように、ソースフォルダーと宛先フォルダー内の各ファイルのサイズを確認するコマンド:ファイルを一覧表示し、ファイルサイズを比較します。
bash-3.2#du -h -x /sata1/home/ramya 15G /sata1/home/ramya/.g4 48M /sata1/home/ramya/1SVC 13G /sata1/home/ramya/.g8 120M /sata1/home/ramya/techg/.techla 90G /sata1/home/ramya/.openVAS.tar-gz 16G /sata1/home/ramya/.VSL.zip ... ... | bash-3.2#du -h -x /tmp/home/ramya 1G /tmp/home/ramya/samplejobtoec 48M /tmp/home/ramya/1SVC 41M /tmp/home/ramya/M15 12K /tmp/home/ramya/techglimpse/openvas.txt 134M /tmp/home/ramya/etc/pki 264K /tmp/home/ramya/NAMD_CV ... ... |
上記の出力から、隠しファイルはコピーされておらず、「*" (asterisk)
が原因であることがわかりました。 rsyncで使用されます 指図。アスタリスクは、現在作業中のすべてのファイルを展開します 名前がドットで始まるファイルを除くディレクトリ (隠しファイル)。したがって、rsync
隠しファイルを引数として受け取ることはありません。したがって、解決策は、(アスタリスクではなく)ディレクトリ名全体を rsyncの引数として使用することです。 コマンド。
rsync -avzlh --ignore-existing /sata1/home/ramya/ /tmp/home/ramya/ | tee /tmp/$(date+"%F_%R")-backup.log
注:両方のパスの末尾にあるスラッシュ。他の構文は予期しない結果につながる可能性があります!
出来上がり!うまくいきました。