crontab에 대한 도움말

crontab에 대한 도움말

홈 서버에 ping을 보내는 간단한 bash 스크립트가 있습니다. crontab에서는 오전 2시마다 실행되도록 구성했습니다. 그런 다음 핑 결과를 이메일로 보내주세요.

이상한 점은 crontab에서 무엇을 구성하더라도 항상 1분마다 실행된다는 것입니다. 왜 이런 일이 발생하는지 아시나요?

0 2 * * * pinger.sh

스크립트

#!/bin/sh
masterip="192.168.2.1"
pname="Home Server"
sender="From: Server Monitoring <[email protected]>"
subject="$pname Server Connectivity"
mail="[email protected]"

ping -c1 $masterip
if [ "$?" = 0 ];
  then
    pingmessage="$pname is reachable via LAN IP $masterip"
    pingms=$(ping -c 1 $masterip | sed -ne '/.*time=/{;s///;s/\..*//;p;}')
  else
    pingmessage="$pname is unreachable via LAN IP $masterip"
    pingms=$(ping -c 1 $masterip | sed -ne '/.*time=/{;s///;s/\..*//;p;}')
fi

{
echo "$pingmessage"
echo "with $pingms ms ping"
} | mail -a "$sender" -s "$subject" $mail

답변1

crontab의 명령에 리디렉션을 연결하는 경우

"Command >> /path/to/log 2>&1"

출력이 표시됩니다.

Cron은 아직 환경을 선택하지 않았으므로 /path/to/commandPATH 환경 변수를 원하는 검색 경로로 설정하지 않는 한 명령 경로는 루트 디렉터리와 스크립트의 명령에서 시작해야 합니다.

관련 정보