ad.php文件删除不掉,linux处理

zblog1年前zblog问题解答38

1、   lsof | grep ad.php 

如果文件正在被某个进程使用,那么它可能无法被删除。你可以使用 lsof 或 fuser 命令来查找哪个进程在使用该文件:

lsof | grep ad.php

fuser ad.php


结果:

lsof | grep ad.php tamper_pr  8631          root   18w      REG              253,0         72 1637078917 /www/wwwroot/XXX.com/ad.php (deleted) tamper_pr  8631          root   19w      REG              253,0         72 1637078928 /www/wwwroot/XXX.com/ad.php tamper_pr  8631  8680    root   18w      REG              253,0         72 1637078917 /www/wwwroot/XXX.com/ad.php (deleted)

这是啥意思 哪个是进程

lsof | grep ad.php 命令用于列出当前系统中所有打开的文件,并过滤出包含 ad.php 的条目。从你提供的输出来看,有多个进程在访问或尝试访问名为 ad.php 的文件。以下是对每个字段的解释:

  • COMMAND: 进程的名称(例如 tamper_pr)。

  • PID: 进程 ID。

  • USER: 运行该进程的用户(例如 root)。

  • FD: 文件描述符(例如 18w19w),表示文件被以写模式打开。

  • TYPE: 文件类型(例如 REG 表示常规文件)。

  • DEVICE: 设备号(例如 253,0)。

  • SIZE/OFF: 文件大小或偏移量(例如 72)。

  • NODE: inode 编号(例如 1637078917)。

  • NAME: 文件名及其路径(例如 /www/wwwroot/zpdlsb.com/ad.php (deleted))。

从你的输出中可以看到,多个进程(PID)都在尝试访问同一个文件 ad.php,并且该文件已经被删除(标记为 (deleted))。具体来说:

    

这些条目表明:

  1. tamper_pr 进程(PID 8631)正在尝试访问 ad.php 文件,但该文件已被删除。

  2. tamper_pr 进程(PID 8680)和它的子进程(PID 8681)也在尝试访问相同的已删除文件。

哪个是进程?

  • tamper_pr 进程(PID 8631)

  • tamper_pr 进程(PID 8680)及其子进程(PID 8681)

这些进程都试图访问一个已经删除的文件 ad.php


2、 ps -p 8631 -o pid,ppid,cmd


怎么查看 tamper_pr  进程的 程序 或位置

要查看 tamper_pr 进程的详细信息,包括其程序或位置,可以使用以下几种方法:

(1) 使用 ps 命令

ps 命令可以显示当前运行的进程及其详细信息。你可以使用以下命令来查看特定进程的信息:

        sh复制代码ps -p 8631 -o pid,ppid,cmd

这将显示 PID 为 8631 的进程的父进程 ID (PPID) 和命令行信息 (CMD)。

(2) 使用 lsof 命令

lsof 命令可以列出打开的文件以及相关的进程信息。结合 grep 命令,你可以过滤出特定进程的信息:

        sh复制代码lsof -p 8631

这将显示 PID 为 8631 的所有打开文件及其相关信息。


ps -p 8631 -o pid,ppid,cmd

   PID   PPID CMD

  8631      1 /www/server/tamper_proof_refactored/tamper_proof_refactored

lsof -p 8631

COMMAND    PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME

tamper_pr 8631 root  cwd       DIR              253,0      4096         96 /

tamper_pr 8631 root  rtd       DIR              253,0      4096         96 /

tamper_pr 8631 root  txt       REG              253,0  11460760 1639030216 /www/server/tamper_proof_refactored/tamper_proof_refactored

tamper_pr 8631 root    0r      CHR                1,3       0t0       2052 /dev/null

tamper_pr 8631 root    1u     unix 0xffff8cb33fd4b000       0t0      62293 socket

tamper_pr 8631 root    2u     unix 0xffff8cb33fd4b000       0t0      62293 socket

tamper_pr 8631 root    3w      REG              253,0     33569  548327872 /www/server/panel/plugin/tamper_proof_refactored/service.log

tamper_pr 8631 root    4u  a_inode               0,10         0      11110 [eventpoll]

tamper_pr 8631 root    5r     FIFO                0,9       0t0      15180 pipe

tamper_pr 8631 root    6w     FIFO                0,9       0t0      15180 pipe

tamper_pr 8631 root    7r  a_inode               0,10         0      11110 inotify

tamper_pr 8631 root    8u      REG              253,0   8736793  686965530 /www/server/panel/plugin/tamper_proof_refactored/tamper/data/backup/www.XXX.com_backup.zip


3、kill -9 8631 

终止占用文件的进程

再次尝试删除文件:


rm -f ad.php


  1.     

通过以上步骤,你应该能够解决大多数情况下无法删除文件的问题。



 

相关文章

宝塔面板保持终端持续运行的解决方案(Screen全屏窗口管理器)

Screen是一个全屏窗口管理器命令在Linux终端中管理会话时,screen是一个非常有用的工具。它允许你在单个终端会话中创建多个虚拟终端,从而可以同时运行多个任务,即使在断开与服务器的连接后也可以...

ip地址查询 js

https://myip.ipip.net/json  https://opendata.baidu.com/api.php?query=115.111.95.40&co=&...

brotli 命令行工具 在centos 和 Ubuntu 分别怎么安装

在CentOS和Ubuntu上安装brotli命令行工具,可以按照以下步骤进行:在CentOS上安装brotli更新系统(可选但推荐):首先,确保你的CentOS系统已经更新到最新状态。bash复制代...

php 正则表达式替换 preg_replace 函数

在 PHP 中,你可以使用正则表达式(regular expressions)结合字符串替换函数(如 preg_replace 或 preg_replace_callba...

dechex 函数 ,用于将一个十进制数转换为其对应的十六进制字符串表示。

在PHP中,dechex() 函数是一个内置函数,用于将一个十进制数转换为其对应的十六进制字符串表示。 这个函数在处理数字数据时非常有用,特别是当你需要将数字以十六进制格式输出或存储时。...