EDIT: Tôi hoàn toàn quên mất chủ đề này. Hóa ra tôi đã có một đĩa cứng xấu. Chúng tôi đã phải triển khai lại máy chủ này cho các nhu cầu khác vì vậy cuối cùng tôi đã tìm cách thay thế một đĩa xấu và chúng tôi đã hoạt động trở lại.
Trong vài tuần nay tôi không thể hiểu tại sao tôi không thể xóa một tập tin cụ thể này. Là root tôi có thể, nhưng kịch bản shell của tôi chạy như một người dùng khác. Vì vậy, tôi đi chạy ls -la và nó không ở đó. Tuy nhiên, nếu tôi gọi nó là một tham số, nó sẽ hiển thị! Chắc chắn, chủ sở hữu là root, do đó tôi không thể xóa.
Lưu ý, 6535 bị thiếu ...
[root@server]# ls -la 653*
-rw-rw-r-- 1 svn svn 24002 Mar 26 01:00 653
-rw-rw-r-- 1 svn svn 7114 Mar 26 01:01 6530
-rw-rw-r-- 1 svn svn 8653 Mar 26 01:01 6531
-rw-rw-r-- 1 svn svn 6836 Mar 26 01:01 6532
-rw-rw-r-- 1 svn svn 3308 Mar 26 01:01 6533
-rw-rw-r-- 1 svn svn 3918 Mar 26 01:01 6534
-rw-rw-r-- 1 svn svn 3237 Mar 26 01:01 6536
-rw-rw-r-- 1 svn svn 3195 Mar 26 01:01 6537
-rw-rw-r-- 1 svn svn 27725 Mar 26 01:01 6538
-rw-rw-r-- 1 svn svn 263473 Mar 26 01:01 6539
Bây giờ nó xuất hiện nếu bạn gọi nó trực tiếp.
[root@server]# ls -la 6535
-rw-rw-r-- 1 root root 3486 Mar 26 01:01 6535
Đây là một cái gì đó thú vị. Vì vậy, tôi đã bắt gặp vấn đề này bởi vì trong tập lệnh shell của tôi, nó sẽ không xóa được vì 6535 thuộc sở hữu của root. Các tập tin thực sự xuất hiện sau khi tôi chạy "rm -rf." Tôi đã thử nó trước đó và nó không thể xóa thư mục vì nó nói với tôi rằng thư mục không trống. Tôi đi vào và nhìn và chắc chắn, tập tin "6535" cuối cùng cũng xuất hiện. Không biết tại sao nó lại làm điều này.
strace nói như sau
#strace ls -la 653* 2>&1 | grep ^open
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib64/tls/librt.so.1", O_RDONLY) = 3
open("/lib64/libacl.so.1", O_RDONLY) = 3
open("/lib64/libselinux.so.1", O_RDONLY) = 3
open("/lib64/tls/libc.so.6", O_RDONLY) = 3
open("/lib64/tls/libpthread.so.0", O_RDONLY) = 3
open("/lib64/libattr.so.1", O_RDONLY) = 3
open("/etc/selinux/config", O_RDONLY) = 3
open("/proc/mounts", O_RDONLY) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/proc/filesystems", O_RDONLY) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/usr/share/locale/en_US.UTF-8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_TIME/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/nsswitch.conf", O_RDONLY) = 3
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib64/libnss_files.so.2", O_RDONLY) = 3
open("/etc/passwd", O_RDONLY) = 3
open("/etc/group", O_RDONLY) = 3
open("/etc/mtab", O_RDONLY) = 3
open("/proc/meminfo", O_RDONLY) = 3
open("/etc/localtime", O_RDONLY) = 3