自升级以来,我的用户的crontab已被清除。这不是今年第一次发生,每次都很难恢复。
我希望能够为用户备份crontab,但是为此,我需要知道它的存储位置。
cron软件包的副作用,但我同意-这不是应该发生的事情。
自升级以来,我的用户的crontab已被清除。这不是今年第一次发生,每次都很难恢复。
我希望能够为用户备份crontab,但是为此,我需要知道它的存储位置。
cron软件包的副作用,但我同意-这不是应该发生的事情。
Answers:
实际上,不建议手动处理这些文件。每个crontab手册页:
每个用户都可以拥有自己的crontab,尽管
这些文件是中的文件/var/spool/cron/crontabs,但不能
直接对其进行编辑。
下面的文件/var/spool被认为是临时文件/正在工作,这就是为什么它们可能在升级过程中被删除的原因,尽管仔细查看cron软件包的升级脚本可能会对此有所了解。
无论如何,备份cron条目或将其保存在主目录中的文件中始终是一个好习惯。
我假设您正在使用crontab -e中动态创建crontab文件。如果是这样,您可以通过执行操作获得crontab文件的“副本” crontab -l。通过管道将其传输到文件以获取“备份”:
crontab -l > my-crontab
然后,您可以编辑该my-crontab文件以添加或修改条目,然后将其提供给crontab来“安装”它:
crontab my-crontab
语法与相同crontab -e。
crontab -l比执行此操作容易,/var/spool/cron/crontabs/$USER主要是因为对该文件具有奇异的权限。
iptables-save的cron。尼斯...
/var/spool/cron/crontabs当您要管理或检查来自多个用户的crontab时,快速浏览很方便。
sudo grep -rHin "$string" /etc/cron*(其中字符串可能会像一个命令docker,lftp,iptables,等,这是检查用户的crontab也是一个好主意,那是什么导致我这个Q&A。sudo grep -rHin "$string" /etc/cron* /var/spool/cron*
它存储/var/spool/cron/crontabs在用户名下的文件夹中。
我终于找到了为什么我的crontabs和Postfix安装在启动后仍然中断的原因。这是一个非常愚蠢的原因,但是...
我已/var/spool安装为tmpfsRAM驱动器。
听起来很蠢,但是我遵循了一项旧的SSD调整措施,以延长SSD的使用寿命。这样做,我盲目地安装/tmp,/var/tmp并/var/spool为tmpfs没有反响的思考。我觉得/var/spool像/proc/或者/run/,它只是在会议期间非常有用。我显然错了。
/tmp作为tmpfs 挂载应该是安全的,但不是/var/tmp或/var/spool。 /tmp用于临时存储,重新启动后可能会丢失。 /var/tmp用于临时存储,该存储将在重启后保留。正如您所发现的,/var/spool它用于处理数据,在重新启动后这些数据也将保留。
要列出系统中所有用户的所有cron作业:
for user in $(cut -f1 -d: /etc/passwd)
do
echo $user
crontab -u $user -l
done
您的问题的另一种选择是将它们放置在cron.d文件夹中,并为每个cron指定适当的用户,例如:
00 01 * * * user /home/user/user-script.sh
crontab -u运行,因为它是从当前系统上运行的。
while read user循环,以处理用户名包含空格的情况,但这显然不是问题。用户名字符集非常有限。