CentOS 7을 실행하는 SGE 클러스터에서 많은 작업을 수행하고 최근에는 임의로 죽어가는 작업에 문제가 있었지만 프로세스가 계속 실행 중이므로 처음부터 다시 정리할 수 없습니다. 필요한 파일을 삭제하려고하면 "no such file or directory"라는 메시지가 표시되지만 파일은 ls로 표시됩니다. 공개 토론 수색은 이것이 이름에있는 non-printing 특성 때문에 일 수 있었다는 것을 저에게 말했다, 그러나 나는 접촉을 사용하여 동일한 이름을 가진 파일을 만들거나 rm -i로 그것을 제거 할 수 없다. 예 : 나는 문제가 나쁜 파일이 어떤 프로세스에 의해 유지되고 있음을, 그리고 내가 클러스터를 제기 할 때 그들을주고 있었다 함께했다 유일한 솔루션을 버전 관리자 상당히 확신 등으로파일은 ls로 표시되지만 rm 또는 mv는 알 수없는 프로세스로 보입니다.
[[email protected] testing]$ rm file_bad.csv
rm: cannot remove ‘file_bad.csv’: No such file or directory
[[email protected] testing]$ rm -f file_bad.csv
[[email protected] testing]$ ls file*
file1.csv file2.csv file_bad.csv
[[email protected] testing]$ touch file_bad.csv
touch: cannot touch ‘file_bad.csv’: No such file or directory
[[email protected] testing]$ rm -i -- file_bad.csv
rm: cannot remove ‘file_bad.csv’: No such file or directory
[[email protected] testing]$ ls file*
file1.csv file2.csv file_bad.csv
파일 이름을 삭제할 수 있도록합니다. 이것은 지속 가능한 솔루션이 되기에는 너무 빈번하게 발생했습니다. 그래서 문제를 직접 해결하기 위해 할 수있는 일이 있다면 여기에 물어보고 싶습니다. 어떻게 든 파일을 강제로 삭제하고 방법?
대부분의 경우 의심되는 프로세스가 실행중인 클러스터 노드를 알 수 없으며 적절한 프로세스를 찾아 죽일 수있는 방법을 모르는 경우가 많습니다. 로그인 한 노드에서 lsof 명령을 실행해도 아무 것도 나타나지 않습니다.
모든 의견을 보내 주시면 감사하겠습니다.
이름에 보이지 않는 잘못된 문자가있을 가능성이 큽니다. ls -b, -Q, --quoting-style = shell 또는 --quoting-style = shell-always – bmargulies
답장을 보내 주셔서 감사합니다. @bmargulies,하지만 그게 다라고 생각하지 않습니다 : ls -Q 출력은 따옴표 (공백 없음). 또한 "touch file_bad.csv"는 file_bad.csv가 완전한 이름이 아닌 경우 오류를 반환합니다. 그렇습니까? – aknodt
각 파일의 inode 번호를 보려면'ls -i'를 수행하십시오. 그런 다음 find를 사용하십시오. -inum NUMBER -print'를 확인한 후,'find '로 파일을 삭제하십시오. -inum NUMBER -delete' 또는 find. -num NUMBER -exec rm -f {} \; -delete 옵션을 사용할 수없는 경우 -print를 사용하십시오. 그래도 문제가 해결되지 않으면 파일에'fuser'를 사용하여 어떤 프로세스가 있는지 확인하십시오. 최악의 경우 시스템을 다시 시작하십시오. – Nic3500