両方の仮想マシンで、コマンドは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はすべてが正常であり、このVMに他の問題がないと言います。 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
ルートユーザーに対してクォータツールが有効になっても同じ問題が発生したため、まずクォータを無効にしてからquotaoff -a
問題なくコマンドを繰り返しました。後でクォータを変更することで問題がなくなりました。