$(hostname)이 cronjob에서 작동하지 않습니다.

$(hostname)이 cronjob에서 작동하지 않습니다.

백업 이름을 지정하기 위해 다음 줄을 포함하는 간단한 백업 스크립트가 있습니다.

backup=$(/bin/date +'%Y-%m-%d_%H:%M_%S')_$(hostname).gz

루트 사용자로 실행하면 제대로 작동합니다. 불행하게도 cronjob으로 실행되도록 설정하면 $(hostname) 부분이 항상 비어 있어 호스트 이름을 얻을 수 없습니다. 작동하지 않는 이유와 cron 작업에서 호스트 이름을 얻는 방법은 무엇입니까?

우분투 18.04를 실행 중입니다.

답변1

Crontab에는 자체 경로 변수 목록 등이 있습니다. 이를 사용하거나 쉘과 같은 쉼표 대신 crontab에서 bash 스크립트를 실행할 수 있습니다.

크론탭 사용법은 다음과 같습니다.

VARIABLE=value
PATH=/bin:/path/to/doanything
0 0 * * * doanything.sh $VARIABLE

답변2

hostnamePATH스크립트에 없는 것 같습니다 . /bin/hostname당신이 했던 것처럼 거기에 넣거나 포함하도록 date설정하십시오 (스크립트 또는 crontab 내에서).PATH/bin

관련 정보