cron에서 매분 실행되는 기본 스크립트를 만들려고 합니다. 스크립트는 script.sh
다음과 같습니다
#!/bin/bash
DATE=`date +"%Y-%m-%d %H:%M:%S"`
IP=`ifconfig | grep "inet addr" | awk --field-separator ':' '{print $2}' | awk '{print $1}' | head -1`
echo "$DATE $IP" >> test.log
" "를 입력하여 이 스크립트를 실행 하면 ./script.sh
test.log에서 이 형식의 IP 주소를 얻습니다(그것은 중요하지 않습니다):
2017-11-08 16:33:33 10.0.0.1
2017-11-08 16:34:33 10.0.0.1
2017-11-08 16:35:33 10.0.0.1
그러나 다음과 같이 크론 작업을 생성하면:
* * * * * /path/to/my/script.sh
test.log에는 날짜만 있습니다.
2017-11-08 16:36:13
2017-11-08 16:37:13
2017-11-08 16:38:13
그런데 왜?왜 IP 주소가 없나요?어떤 아이디어가 있나요?
답변1
date
가능 /bin/date
하고$PATH
크론 작업의 기본값$PATH
, 사용자가 로그인할 때의 설정과 다릅니다.
ifconfig
아마 /sbin/ifconfig
그렇지 않을 것이다 $PATH
.
cron에서 실행 ifconfig
하려면 명시적인 전체 경로(예:)로 변경하세요 ./sbin/ifconfig
ifconfig