当我把crontab条目放在crontab -e中时有什么不同(默认位置是:/var/spool/cron/username)和/etc/crontab中的crond守护进程?我的意思是,crond守护进程基本上会执行这两个cron作业。那么,为什么有两种不同的方式来调度cronjob呢?哪一种方式更可取?
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 形式 的 命令 来 安装 它 。 这样 , 如果 我 搞 砸 了 什么 , 很 容易 恢复 到 早期 版本 。
crontab
/etc/crontab
/var/spool/cron/crontabs/$USER
root
crontab -e
crontab filename
polhcujo2#
差异:
$路径
(On我的Red Hat 7系统)
2条答案
按热度按时间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
形式 的 命令 来 安装 它 。 这样 , 如果 我 搞 砸 了 什么 , 很 容易 恢复 到 早期 版本 。polhcujo2#
差异:
$路径
(On我的Red Hat 7系统)
访问权限
格式