CentOS 7を実行しているSGEクラスタで多くの作業をしています。私が最初からやり直すのを妨げるプロセスはまだ実行中です。必要なファイルを削除しようとすると、 "no such file or directory"というメッセージが表示されますが、ファイルはlsで表示されます。フォーラムの検索では名前に非印字文字が含まれている可能性がありますが、touchを使用して同じ名前のファイルを作成することも、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にお返事ありがとうございます。引用符で囲みます(空白は表示されません)。また、「touch file_bad.csv」はエラーを返します.file_bad.csvが完全な名前ではない場合は正しくありません。 – aknodt
'ls -i'を実行して、各ファイルのiノード番号を確認します。それから 'findを使います。 -inum NUMBER -print'を実行して確認し、findでファイルを削除します。 -inum NUMBER -delete'または 'find。 -num NUMBER -exec rm -f {} \; -deleteオプションが利用できない場合は、-printを実行します。それでも動作しない場合は、ファイルに 'fuser'を使用して、どのプロセスにそれがあるかを確認してください。最悪の場合は、システムを再起動します。 – Nic3500