ข้อผิดพลาดการทำให้แท็บเสร็จสมบูรณ์: ทุบตี: ไม่สามารถสร้างไฟล์ชั่วคราวสำหรับเอกสารที่นี่: ไม่มีพื้นที่เหลือบนอุปกรณ์


38

เมื่อใช้แถบแท็บฉันได้รับข้อผิดพลาดนี้:

bash: ไม่สามารถสร้างไฟล์ temp สำหรับ here-document: ไม่มีพื้นที่เหลือบนอุปกรณ์ "

ความคิดใด ๆ

ฉันทำการค้นคว้ามาแล้วหลายคนพูดถึงไฟล์ / 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
muru

คำตอบ:


18

ระบบไฟล์รูทของคุณเต็มและด้วยเหตุนี้ temp dir (/ tmp และ / var / tmp สำหรับเรื่องนั้น) ก็จะเต็มเช่นกัน สคริปต์และโปรแกรมจำนวนมากต้องการพื้นที่สำหรับการทำงานไฟล์แม้แต่ล็อคไฟล์ เมื่อ / tmp เป็นสิ่งไม่ดีที่ไม่สามารถเขียนได้เกิดขึ้น

คุณต้องหาวิธีเติมระบบไฟล์ให้เต็ม โดยทั่วไปสถานที่นี้จะเกิดขึ้นใน / var / log (ตรวจสอบว่าคุณหมุนเวียนไฟล์บันทึก) หรือ / tmp อาจเต็ม ยังมีอีกหลายวิธีที่ดิสก์สามารถเติมได้

du -hs /tmp /var/log

คุณอาจต้องการแบ่งพาร์ติชั่นใหม่เพื่อให้ / tmp เป็นพาร์ติชั่นของตัวเอง (นั่นเป็นวิธีที่โรงเรียนเก่าทำ แต่ถ้าคุณมีดิสก์เยอะพอใช้) หรือแมปลงในหน่วยความจำ (ซึ่งจะทำให้เร็วมาก ทำให้เกิดปัญหาการแลกเปลี่ยนหากคุณทำมากเกินไปไฟล์ชั่วคราว)


สวัสดีฉันดูคำสั่งทั้งสองที่คุณแนะนำและฉันจะบอกว่าทั้ง / tmp และ / var / log ค่อนข้างว่างเปล่า: 60K และ 49M ตามลำดับ
lucasrodesg

1
สวัสดีอีกครั้ง. ในที่สุดฉันก็ได้รับมัน ฉันไม่รู้ว่าทำไมฉันจึงวางเนื้อหาที่เป็นของตัวเองทั้งหมดภายใต้ / var มันทำงานได้อีกครั้ง!
lucasrodesg

16

คุณอาจสูญเสียการเข้าถึงการเขียนไปยัง/tmp/ไดเรกทอรี

ควรมีลักษณะเช่นนั้น:

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

คุณสามารถแก้ไขสิทธิ์เช่นนั้น:

chmod a+rwxt /tmp

สิ่งนี้ได้ผลสำหรับฉัน!
โจเซฟ Chambers

2
นั่นคือการใช้ grep ที่ไร้ประโยชน์ ลองls -ld /tmpแทน
CVN

คุณเพียงแค่หยุดอยู่ใกล้เต็มรูปแบบในการโจมตีเสียขวัญ ... มูลค่าการโหวตขึ้นสำหรับฉัน
sbeskur

10

ถ้าใครได้รับที่นี่กับข้อผิดพลาดนี้เมื่อดิสก์ไม่เต็มให้แน่ใจว่าได้ตรวจสอบไม่ได้เป็นเพียงแต่ยังdf df -iมีจำนวน inode คงที่ในระบบไฟล์และทุก ๆ ไฟล์ต้องการสิ่งใดสิ่งหนึ่ง หากคุณมีเพียงตันของไฟล์เล็ก ๆ dfมันง่ายมากสำหรับระบบแฟ้มของคุณมาเติมให้เต็มกับไฟล์ขนาดเล็กเหล่านี้ในขณะที่ยังคงมีความอุดมสมบูรณ์ของพื้นที่ที่เหลืออยู่บนไดรฟ์เมื่อคุณเรียกใช้


นี่คือปัญหาที่ฉันมี! ฉันพยายามหาสิ่งที่ถูกครอบครองอยู่ตลอดเวลา นั่นไม่ใช่ปัญหาเลย ฉันใช้ไอโหนดหมดแล้ว /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

สำหรับกรณีของฉันของข้อผิดพลาดเดียวกันนี้มันเป็นปัญหาของ Cagefs เนื่องจากเซิร์ฟเวอร์นี้อยู่ใน CloudLinux ซึ่งได้รับการจัดการด้วย cagefsctl --remount username


-2

นี่เป็นเพราะพื้นที่ว่างในดิสก์ไม่เพียงพอคุณต้องล้างไฟล์ขนาดใหญ่หรือล้างกระบวนการที่ใช้พื้นที่:

  1. df -h ดูพื้นที่ว่างในฮาร์ดดิสก์
  2. du -sh /* ดูว่าไดเรกทอรีใดใหญ่ที่สุดทีละขั้นตอนเพื่อค้นหาไฟล์ขนาดใหญ่
  3. du -h --max-depth=1 ค้นหาไฟล์ที่ใหญ่ที่สุด

ดูเหมือนว่าจะเพิ่งสำรอกคำตอบโดย Agile Bean ตั้งแต่เดือนมิถุนายน 2018
tripleee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.