我想解析/proc/net/tcp/,但它安全吗?
我应该如何打开和读取文件,/proc/而不是害怕,某些其他进程(或操作系统本身)将在同一时间更改它?
我正在寻找与sscanf()Python 相当的东西.我想解析/proc/net/*文件,在CI中可以做这样的事情:
int matches = sscanf(
buffer,
"%*d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %*X %*X:%*X %*X:%*X %*X %*d %*d %ld %*512s\n",
local_addr, &local_port, rem_addr, &rem_port, &inode);
Run Code Online (Sandbox Code Playgroud)
我首先想到的是str.split,但是它不会拆分给定的字符,而是整个sep字符串:
>>> lines = open("/proc/net/dev").readlines()
>>> for l in lines[2:]:
>>> cols = l.split(string.whitespace + ":")
>>> print len(cols)
1
Run Code Online (Sandbox Code Playgroud)
如上所述,应该返回17.
是否有一个等价于sscanf(不是RE)的Python ,或者标准库中的字符串拆分函数,它分裂了我不知道的任何一系列字符?
我想在os x(10.9.1)的进程中获取一个打开文件的列表.在Linux中我能够从中获得/proc/PID/fd.但是我不确定如何在OS X上获得相同的结果.我发现OS X上没有procfs(默认情况下.可能的实现存在,但我不想那样).
那么我如何(在本机上)获取OS X上进程中打开文件的列表.一种方法是lsof.有没有其他支持?请告诉我在哪里可以获得更多相关信息.
谢谢.
如何仅使用proc获取所有网络接口的(IPv4)地址?经过一番广泛调查后,我发现了以下内容:
ifconfig利用SIOCGIFADDR,需要打开套接字并提前了解所有接口名称.它也没有记录在Linux上的任何手册页中.proc包含/proc/net/dev,但这是一个接口统计信息列表.proc包含/proc/net/if_inet6,这正是我所需要的,但对于IPv6.proc,但实际地址很少使用,除非明确部分连接.getifaddrs,这是一个非常"神奇"的功能,你期望在Windows中看到它.它也在BSD上实现.然而,它不是非常面向文本的,这使得很难使用非C语言.我正在寻找Linux内核的时间片(或量子)的值.
有没有/proc公开此类信息的文件?
(或)它在我的发行版的Linux头文件中是否定义良好?
(或者)是否有Linux API(可能是sysinfo)的C函数公开此值?
提前致谢.
我正在为Munin创建一个插件来监控命名进程的统计信息.其中一个信息来源是/proc/[pid]/io.但我很难找出rchar/ wchar和read_bytes/ 之间的区别written_bytes.
它们不一样,因为它们提供不同的值.它们代表什么?
我想知道st列的可能值/proc/net/tcp.我认为该st列等于netstat(8)或来自的STATE列ss(8).
我设法确定了三个代码:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 0100007F:08A0 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 7321 1 ffff81002f449980 3000 0 0 2 -1
1: 00000000:006F 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 6656 1 ffff81003a30c080 3000 0 0 2 -1
2: 00000000:0272 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 6733 1 ffff81003a30c6c0 3000 0 0 2 -1
3: 0100007F:0277 00000000:0000 0A 00000000:00000000 …Run Code Online (Sandbox Code Playgroud) 我可以理解/ proc/meminfo中包含的大部分信息,如总内存,缓冲区,缓存等.你能告诉我,下面列出的那些不太明显的是什么意思?
如果有人想知道,我在谈论linux命令cat/proc/meminfo的输出
我想使用/ proc每秒查找特定进程的资源使用情况.资源包括cputime,磁盘使用情况和网络使用情况.我查看/ proc/pid/stat,但我不确定我是否收到了所需的详细信息.我想要所有3个资源使用,我想每秒监视它们.
看来(从查看Linux内核源代码),Swap:度量标准/proc/pid/smaps是给定pid可访问的总交换.
在涉及共享内存的情况下,这似乎是实际交换使用的过度近似.例如,当将父pid与其分叉子节点的交换使用相加时,如果它们在交换中具有共同的共享内存,则看起来该部分(交换的共享内存)被计数多次(每个pid一次).
我的问题是,是否有办法根据共享它的进程数量(类似于Pss:)计算出公平交换使用指标.