crontab 命令无法创建临时目录

crontab 命令无法创建临时目录

在我的两个虚拟机上,该crontab -e命令无法在其中创建目录,/tmp但它可以使用mkdir

/tmp/crontab.oxyaBy: Input/output error
Creation of temporary crontab file failed - aborting

跟踪输出:

root@vm:~# strace crontab -e
mkdir("/tmp/crontab.1SuJe9", 0700)      = -1 EIO (Input/output error)

root@vm:~# strace mkdir /tmp/crontab.1SuJe9 -m 700
mkdir("/tmp/crontab.1SuJe9", 0700)      = 0

两个虚拟机都运行 Ubuntu 16.04.6 LTS (4.4.0-173-generic x86_64)

每次都会重现此问题,并且重启后问题仍然存在,fsck 表示一切正常,此虚拟机上没有其他问题。我已经尝试重新安装 cron 包,但没有任何变化。

有任何想法吗?谢谢你!

编辑: dmesg节目

EXT4-fs (dm-0): Quota write (off=4080, len=40) cancelled because not block aligned
Quota error (device dm-0): v1_commit_dqblk: dquota write failed

crontab命令适用,quotaoff但我仍然很想知道为什么crontab并且mkdir表现不同......

答案1

这是一个文件系统问题。并且创建目录与创建文件不同。

检查呼叫用户的配额设置。

此外,确保您可以由同一用户并使用 echo 或 cat 等创建文件,并且您可以在文件中放置一些内容,然后从该点跟踪问题。

更新:显然这是一个与配额相关的问题,因为您已经更新了您的问题。事实上,从配额的角度来看,目录占用零字节,因此即使达到配额,您也可以创建任意数量的目录。但为了让 cron 工作,必须创建一个非零文件,如果达到最大配额,该文件肯定会被阻止。

答案2

由于为 root 用户启用了配额工具,我遇到了完全相同的问题,因此我首先使用所有禁用配额quotaoff -a,然后重复该命令,没有出现问题。后来,我修复了配额,所以对我来说不再有问题......

相关内容