タブ補完エラー:bash:ヒアドキュメント用の一時ファイルを作成できません:デバイスにスペースが残っていません


40

タブバーを使用すると、次のエラーが表示されます。

bash:ヒアドキュメント用の一時ファイルを作成できません:デバイスにスペースが残っていません」

何か案は?

私はいくつかの調査を行ってきましたが、多くの人が/ tmpファイルについて話します。実行するdf -hと次のようになります:

Filesystem      Size  Used Avail Use% Mounted on 
/dev/sda2       9.1G  8.7G     0 100% /
udev             10M     0   10M   0% /dev
tmpfs           618M  8.8M  609M   2% /run
tmpfs           1.6G     0  1.6G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.6G     0  1.6G   0% /sys/fs/cgroup
/dev/sda1       511M  132K  511M   1% /boot/efi
/dev/sda4       1.8T  623G  1.1T  37% /home
tmpfs           309M  4.0K  309M   1% /run/user/116
tmpfs           309M     0  309M   0% /run/user/1000

/ dev / dataディレクトリが爆発しようとしているように見えますが、もし私が転倒したら:

$ du -sh /dev/sda2
0   /dev/sda2

空のようです。

私はDebianに慣れていないので、どうすればいいかわかりません。私は通常、sshを介してこのコンピューターにアクセスしていました。この問題に加えて、このコンピューターには他にもいくつか関係があります。たとえば、GUIを使用してユーザーを入力するたびに(ルートが機能する場合)、それらは関連している可能性があります。

Xsession:警告:/ tmpに書き込めません:Xsessionがエラーで終了することがあります


2
あなたのような何かを実行したいdu -hxd1 /、ではありませんdu /dev/sda2/dev/sda2実際にはディスク上に存在しません。
ムル

回答:


19

ルートファイルシステムがいっぱいであるため、一時ディレクトリ(/ tmp、および/ var / tmp)もいっぱいです。多くのスクリプトおよびプログラムでは、作業ファイル、さらにはファイルをロックするためのスペースが必要です。/ tmpが書き込み不可の場合、悪いことが起こります。

ファイルシステムをどのように満たしたかを調べる必要があります。通常、これが発生する場所は/ var / logです(ログファイルを循環していることを確認してください)。または、/ tmpがいっぱいの可能性があります。ただし、ディスクがいっぱいになる方法は他にもたくさんあります。

du -hs /tmp /var/log

パーティションを再分割して/ tmpに独自のパーティションを与える(古い方法ですが、ディスクが十分にある場合は問題ありません)か、メモリにマップする(非常に高速になりますが、一時ファイルを無理にすると、スワップの問題が発生します)。


こんにちは、私はあなたが提案する両方のコマンドを見て、/ tmpと/ var / logの両方が非常に空であると言います:それぞれ60Kと49M。
-lucasrodesg

1
また会ったね。やっと手に入れました。/ cloudの下にすべてのowncloudコンテンツを配置した理由がわかりません。再び機能します!
-lucasrodesg

16

また、/tmp/ディレクトリへの書き込みアクセスを失った可能性があります。

次のようになります。

ls -l / |grep tmp
drwxrwxrwt   7 root root  4096 Nov  7 17:17 tmp

次のようなアクセス許可を修正できます。

chmod a+rwxt /tmp

これは私のために働いた!
ジョセフチェンバース

3
これはgrepの無駄な使用です。ls -ld /tmp代わりに試してください。
CVn

あなただけのパニック発作でフル近くを停止...価値が私のために投票アップ
sbeskur

10

ディスクがいっぱいになっていないときにこのエラーが発生した場合は、必ずだけでdfなくを確認してくださいdf -i。ファイルシステムには一定数のiノードがあり、すべてのファイルにiノードが必要です。たくさんの小さなファイルがある場合、実行時にドライブに十分なスペースが残っている間に、ファイルシステムがこれらの小さなファイルでいっぱいになるのは非常に簡単ですdf


これが私が抱えていた問題でした!私はスペースを占有しているものを見つけようとし続けました。それはまったく問題ではありませんでした。iノードを完全に使い果たしました。/dev/root 4980000 4980000 0 100% /たぶん、システムは適切なエラーメッセージで応答すべきでしょうか?
ˆᵛˆ

3

エラーが発生していました

[  672.995482] EXT4-fs (sda2): Remounting filesystem read-only
[  672.999802] EXT4-fs error (device sda2): ext4_journal_check_start:60: Detected aborted journal

これを確認できましたが、

mount | grep -i sda2
/dev/sda2 on / type ext4 (ro,relatime,errors=remount-ro,data=ordered)

2

いっぱいになっているフォルダーを見つける最も速い方法は、ルートフォルダーからレベルでフォルダーファイルサイズを絞り込むことです。ルートフォルダーから始めるには:

sudo du -h --max-depth=1 /

次に-深さ、つまり以下のレベルを増やします:

sudo du -h --max-depth=2 /

または-より高速-どのフォルダがディスク領域を最も食い尽くしているかを確認し、このフォルダで同じことを行います:

sudo du -h --max-depth=1 /home/<user>/<overfull-folder>

見つかったら、削除してください:

rm -rf <path to overfull-folder>

1
出力ファイルが多い場合は、サイズで並べ替えると便利ですsudo du -h --max-depth=1 / | sort -h(下部のsort -hr大きなファイルまたは上部の大きなファイル)
wranvaud

0

この同じエラーの場合、このサーバーはCloudLinux上にあったため、cagefsの問題でした。 cagefsctl --remount username


-2

これは、ディスクスペースが十分でないため、大きなファイルをクリーンアップするか、スペースを占有するプロセスをクリーンアップする必要があるためです。

  1. df -h ハードディスクの空き容量を表示する
  2. du -sh /* どのディレクトリが最大かを表示し、段階的に大きなファイルを見つけます
  3. du -h --max-depth=1 最大のファイルを見つける

これは、2018
。– tripleee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.