Bash

rclone - 警告:shell 級別 (1000) 太高,重置為 1

  • June 14, 2022

我正在執行一個 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"

引用自:https://unix.stackexchange.com/questions/706201