Làm cách nào để xóa tệp khi vượt quá hạn ngạch mà không có quyền root và cắt ngắn, dd, mv, cp và rm không thành công?


2

Tôi đang làm việc trên một hệ thống tệp mà tôi không có quyền root và tất cả các điều trên đã không cho phép tôi xóa một tệp có cùng lỗi:

$ >file1
$ -bash: file1: Disk quota exceeded

$ dd count=1 if=/dev/random of=file1
$ dd: opening `file1': Disk quota exceeded

$ rm file1
$ rm: cannot remove 'file1': Disk quota exceeded

$ cat /dev/null > file1
$ -bash: file1: Disk quota exceeded

Cũng đã thử điều này trên một tập tin:

$ mv file1 f
$ mv: cannot move `file1` to `f`: Disk quota exceeded

chỉnh sửa cũng đã thử:

$ cp /dev/null file1
$ cp: cannot create regular file 'file1': Disk quota exceeded

không có kết quả (đã nhận được thông báo lỗi tương tự)

Có rất nhiều tệp khác tôi chỉ cấp cho tôi một quyền bị từ chối nhưng tôi nghĩ đối với một số trong số đó là vì tôi không có quyền root. Dù sao, có rất nhiều tệp mà tôi có quyền ghi nên tôi thực sự chỉ cần một cách để buộc các tệp đó bị xóa. Có cách giải quyết nào tôi có thể sử dụng không?

Đầu ra của df -s cho hệ thống tập tin này:

Filesystem            Size  Used Avail Use% Mounted on
zfs1.local:/volatile  699G  699G     0 100% /nfs/volatile

Nó thậm chí sẽ không cho phép bạn mở tệp vì vượt quá dung lượng đĩa? Ồ Trông giống như một hệ thống tập tin bị hỏng. Từ những gì tôi có thể nói, toàn bộ mount của bạn về cơ bản chỉ đọc được. Bạn sẽ phải yêu cầu quản trị viên hệ thống có liên quan xóa ít nhất một tệp lớn cho bạn hoặc tạm thời giảm hạn ngạch của bạn.
allquixotic

@allquixotic Đó chính xác là những gì tôi sợ: / Nhưng tôi nghĩ bạn đã đúng
cuối

Bạn có thể đổi tên ( mv) bất kỳ tập tin? Nếu vậy, hãy thử đổi tên một loạt các tệp thành tên một ký tự. Điều đó có thể giải phóng đủ không gian trong các khối siêu dữ liệu để cho bạn rmmột tệp. Nếu bạn có đủ tên tệp dài, bạn sẽ có thể giải phóng một kilobyte trở lên. Không chắc chắn bạn cần bao nhiêu miễn phí để có thể cắt bớt hoặc xóa một tập tin, nhưng nó sẽ đưa bạn đến một nơi nào đó.
allquixotic

Tôi đã thử điều đó trong tuyệt vọng vài giờ trước khi nghĩ rằng tôi thông minh nhưng thật đáng buồn là nó cũng thất bại với cùng một lỗi.
cuối

Nhân tiện, hệ thống tập tin này là gì? Bạn có biết? Nó có thể là một lỗi trong chính hệ thống tập tin mà nó phải sử dụng không gian để làm bất cứ điều gì. Câu trả lời mà Cyrus đã đăng THỰC SỰ đáng lẽ phải có hiệu quả, vì ZFS được sao chép trên ghi và thậm chí ZFS cho phép nó hoạt động.
allquixotic

Câu trả lời:


1

Trong trường hợp của tôi, không có điều nào ở trên hoạt động khi hạn ngạch đã đầy đủ 100%. May mắn là / tmp không đầy đủ nên tôi đã làm:

rsync --remove-source-files -azv file1 /tmp

và nó đã giải quyết vấn đề.


0

Tôi đã phục hồi hệ thống bằng lệnh 'lau'. Thực hiện xóa trên một số tệp lớn và sau đó thử sử dụng lệnh 'rm'. nó sẽ làm việc


1
Bạn có thể giải thích gì cả - tại sao sẽ wipelàm việc khi rmkhông?
bertieb

Như allquixotic đã nhận xét trong câu hỏi, ZFS là một hệ thống tệp sao chép khi ghi, vì vậy việc xóa tệp thực sự cần thêm một chút dung lượng trên đĩa trước khi tệp bị xóa. Nó phải ghi siêu dữ liệu trước khi xóa tệp, trong khi lệnh xóa thực sự xóa nội dung tệp theo cách không thể khôi phục được. Nó không đòi hỏi thêm không gian trong đĩa. Vì vậy, điều kiện "vượt quá dung lượng đĩa" sẽ không ảnh hưởng đến việc xóa sạch .
johny
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.