web-dev-qa-db-ja.com

rm:.filenameは削除されません:ディスククォータを超えました

これは、現在のディレクトリからls -ltを実行したときに取得する完全なファイル名です。

EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz

ファイル名も日付で構成されます。上記のファイルの日付は20120811です。

そのため、EXPORT_v1x0で始まり、日付が20120825未満のすべてのファイルを削除しようとしています。

コマンドラインから以下のスクリプトを使用してファイルを削除しています

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

しかし、上記のコマンドを使用してファイルを削除すると、常に以下の例外が発生します。

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

この例外の意味を誰かに教えてもらえますか?そして、この問題を克服する方法は?

SunOSを実行しています。

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

再度rmを使用できるように、クォータを元に戻すには、cat /dev/null > file(またはecho > file)のような操作を行う必要があります。

5
Paul Kehrer

クォータを下回るまで、見つけた最も小さなファイルを手動で削除します。その後、標準の方法で削除できます。

@VolodymyrSavchenkoの回答が却下された理由はわかりません。実際、それが私にとってもうまくいった唯一のトリックでした。

HPCで作業していますが、クォータが不足しています。

-ほとんどすべてのコマンドを試すのに時間がかかりました。

-rsyncリモートで--remove-source-filesを使用して機能していませんでした:

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ほとんどのファイルが機能していませんでした:

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

-やって

cat /dev/null path/file

どうやら機能するようですが、rm'ingは機能しません(まだクォータ超過エラーメッセージがあります)(理由はわかりません)。

それでも、「触れた」だけの小さなファイル(つまり、非常に小さなサイズの空のファイル)を削除すると機能し、クォータを下回り、通常どおりファイルを削除できるようになりました。

2
myradio

ファイルを削除する権限がないか、読み取り専用であると思います。 rm-fを試してください。クォータメッセージは、ディスクに書き込もうとしているものから送信されます。

0
ventsyv