相关疑难解决方法(0)

是否有可能找出哪个程序或脚本创建了给定的文件?

我的主目录中突然出现了三个文件,分别是“client_state.xml”、“lockfile”和“time_stats_log”。最后两个是空的。我想知道他们是怎么到那里的。这不是第一次发生,但最后一次是几周前;我删除了文件,没有任何损坏或抱怨。我一直想不起来我在报道的时候在做什么stat $filename。有什么办法可以找出他们来自哪里?

或者,有没有办法监视主目录(但不是子目录)以创建文件?

monitoring files

39
推荐指数
3
解决办法
3万
查看次数

查找正在修改文件的进程

我们生产服务器上的一个特定文件在明显随机的时间被修改,这似乎与任何日志活动无关。我们无法弄清楚是什么程序在做的,有很多嫌疑。我怎样才能找到罪魁祸首?

它始终是相同的文件,位于相同的路径,但位于不同的服务器和不同的时间。这些框由puppet管理,但在修改文件时,puppet 日志显示没有活动。

什么内核钩子、工具或技术可以帮助我们找到正在修改这个文件的进程?


lsof 不适合这个,因为文件被打开、修改和关闭的速度非常快。任何依赖轮询(例如经常运行 lsof)的解决方案都不好。


  • 操作系统:Debian 测试
  • 内核:Linux,2.6.32 到 3.9,32 位和 64 位。

linux filesystems debian

26
推荐指数
1
解决办法
3万
查看次数

记录每个 SUID 程序的每次调用?

我想要一个日志文件,其中包含每次用户运行任何 suid 程序时的条目,其中包含用户名、程序和传递给它的任何命令行参数。有没有标准的方法可以在 Linux 上实现这一点?

linux security logs

12
推荐指数
1
解决办法
2296
查看次数

LoggedFS 配置文件语法

LoggedFS配置文件的语法是什么?

官方文档只有loggedfs命令的使用说明和配置文件示例。好的,它是 XML,但是所有可能的标签和属性是什么?它们是什么意思?

logs fuse

8
推荐指数
1
解决办法
2047
查看次数

我可以阻止创建文件吗?

我们有一台运行 VMware Server 的机器。它不断创建一个名为not_configuredin的文件/etc/vmware/,这以某种方式使我们的虚拟机无法启动。

我想知道是否有任何可靠的方法可以防止从一开始就创建此文件。

文件本身不包含任何内容,所以我不想创建和写保护它。它首先不应该在那里。

permissions files

7
推荐指数
1
解决办法
5489
查看次数

在 Linux 下跟踪巨大的缓冲区使用情况

我有一台在 Debian Lenny 下运行的 Linux 服务器,带有 4Go 的 RAM。它运行的不多,只是:

  • Postfix/spamassassin(守护进程模式)
  • 绑定9
  • KVM(一个来宾 - 1Go RAM)

每天 UTC 时间 3:05,服务器几乎所有内存都完全降到底层。在那之后,我有超过 2G 的缓冲区使用并且从未清理过(除非我手动告诉内核删除缓存)。

我在网上搜索了很多,一开始,我认为这是由于 NFS 缓冲区的使用。我使用 gzip/tar 通过 NFS 共享驱动器进行备份,备份发生在 3:05。

但是,我现在处于一个非常奇怪的情况,因为我在 1:40 移动了备份任务(它在 2 分钟内完成)并且我仍然在 3:05 删除了所有 RAM。

在我的日志中,没有什么特别的,除了在 03:05:01,cron 以 root 用户身份打开一个会话并在 03:05:02 立即关闭它而不做任何事情。当然,cron 已经重新启动,我检查了任务的时间——同样,没什么特别的。

知道为什么会这样吗?或者,知道如何跟踪使用所有这些缓冲区的内容吗?


编辑:服务器以 UTC 运行,这里的所有时间都是 UTC。它没有运行任何 NFS 服务器,我也没有安装 mlocate 或 slocate。对于 crontab、daily 和 user crontab,在那个时间什么都不做。

这是我关于 cron 的日志中有趣的部分:

auth.log-20110501:May 1 03:05:01 SRV CRON[15914]: pam_unix(cron:session): session 为用户 root (uid=0)
auth.log-20110501:May 1 03:05:01 打开SRV CRON[15914]: pam_unix(cron:session): session …

linux memory nfs

5
推荐指数
1
解决办法
1950
查看次数

我不应该跟踪哪些进程?

我创建了一个小函数,用于strace按名称 'ing 一组当前用户的进程:

function pstrace() {
    local pattern="$1";
    shift;
    prefixDashP $(pgrep -U $(whoami) $pattern) | xargs strace -o /dev/stdout $@;
}

function prefixDashP() {
    local new_args=();
    for arg; do
        new_args+=( '-p' );
        new_args+=( "$arg" );
    done;
    for arg in "${new_args[@]}"; do
        echo "$arg";
    done;
}

# Usage:  pstrace pattern1 pattern2 ...
Run Code Online (Sandbox Code Playgroud)

问题是,如果我不小心指定了太宽泛的模式,它会尝试监视它不应该监视的进程,因此我的系统会冻结。

是否有我可以随时排除的进程列表?

process strace

3
推荐指数
1
解决办法
1259
查看次数

如何跟踪目录中当前正在增长的文件

我有一个本地文件系统,它通过 nfs(非常大的 xfs 分区)导出为 rw。

某个地方(我无法确定谁或什么远程进程)正在写入、创建新文件或更新附加更多数据;并且可用磁盘空间很快就不足了。

为了确定哪些文件可以安全地移动到其他地方,我考虑了以下命令:

find . -type f -mtime +15 -size +100M
find . -type f -mmin -2 
Run Code Online (Sandbox Code Playgroud)

但是有没有一种通用方法可以调用 find 或任何其他系统实用程序来跟踪当前正在增长/正在写入(远程)的文件?

linux filesystems find nfs

3
推荐指数
1
解决办法
5398
查看次数

创建后如何直接访问临时文件?

我有一个通过 SSH 连接到远程主机的脚本,创建临时文件并执行以下命令:

调用系统(mysql --database=information_schema --host=localhost < /tmp/drush_1JAjtt)

每次它创建不同的文件(模式:)drush_xxxxxx。

我已经尝试在远程手动运行几次:

tail -f /tmp/drush_*
Run Code Online (Sandbox Code Playgroud)

但我的连接速度太慢,大多数时候我都会遇到错误:

tail:无法打开`/tmp/drush_*'进行读取:没有这样的文件或目录

有什么技巧可以在创建此类文件后立即访问该文件以显示其内容吗?

linux command-line tmp files

3
推荐指数
1
解决办法
3921
查看次数