bash 스크립트가 있습니다
#!/bin/sh
DTFILE=/etc/daytime.addr
DTPORT=13
DAYTIME_ERROR=/tmp/dtm.err
function daytime_error(){
if [[ -z $1 ]]
then
exit 1
fi
if [[ -e $DAYTIME_ERROR ]]
then
echo "Error already reported"
else
logger "$1"
touch $DAYTIME_ERROR
fi
exit 1
}
if [[ -s $DTFILE ]]
then
ADDR=$(head -n1 $DTFILE)
DAYTIME=$(telnet $ADDR $DTPORT | time_conv.awk)
if [[ -z $DAYTIME ]]
then
daytime_error "Daytime client: no connection to $ADDR"
else
date -s "$DAYTIME"
hwclock -w
rm $DAYTIME_ERROR
fi
else
daytime_error "Daytime client: no daytime server address in file $DTFILE"
fi
명령 줄에서 호출되면 작동하지만 cron이 호출하면 실패합니다. 특히 telnet 명령이있는 행은 0 바이트의 출력을 제공합니다. Telnet에는 755 마스크가 있으므로 모든 사용자가 사용할 수 있어야합니다. 어떤 아이디어?
#!/bin/sh
/ bin / sh가 bash와 심볼릭 링크되어 있더라도 스크립트를 사용하여 스크립트를 실행하면 실제로는 bash 스크립트가 아닙니다. "sh"로 호출하면 배시는 다르게 동작합니다.
/path/to/bash /path/to/script
은/path/to/script
나를 유머 하기보다는 cron에 추가 할 수 있습니까? 또한 telnet과 같은 내장되지 않은 실행 파일에 대한 전체 경로를 추가 하시겠습니까?