脚本在我的用户下运行,但在 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

curl 使用我的 Tor 重放的 SOCKS 来查询 check.torproject.org,然后 grep 搜索它以查找 Congratulations 消息,如果找到则意味着 Tor 已启动。如果它返回空,则意味着我的 9050 端口上发生了非常奇怪的事情,或者很可能是 Tor 已关闭。

如果找到 Congratulations,则会再次使用curl 向 hc-ping.com URL 发送请求,该 URL 存储对我的 Tor 和互联网可用性的监控。

不管怎样,我把它保存在 .sh 上并 chmod +x 它。如果我在我的用户下运行这个文件,它就可以工作。但如果我用 sudo 运行它,我会收到一条消息./availability-tor.sh: 1: ./availability-tor.sh: [[: not found

我将其添加到在我的用户下执行的 crontab -e 中,但它失败了,因为没有请求发送到 hc-ping.com。

我的猜测是,我的 bashrc 中的一些差异使它可以工作,并且无论它是什么,它都不会在 sudo 或 cron 下使用并使其失败。但我不知道它可能是什么。

相关内容