自升级以来,我的用户的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
安装为tmpfs
RAM驱动器。
听起来很蠢,但是我遵循了一项旧的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
循环,以处理用户名包含空格的情况,但这显然不是问题。用户名字符集非常有限。