したがって、デフォルトでは、あるサーバーを別のサーバーにバックアップするシェルスクリプトがあります。このプロセス中に非常に大きなディレクトリ(140 GB)を別の場所にコピーする必要があり、シェルスクリプトからファイルがコピーされている間、0:00から始まるリアルタイムストップウォッチタイプカウンタを実行しようとしています。
可能ですか?
編集:これいいえ進行状況バーのアイデア :) 痛みが終わるまでの時間ではなく、どのくらいの時間が経過したかを確認できるシンプルなストップウォッチタイマーです:)
答え1
必要なものを実行するrsync -av --progress
代わりに使用しますか?cp
答え2
David Kings rsyncソリューションが機能しない場合、またはbashで本当にやりたい場合(理由)、次のことができます。
#!/bin/bash
your_command_to_execute &
myPid=$!
sleepTime=5
while kill -0 "$myPid" 2> /dev/null
do
# Sleep for the defined time
sleep $sleepTime
# And print the time since the script started in seconds
echo -en "Runtime $SECONDS\033[0K\r"
done
時間形式をよりよく指定するために何かを使用したい場合があります。
現在のスクリプトは、cp ジョブの開始後の秒数ではなく、スクリプトの開始後の秒数を出力します。 (この単純な操作を変更するには、現在の値からループの前の秒数を減算します$SECONDS
。)