이것이 crontab으로는 실패하지만 스크립트로는 작동하는 이유는 무엇입니까? [중복]

이것이 crontab으로는 실패하지만 스크립트로는 작동하는 이유는 무엇입니까? [중복]

중복 가능성:
이 두 크론 작업에 어떤 문제가 있나요?

날짜, 시간, 긴 숫자 및 긴 숫자가 포함된 파일의 형식화된 출력을 인쇄하고 싶습니다. 저는 이를 LC_NUMERICUTF로 설정하고 %'d플래그 문자를 사용하여 수천 개의 숫자 그룹을 생성했습니다.

crontab의 다음 줄은 다음 오류를 생성합니다

/bin/sh: -c: line 0: unexpected EOF while looking for  matching `"'

cronjob이 실행될 때.

@daily LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" \
          $(/usr/bin/tail -n 31 /var/log/bandwidth)

가독성을 높이기 위해 줄바꿈을 추가하세요.

@daily스크립트의 동일한 줄(없음)은 정상적으로 작동합니다.

%'d크론이 이 부분에 목이 막혀서 결말을 찾지 못한 것 같아요 ". 왜?

답변1

파일을 넣고 LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)chmod를 770으로 설정하고 해당 파일 이름을 crontab에 넣는 것이 좋습니다.

답변2

파일에 환경 변수를 설정하려면 crontab해당 줄에 해당 변수를 넣어야 합니다. 이 설정은 이 줄 이후의 모든 cron 명령에 영향을 미칩니다.

LC_NUMERIC=en_US.UTF-8
@daily /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)

그러나 내부에 무엇이 있는지 알지 못하면 /var/log/bandwidth실제 문제가 무엇인지 알 수 없습니다.

관련 정보