0

Mountain Lion の新規インストールに備えて、Carbon Copy Cloner を使用してハード ドライブのクローンを作成しています。プロセスは、robottinosino.sparsebundle イメージからバンドをコピーする際にスタックしているようです。

「何か」が動いていることを確認するために、私はこの非常に粗雑な CLI スクリプトに頼っています。

rsync -n -avv --delete /Users/robottinosino/robottinosino.sparsebundle/ /Volumes/AppleSSD_Clone_2012-09-03/Users/robottinosino/robottinosino.sparsebundle/ | grep -v ' is uptodate$' | grep bands | wc -l

をシミュレートしますrsyncが、実行しません (-n オプション)。バンドが同じであることを確認する行を除外し、まだコピーする必要があるバンドを記述している行のみを選択し、まだ保留中のバンドの数を数えます。

ここで、プロセスがどれだけ速く進行しているかを知りたいです。数日経ったので、「1 秒あたりのバンド数」と言います...週末。週末までに終わらない場合は、とにかく中止しなければならないので、今すぐやめたほうがよいでしょう。

上記のハックを function x() { ... } として定義し、この嫌悪感を使用して「バンド/秒」をカウントするとします。

start_seconds=$(date +%s); bands_at_start=$(x); sleep 6; bands_at_end=$(x); end_seconds=$(date +%s); total_seconds=$((end_seconds-start_seconds)); total_bands=$((bands_at_start-bands_at_end)); bands_per_second=$((total_bands/total_seconds)); echo $bands_per_second

これはゴミの結果をもたらします。

問題は、整数除算を行っているという事実ですか? Bashでfloat/double除算を行うことはできますか? シェルスクリプトを使用してこれを行うより通常の方法はありますか?

私は初心者です、私を失望させないでください。よろしくお願いします。

編集:整数除算を回避するためにこれを試みています:

bands_per_second=$(echo "scale=10; $total_bands/$total_seconds" | bc);

しかし、Bash/shell スクリプトまたはその他のスクリプト ツールでこのタイミングを行うためのより良い方法があるに違いありません。ご存知のように、非常に多くの (上記のカウントが正しい場合は数千) バンドが残っているため、続行する価値があるかどうかを本当に見積もることはできません...

4

1 に答える 1

0

その sparsebundle は、FileVault で暗号化されたホーム ディレクトリです。これを試しているときにたまたまそのユーザーとしてログインした場合、問題が発生する可能性があります。これがあなたがしていることである場合は、次の行に沿って何かを試すことができます。

1) 管理者アクセス権はあるが暗号化されていない新しいユーザーを作成します。ログアウトし、新しいユーザーとしてログインして、再試行してください。

2) filevault 暗号化を元に戻します。暗号化されていないバージョンのファイルをバックアップすることになるため、おそらく良い考えではありません。

3) バックアップを実行する前に、ハードディスクではなく OS X インストール ディスク/USB ドライブから起動して、ハードディスクがまったく使用されないようにします。

Mountain Lion はディスク全体の暗号化をサポートしているため、最初にホーム ディレクトリの暗号化をオフにする必要があることに注意してください。インストールが完了したら、それをオンにすることをお勧めします。

于 2012-09-04T09:34:41.750 に答える