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”)