rclone - 警告:shell 级别 (1000) 太高,重置为 1

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 参数改变并行传输的数量。

任何建议将不胜感激,谢谢!

答案1

time关键字运行给定的实用程序并报告运行它所花费的时间。

由于您从脚本内部调用脚本本身,因此time运行脚本将涉及time使用脚本进行调用,而脚本又会time使用脚本进行调用,依此类推,直到内存耗尽。

简而言之,您已经成功创建了一个无限递归脚本。

要解决此问题,只需删除整行调用,并仅在从命令行或调用脚本的任何位置的 cron 计划调用脚本时time使用。time

此外,您在对 的调用中使用了{source}和。这些可能应该分别读为和。{target}rclone"$source""$target"

相关内容