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