Bash
rclone - 警告:shell 級別 (1000) 太高,重置為 1
我正在執行一個 bash 腳本,該腳本在具有多個文件的目錄上執行 rclone。但是,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 會收到此重複警告。
我最終想要做的是記錄 rclone 不同文件大小所需的時間,通過執行 bash 腳本使用 –transfers 參數改變並行傳輸的數量。
任何建議將不勝感激,謝謝!
關鍵字執行給定的
time
實用程序並報告執行它所花費的時間。由於您從腳本中呼叫腳本本身,因此
time
執行腳本將涉及time
使用腳本呼叫,而腳本又將呼叫time
腳本等,直到記憶體不足。簡而言之,您已經成功地創建了一個無限遞歸腳本。
要解決此問題,只需刪除整行呼叫
time
,並time
在從命令行呼叫腳本或從呼叫腳本的任何位置的 cron 計劃時使用。此外,您在對 的呼叫中使用了
{source}
和。這些應該分別讀和。{target}``rclone``"$source"``"$target"