rclone - 警告:シェルレベル(1000)が高すぎます。 1にリセットしてください。

rclone - 警告:シェルレベル(1000)が高すぎます。 1にリセットしてください。

複数のファイルを含むディレクトリでrcloneを実行するbashスクリプトを実行しています。ただし、bashコマンドは完了せず、重複した警告が表示されます。以下に私のbashファイルを見つけることができます。


#!/bin/bash
echo "starting f2f perf tests"

source="/datadrive/0B-2500Files"

target="/mnt/perftest"

cd "${source}"

#ls /datadrive/Empty-Dir-Structure-250K | xargs -n1 -P4 -I% rsync -Pa % /datadrive/Empty-Dir-Structure-250K
rclone sync {source} {target} --transfers 256 --checkers 256 -v --log-file=/tmp/sync.log 

time /home/marcelomo/f2f-small-files-one-vm.sh
echo "rclone is done"

エラー出力は次のとおりです。

/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
... 

この警告は繰り返しのみ表示されます。私のbashスクリプトは自分自身を呼び出していますか?ソースとターゲットのディレクトリが存在することを確認しました。また、rsyncを使用してファイルを移動できますが、rcloneを使用している場合にのみこの重複警告が表示されます。

私が最終的に望むのは、--transfersパラメータを使用してbashスクリプトを実行して並列転送数を変更することによって、さまざまなファイルサイズのrcloneに費やされた時間を記録することです。

どんなアドバイスも本当にありがとうございます。ありがとうございます!

答え1

このtimeキーワードは、特定のユーティリティを実行して実行に費やした時間を報告します。

スクリプト内でスクリプト自体を呼び出すので、スクリプトtimeを実行するには、スクリプトを呼び出して再度スクリプトを呼び出す方法でメモリが使い果たされるまで続きます。timetime

つまり、無限再帰スクリプトを正常に生成したのです。

この問題を解決するには、コールライン全体を削除し、コマンドラインtimeからスクリプトを呼び出すか、スクリプトが呼び出される場所からcronスケジュールを呼び出すときにのみ使用してください。time

また、呼び出しにおよびを使用しました{source}。これらはおそらくそれぞれとで読むべきです。{target}rclone"$source""$target"

関連情報