スクリプトは私のユーザーとして実行されますが、rootとcronでは失敗します。

スクリプトは私のユーザーとして実行されますが、rootと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ではうまくいかずに失敗します。しかし、私はそれが何であるかわかりません。

関連情報