rm: .filename kaldırılmadı: Disk kotası aşıldı


3

Bu yaptığımda aldığım tam dosya adı ls -lt geçerli dizimden.

EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz

Dosya adları ayrıca tarihlerden de oluşur. Yukarıdaki dosya tarihinde 20120811.

Bu yüzden başlayan tüm dosyaları silmeye çalışıyorum EXPORT_v1x0 ve kimin tarihi daha az 20120825.

Dosyaları silmek için komut satırından aşağıdaki betiği kullanıyorum

find . -name "EXPORT_v1x0*" | awk -F'_' '$3<20120825' | xargs rm

Ancak, dosyaları silmek için yukarıdaki komutu ne zaman kullansam, daima bunu aşağıdaki istisna olarak alıyorum.

rm: ./EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz not removed: Disc quota exceeded

Biri bana bu istisnanın ne anlama geldiğini söyleyebilir mi? Ve bu sorunun üstesinden nasıl gelinir?

Ben çalıştırıyorum SunOS.

bash-3.00$ uname -a
SunOS lvsaishdc3in0001 5.10 Generic_142901-02 i86pc i386 i86pc

Belki yardımcı olur kesmek önce dosya echo -n > EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz.
Anton Kovalenko

SunOS'un hangi sürümünü kullanıyorsunuz? Çıktı nedir quota -v?
Keith Thompson

Sorunun yanı sıra sürüm adı da güncellendi. Ben çalıştırıyorum 5.10 Sürüm adını doğru yorumluyorsam. Ve denedim quota -v ama diyor ki quota: command not found. Niye ya?

@AntonKovalenko, Dosyaları nasıl kısaltmam gerektiğini söyleyebilir misiniz? Bana söylediğin gibi denedim. echo -n > EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz. Yine aynı anladım Disc Quota Exception as well

1
Bütün dosyalar Dosyaları açmadan önce biraz daha fazla alana ihtiyaç duyduğunuz bir ZFS 'özelliği'.
Petesh

Yanıtlar:


4

Gibi bir şey yapmanız gerekecek cat /dev/null > file (veya echo > file kotayı geri almak için tekrar rm kullanabilirsiniz.


Öneri için teşekkürler Paul. Bunu eklemem gerekirse /dev/null Sorumumda belirttiğim gibi benim emrimde, o zaman bu istisnayı tekrar alamayacağım için nasıl değiştirmeliyim? Düşüncesi olan var mı?

Denemek gerekir tek kotaya girmek için dosya (tercihen büyük bir tane), sonra find ve rm tekrar çalışmaya başlayabilir. Bilmiyorum, belki bir dosya silme işlemi ilk önce dizin için bir blok ayırmak ister (evet, garip).
Anton Kovalenko

Anton haklıdır: Bir dosyayı kesmek en iyisidir, sonra hepsini kontrol etmek için tam komutu çalıştırın (kota altına girdiğinizde rm çalışmalıdır). İlk önce -size bayrağını kullanarak bulgunuzu çalıştırabilir ve bunu kesilmeye adayları belirlemek için kullanabilirsiniz.

3
Bana söylediğin gibi dosyaları kesmeyi denedim. echo -n > EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz. Yine aynı anladım Disc Quota Exception as well.

2

Kotanın altına girinceye kadar bulduğunuz en küçük dosyaları elle silin, ardından standart yöntemlerle silebilirsiniz.

Neden @Volodymyr Savchenko'nun cevabını reddetti bilmiyorum. Aslında bu benim için de işe yarayan tek numaraydı.

Bir HPC'de çalışıyorum ve kotanız bitti.

- Hemen hemen her şeyi denemek çok uzun zaman alıyordu.

- rsync uzaktan - remove-source-files ile çalışmıyordu:

rsync -avz --remove-source-files -e "ssh -p ####" usr@host:path/file.dat ./
receiving file list ... done
rsync: sender failed to remove file.dat: Disk quota exceeded (122)

-rm dosyaların çoğu çalışmıyordu:

[usr@server ~]$ rm  path/file.dat
rm: cannot remove 'path/file.dat': Disk quota exceeded

-doing

cat /dev/null path/file

görünüşte işe yarayacaktı, ama (nedenini kotaya koyduğum hatayı aştığım) (nedenini anlayamadığımı) söyleyemem.

Bununla birlikte, sadece 'dokunduğum' teneke dosyaları silmek (yani, teneke teneke boyutunda boş dosyalar) çalışmak işe yarayacak ve bana kotanın altına girme ve dosyaları normal şekilde silme şansı verdi.


0

Sanırım dosyayı kaldırma izniniz yok ya da salt okunur. Rm -f'yi dene. Kota mesajı, diske yazmaya çalışan bir şeyden gelir.


Syscall rm'nin kullandığı diski aslında unlink çağırdığınızda bir dizine yazmanız gerektiği anlamında kullanabilirsiniz. Kota aşımı yazma erişiminin olmadığı anlamına gelir.
jim mcnamara

-1

Ben de aynı problemi yaşadım ve listeledikleriniz genellikle önerilen çözümlerin hiçbiri işe yaramadı.

Ancak en küçük dosyaları silmenin mümkün olduğunu anladım & lt; 1kb. Sadece büyük olanları rm ile temizleyebilecek kadar küçük dosyaları bulmam gerekti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.