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스크립트를 실행하려면 time스크립트를 호출하고 time다시 스크립트를 호출하는 방식으로 메모리가 소진될 때까지 계속됩니다.

즉, 무한 재귀 스크립트를 성공적으로 생성한 것입니다.

이 문제를 해결하려면 전체 호출 줄을 제거하고 time명령줄에서 스크립트를 호출하거나 스크립트가 호출되는 위치에서 cron 일정을 호출할 때만 사용하세요.time

또한 호출에 및 를 사용했습니다 {source}. 이것들은 아마도 각각 및 로 읽어야 할 것입니다.{target}rclone"$source""$target"

관련 정보