![cron에서 PHP를 사용하여 bash 스크립트 실행](https://linux55.com/image/106338/cron%EC%97%90%EC%84%9C%20PHP%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EC%8B%A4%ED%96%89.png)
PHP가 실행할 컬 명령이 포함된 스크립트가 있습니다.
/root/notify-down-script.sh
#!/bin/bash
echo "test" > file
curl -d "credentials=foobar" -d "title=$server down" https://notifi.it/api
명령줄에서 실행할 수 있습니다.
/usr/bin/php -r "echo shell_exec(\"/root/notify-down-script.sh test\");"
좋은 결과. cron에 추가하면:
* * * * * /usr/bin/php -d safe_mode=Off -r "echo shell_exec(\"/root/notify-down-script.sh test\");"
이것은 컬을 호출하지 않습니다( 호출되지 않습니다 echo
). 이것은 모두 루트로 실행됩니다. 스크립트(>/tmp/curl.log)에서 컬의 출력을 캡처하려고 하는데 아무 일도 일어나지 않습니다. 나는 전체 컬 경로를 시도해 보았습니다. 나는 완전히 길을 잃었습니다. 내가 뭘 잘못했나요?
답변1
다음과 같이 스크립트에서 컬 호출에 전체 경로를 추가해 보세요.
/usr/bin/curl -d"credentials=foobar" -d"title=$서버 다운"https://notifi.it/api