스크립트가 내 사용자로 실행되지만 루트 및 cron에서는 실패합니다.

스크립트가 내 사용자로 실행되지만 루트 및 cron에서는 실패합니다.

인터넷 검색과 질문을 사용하여 이 bash 스크립트를 만들었습니다.

if [[ $(curl --socks5 localhost:9050 --socks5-hostname localhost:9050 -s https://check.torproject.org/ | cat | grep -m 1 Congratulations | xargs) ]]; then
    curl -s https://hc-ping.com/abcdefgh &> /dev/null
 fi

컬은 내 Tor 재생의 SOCKS를 사용하여 check.torproject.org를 쿼리한 다음 이를 grep하여 축하 메시지를 찾습니다. 이 메시지가 발견되면 Tor가 시작되었음을 의미합니다. 빈 값이 반환되면 내 9050 포트에서 매우 이상한 일이 발생하고 있거나 Tor가 다운되었을 가능성이 높다는 의미입니다.

축하가 발견되면 컬을 다시 사용하여 내 Tor 및 인터넷 가용성에 대한 모니터링을 저장하는 hc-ping.com URL에 요청을 보냅니다.

어쨌든 .sh에 저장하고 chmod +xed했습니다. 내 사용자로 이 파일을 실행하면 작동합니다. 하지만 sudo로 실행하면 메시지가 나타납니다 ./availability-tor.sh: 1: ./availability-tor.sh: [[: not found.

내 사용자로 실행된 crontab -e에 이것을 추가했지만 hc-ping.com으로 요청이 전송되지 않아 실패했습니다.

내 생각 엔 bashrc에 작동하게 만드는 약간의 차이가 있고 그것이 무엇이든 sudo 또는 cron에서는 작동하지 않고 실패하게 만듭니다. 그러나 나는 그것이 무엇인지 모른다.

관련 정보