linux“sudo crontab -e”和“crontab -e”之间的区别

时间:2017-04-05 17:07:14

标签: linux ubuntu cron cron-task

我注意到当我输入df[-(1:2)] <- setNames(df$group, df$index)[as.matrix(df[-(1:2)])] df # index group S1 S2 S3 S4 #1 1 A A A B B #2 2 A A B A B #3 3 A A B A B #4 4 B B B A A #5 5 B B B C C #6 6 B B B C D #7 7 B D D C C #8 8 C D C C D #9 9 C C C D D #10 10 C C C D D #11 11 D C C C D #12 12 D C C C D 时,我没有看到我的cron命令,但是当我只做sudo crontab -e时,我有命令。

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

谢谢!

2 个答案:

答案 0 :(得分:18)

  

2?

之间有区别吗?

是的,确实他们是不同的。 不同之处在于,使用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's cron选项卡

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

答案 1 :(得分:0)

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

  1. 标识您要使用的用户名。使用 whoami 命令。
  2. 转到您选择的用户模式,然后输入 crontab -e
  3. 然后追加行< cron调度您的命令>> output_filename.cron 2>&1 >
  4. 就是这样。

谢谢!