我是 Ubuntu 新手...我想知道如何访问 /var/spool/cron/crontab 目录...我只想将我的 cronjob 复制到 /etc/cron.daily 。
答案1
无论您进行什么系统备份都应该包括 /var/spool 和 /etc 目录,因此您不需要执行任何特殊操作来备份您的 cron 表。
每个用户的 cron 表位于 中/var/spool/cron/crontabs/
。您不能直接编辑这些文件,而是使用crontab -e
来编辑它们(或crontab -l
查看它们)。
系统范围的 cron 表被分成多个文件,位于/etc/cron.d/
/etc/cron.daily/
诸如、等附加目录/etc/cron.hourly/
不保存 cron 表,而是保存系统 cron 表以该频率调用的脚本。它们旨在允许程序包在需要定期运行任务时将任务放入这些目录中。
如果您想更改 cron 运行的用户,最安全的方法是作为crontab -e
第一个用户,从他们的 cron 表中删除该行,以第二个用户身份登录,crontab -e
然后将该行添加到该用户的 cron 表中。
如果您希望在系统 cron 表中放置一个条目,您可以编写一个 cron 表并将其放置在 中/etc/cron.d/
。但除非您要在整个系统范围内安装自己的软件,否则坚持使用每个用户的 cron 表通常更有意义。
答案2
尽管/var/spool/cron/crontabs/
没有超级用户权限就无法访问,但是您仍然可以使用以下命令访问您自己的 crontab crontab -l
:
$ whoami
steeldriver
$ cat /var/spool/cron/crontabs/steeldriver
cat: /var/spool/cron/crontabs/steeldriver: Permission denied
但
$ crontab -l | tail -1
* * * * * /usr/bin/printenv > $HOME/cronenv
这是通过魔法实现的粘性位:
$ ls -ld /var/spool/cron/crontabs/
drwx-wx--T 2 root crontab 4096 Jun 7 19:34 /var/spool/cron/crontabs/