centos crontab -e中的cronjob条目与/etc/crontab中的cronjob条目,哪一个更好?

ttisahbt  于 2022-11-07  发布在  其他
关注(0)|答案(2)|浏览(119)

当我把crontab条目放在crontab -e中时有什么不同(默认位置是:/var/spool/cron/username)和/etc/crontab中的crond守护进程?我的意思是,crond守护进程基本上会执行这两个cron作业。那么,为什么有两种不同的方式来调度cronjob呢?哪一种方式更可取?

mhd8tkvw

mhd8tkvw1#

不同 之 处 在于 crontab 命令 是 系统 提供 给 用户 操作 其 crontab 的 接口 。 /etc/crontab 文件 是 用于 实现 系统 范围 的 crontab 的 特殊 情况 文件 。 /var/spool/cron/crontabs/$USER ( 或者 不管 路径 是 什么 ) 是 实现 细节 。
如果 可以 使用 crontab 命令 调度 作业 , 则 应该 这样 做 。
手动 编辑 /etc/crontab 的 内容 ( a ) 需要 root 访问 权限 , ( b ) 更 容易 出错 , 这样 会 把 系统 搞 得 一团糟 。
如果 要 在 您 自己 的 用户 帐户 下 运行 作业 , 则 无需 使用 root 访问 权限 。
即使 作业 以 root 的 身份 运行 , 使用 从 root 帐户 调用 的 crontab 命令 可能 仍然 更 有 意义 。 ( 首先 , 它 应该 检测 文件 中 的 语法 错误 。 )
就 我 个人 而言 , 我 不 使用 crontab -e 。 相反 , 我 有 一 个 crontab 文件 , 我 把 它 保存 在 源 代码 控制 系统 中 , 我 使用 crontab filename 形式 的 命令 来 安装 它 。 这样 , 如果 我 搞 砸 了 什么 , 很 容易 恢复 到 早期 版本 。

polhcujo

polhcujo2#

差异:

$路径

(On我的Red Hat 7系统)

  • 通过/etc/crontab运行:$路径是/sbin:/bin:/usr/sbin:/usr/bin
  • 通过crontab -e运行:$路径是/usr/bin:/bin
    访问权限
  • 只有root用户可以访问/etc/crontab
  • 用户可以访问自己的/var/spool/cron/用户名
    格式
  • /etc/crontab需要一个额外的参数,位于命令之前,用于指定用户。
  • crontab -e(/var/spool/cron/user-name)显然不需要crontab条目中的用户名。

相关问题