![如何编辑只有远程硬盘且没有 chroot 的 root 的 crontab?](https://linux22.com/image/172741/%E5%A6%82%E4%BD%95%E7%BC%96%E8%BE%91%E5%8F%AA%E6%9C%89%E8%BF%9C%E7%A8%8B%E7%A1%AC%E7%9B%98%E4%B8%94%E6%B2%A1%E6%9C%89%20chroot%20%E7%9A%84%20root%20%E7%9A%84%20crontab%EF%BC%9F.png)
案例场景:
- 我已收到硬盘一个遥控器的Linux(比如基于 Debian 的)计算机。
- 远程硬件(例如覆盆子,所以ARM)与我的(比如PC,所以AMD64)不兼容,所以
chroot
不可能。 - 我需要添加CRON 任务(说出一些
adduser newuser
命令)具有远程系统的管理员权限。 - 我们可以假设分区格式与 *NIX 兼容(比如
Ext3
或Ext4
),所以我可以安装,读取并编辑根分区(例如Raspbian
,用于 Raspberry 的常见类似 Ubuntu 的操作系统)。
编辑硬盘(例如 Micro SD 卡,只要示例是基于 RaspBerry 的)后,我将用它启动远程系统,并且我的 CRON 任务必须执行。
这可以做到吗?
答案1
对的,这是可能的。系统范围的crontab
文件通常位于 ,/etc/crontab
并覆盖在/etc/cron.d
,因此假设您已将远程计算机磁盘的根分区安装在/mnt
,您应该能够找到它们/mnt/etc/crontab
并使用您选择的文本编辑器进行修改。
每个用户的crontab
文件通常位于/var/spool/cron/crontabs
Debian 及其衍生版本中,您应该能够以相同的方式编辑它们(尽管 crontab 的联机帮助页不鼓励这样做)。
答案2
Crontab 是存储在标准位置的简单文本文件,然后由cron
.该crontab
程序允许您编辑这些文件,但在保存之前检查格式是否正确。我想它也向cron
守护进程发出信号来读取新版本。
所以这个机制主要是为了在你犯错误时不让你陷入困境。 (它也是 setgid,因此它可以编辑标准目录中的 crontab。)但是,如果您知道格式正确,则没有什么可以阻止您直接编辑 crontab,尤其是在没有 cron 使用它们的已安装驱动器上。
用户 crontab 存储在 中/var/spool/cron/crontabs/
,文件名与帐户名对应。但是您可能想使用 AdminBee 提到的系统 crontab,即/etc/crontab
或 (以保持组织有序)内部/etc/crontab.d/
。在 Debian 上,还有/etc/cron.monthly/
、/etc/cron.weekly/
、/etc/cron.daily/
、 和/etc/cron.hourly/
,您可以在其中放置可执行文件(主要用于软件包,但自己使用它们没有任何问题)。
注意我使用我的 Debian 机器和联机帮助页作为参考,请事先检查您的目标发行版的这些路径。