linux "sudo crontab -e" 和 "crontab -e" 之间的区别

linux difference between "sudo crontab -e" and just "crontab -e"

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

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

谢谢!

Is there a difference between the 2?

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

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

Where should I put my cron command, should it be in sudo or without the sudo?

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

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

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

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

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

谢谢!