【问题标题】:linux difference between "sudo crontab -e" and just "crontab -e"“sudo crontab -e”和“crontab -e”之间的 linux 区别
【发布时间】:2017-08-31 10:33:17
【问题描述】:

我注意到,当我输入 sudo crontab -e 时,我看不到我的 cron 命令,但是当我只输入 crontab -e 时,我的命令就出现了。

两者有区别吗?如果有,我应该把我的 cron 命令放在哪里,应该在 sudo 中还是没有 sudo?

谢谢!

【问题讨论】:

标签: linux ubuntu cron cron-task


【解决方案1】:

两者有区别吗?

是的,确实它们是不同的。 不同之处在于sudo crontab -e 的命令是使用root 用户凭据安排的。这样sudo的cron表中的命令就以root用户的身份执行了。

但是对于crontab -e,命令是由登录的普通用户安排的。

我应该把我的 cron 命令放在哪里,应该放在 sudo 中还是没有 sudo?

嗯,这个问题的答案取决于您要运行的命令类型。
如果命令需要sudo 访问权限,则应使用sudo crontab -e
否则,如果 cron 命令不需要任何特殊权限,则使用 crontab -e

示例
如果应在特定时间禁用或启用以太网网络接口eth0,那么您将使用命令
ifconfig eth0 upifconfig eth0 down
由于上述命令需要特殊权限(sudo),这些命令应该添加到sudo'scron tab

任何其他需要最小权限或不需要权限的命令,例如从tmp 目录中删除文件,例如$ rm /tmp/somefile,使用普通用户的 crontab。

【讨论】:

  • @PinoyStackOverflower 欢迎。很高兴我能回答:)
  • @Santhosh 你能告诉我sudo crontab -e crontab -e 的路径是什么,因为我需要通过bash 脚本以编程方式添加一个玉米表达式。
  • @Koder101 /usr/bin/crontab
  • 谢谢,我在 Ubuntu 中为sudo 用户找到了/var/spool/cron/crontabs/ 的路径
  • 这是一个很好的解释。谢谢@Santosh。
【解决方案2】:

问题的主要部分是照顾您想要完成工作的用户。否则它不会触发你的 cron 作业。并确保将命令的输出写入任何文件。它将帮助您调试最可能与您的相对路径有关的问题。 这就是我遇到的困难。您可以按照以下步骤继续前进:

  1. 确定您想使用的用户名。使用 whoami 命令。
  2. 转到您选择的用户模式并输入 crontab -e
  3. 并附加行 cron-schedule your-command >> output_filename.cron 2>&1 >
  4. 就是这样。

谢谢!

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 2018-02-15
    • 2014-03-04
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多