実行可能ファイルを各ノードにコピーして実行し、出力をサーバーノードに再度コピーして、クラスタ内のプログラムを手動で実行します。突然、このプロセスに関連するすべてのファイルが一斉に削除されていることに気づき、どこでこのようなことをしているのか、少なくともどのスクリプトがそれを削除しているのか分からなかった。
これはSOの質問に関連しています。https://stackoverflow.com/questions/23608486/how-to-find-which-process-removing-a-directory-in-linux
ただし、ここで問題を再現できることに注意してください。管理者権限がないため使用できませんが、auditd
必要に応じてこの手順を繰り返すことができます。面白いのは、ファイルの権限を変更しようとしましたが、消え続けることです。
私は魔法のようなものを期待していません
$ please tell me who did
しかし、この問題を解決するための賢明なアイデアを聞くことができてうれしいです。
ところで、管理者にファイルを削除できるプロセスがあるかどうか尋ねたところ、不可能だと言いました。
注:もともとSOに投稿しましたが、トピックから外れたとマークされました。
編集:さて、Mark Plotnickの提案を使って見たことから、strace
ファイルのコンパイル場所がfirstであることがわかりますgcc
。.c
それから実行ファイルがありますlstat
。その後、切断PIDがある呼び出しに表示されますexecve
。/usr/bin/ld
5980 execve("/usr/bin/ld", ["/usr/bin/ld", "-plugin", "/cm/local/apps/gcc/6.3.0/libexec"..., "-plugin-opt=/cm/local/apps/gcc/6"..., "-plug in-opt=-fresolution=/tmp/cc"..., "-plugin-opt=-pass-through=-lgcc", "-plugin-opt=-pass-through=-lgcc_"..., "-plugin-opt=-pass-through=-lc", "-plugin-opt=-pass-through=-lgcc", "-plugin-opt=-pass-through=-lgcc_"..., "--eh-frame-hdr", "-m", "elf_x86_64", "-dynamic-linker", "/lib64 /ld-linux-x86-64.so.2", "-o", "MY/EXECUTABLE/BEING/DELETED", "/lib/../lib64/crt1.o", "/lib/../lib64/crti.o", "/cm/local/apps/gcc/6.3.0/lib/g cc"..., "-L/cm/shared/apps/slurm/17.02.2/"..., "-L/cm/local/apps/gcc/6.3.0/lib/g"..., "-L/cm/local/apps/gcc/6.3.0/lib/g"..., "-L/lib/../lib 64", "-L/usr/lib/../lib64", "-L/cm/shared/apps/slurm/17.02.2/"..., "-L/cm/shared/apps/slurm/17.02.2/"..., "-L/cm/local/apps/gcc/6.3.0/lib/g "..., "/tmp/ccdL3Sax.o", "-lm", "-lgcc", "--as-needed", ...], [/* 39 vars */]) = 0
それから:
5980 stat("MY/EXECUTABLE/BEING/DELETED", {st_mode=S_IFREG|0755, st_size=17392, ...}) = 0
5980 lstat("MY/EXECUTABLE/BEING/DELETED", {st_mode=S_IFREG|0755, st_size=17392, ...}) = 0
5980 unlink("MY/EXECUTABLE/BEING/DELETED") = 0
5980 open("MY/EXECUTABLE/BEING/DELETED", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3