crontab -e 和 nano /etc/crontab 有什么区别?

crontab -e 和 nano /etc/crontab 有什么区别?

crontab -e和有什么区别nano /etc/crontab?它们指向同一个东西吗?

答案1

crontab -e 命令将编辑当前用户的 crontab。这意味着您不需要在 crontab 行中包含用户名。每个用户的 crontab 都存储在 中/var/spool/cron/crontabs,以用户名命名。

用户特定的 crontab 的格式是:

# m h  dom mon dow  command
*   *   *   *   *   some_command

crontab -e命令将使用用户的 $EDITOR 环境变量中设置的编辑器,该变量控制各种任务的默认文本编辑器。如果第一次使用该crontab命令时未设置,系统将提示您从可用编辑器中进行选择,nano这是此列表中的选项之一。

编辑/etc/crontab要求您在行的时间设置部分之后包含运行该命令的用户名。

/etc/crontab 的格式为:

# m h dom mon dow user      command
*   *  *   *   *  someuser  some_command

答案2

传统的系统 cron 列表位于 /etc/crontab

用户 crontabs 通常位于 /var/spool/cron/crontabs/$USER。

执行“crontab -e”会自动调用用户编辑器,并在您尝试退出时执行基本的有效性/语法检查。

任何使用用户 crontab 安排的作业都在用户登录 ID 下运行,而系统 /etc/crontab 有能力在 /etc/passwd 中列出的任何系统用户 ID 下安排作业。

如果你想玩火,你可以直接编辑(vi / vim / nano / mcedit / ...)你的用户 crontab,绕过任何语法检查,例如使用“nano / var / spool / cron / crontabs / your-login-id” [或者如果你是root,可以使用任何用户id,或者使用sudo]

要获取更多详细信息,您可能需要仔细阅读 cron 手册页(“man cron”)

相关内容