cron是否会修改执行环境并使tor servce不更改退出节点?

cron是否会修改执行环境并使tor servce不更改退出节点?

根据https://unix.stackexchange.com/a/478636/674、cron修改执行环境来执行作业。

  1. 当我sudo service tor reload直接在bash中运行两次时,它总是显示两个不同的IP地址

    $ sudo service tor reload; torsocks  curl ipinfo.io/ip; sudo service tor reload; torsocks  curl ipinfo.io/ip
    12.345.678.901
    987.654.321.00
    

    sudo service tor reload这很可能会改变退出节点,从而改变公共IP地址,这是否正确?

  2. 但是当我在 中创建一个 cron 作业时/etc/cron.d/myjob

    * * * * * tim (sudo service tor reload; torsocks  curl ipinfo.io/ip; sudo service tor reload; torsocks  curl ipinfo.io/ip) > /tmp/cron.log
    

    每次我检查时/tmp/cron.log,它总是显示两个相同的IP地址,尽管IP地址因作业而异(当下一个计划作业覆盖日志时,它将显示两个相同的IP地址与覆盖前的两个不同)。当我sleep 20在两次重新加载之间插入时也是如此:

    * * * * * tim (sudo service tor reload; torsocks  curl ipinfo.io/ip; sleep 20; sudo service tor reload; torsocks  curl ipinfo.io/ip) > /tmp/cron.log
    

    作为一个cron作业,为什么sudo service tor reload无法更改IP地址?我怎样才能让它发挥作用?

谢谢。

答案1

问题原因是:作业行中,命令使用的是sudo,而用户字段是非root用户tim。我不提供tim所要求的密码sudo

我仍在尝试了解编写 cron 作业的用户和命令字段的最佳实践。“/etc/cron.d/” 文件中的 cron 任务是否不应包含“sudo”?

相关内容