#!/bin/bash
touch /tmp/sn2 /tmp/sn4 /tmp/sn6 /tmp/sn3
redir=/dev/null
which lsof >&/dev/null
lsofs=$?
def=$1
[ x"$def" == x ] && def=5
[ $lsofs -ne 0 ] && def=$(($def-4))
[ $def -lt 1 ] && def=1
while [ 1 == 1 ]; do
echo ""
date > $redir
sleep $def
if [ $lsofs -ne 0 ]; then
find /proc/*/fd/* -type l -perm /222 2>/dev/null -exec ls -logLd {} \; > /tmp/sn1
new=`diff /tmp/sn1 /tmp/sn2|grep '<'|awk '{print $NF}'`
for f in $new; do
if [ -e "$f" ]; then
fl=`ls -log "$f"|cut -d'>' -f2-`
sz=`stat -Lc%s "$f"`
[ `echo "$fl"|egrep -c "pipe:|socket:|/dev/"` -eq 0 ] && echo "WRITE $sz $fl" > $redir
fi
done
find /proc/*/fd/* -type l -perm 500 2>/dev/null -exec ls -logLd {} \; > /tmp/sn3
new=`diff /tmp/sn3 /tmp/sn4|grep '<'|awk '{print $NF}'`
for f in $new; do
if [ -e "$f" ]; then
fl=`ls -log "$f"|cut -d'>' -f2-`
sz=`stat -Lc%s "$f"`
[ `echo "$fl"|egrep -c "pipe:|socket:|/dev/|/proc"` -eq 0 ] && echo "READ $sz $fl" > $redir
fi
done
else
lsof -Pn|grep "[0-9][ruw] .*REG "|awk '{print substr($4,length($4),1)" "$9" "$7}'|grep -v "/proc/"|sort -u > /tmp/sn1
diff /tmp/sn1 /tmp/sn2|grep '<'|sed -e s/"^. r"/READ/ -e s/"^. w"/WRITE/ -e s/"^. u"/READWRITE/ > $redir
touch /tmp/sn3
fi
ps -eo user,pid,ppid,cmd|grep -v " $$ " > /tmp/sn5
diff /tmp/sn5 /tmp/sn6|grep '^<'|sed s/"^. "/"PROCESS "/ > $redir
mv /tmp/sn3 /tmp/sn4; mv /tmp/sn1 /tmp/sn2; mv /tmp/sn5 /tmp/sn6
redir=`tty`
done

  

脚本工具: 查看当前系统被写入的FD的更多相关文章

  1. 脚本_查看当前系统每个IP的连接数

    #!bin/bash#作者:liusingbon#功能:查看当前系统每个IP的连接数netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' ...

  2. Shell脚本查看linux系统性能瓶颈(转)

    Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...

  3. REDGATE又一好用的脚本工具ScriptsManager1.3

    原文:REDGATE又一好用的脚本工具ScriptsManager1.3 REDGATE又一好用的脚本工具ScriptsManager1.3 先说明一下:这个工具是免费的 下载地址:http://ww ...

  4. 开始你的第一个npm脚本工具

    在实际开发中,一般刚开始一个项目或者刚接手一个项目,我们会运行 npm install 下载安装所有依赖, 在实际开发中,可能也会使用各种命令行-- 来提高我们开发的效率. 与它相处了这么久,你真的了 ...

  5. 集团公司(嵌入ETL工具)财务报表系统解决方案

    集团公司(嵌入ETL工具)财务报表系统解决方案 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包括:金矿.铜矿.房产.化纤等.由于子公司在业务上的差异,子 ...

  6. 使用MegaCli工具查看Raid磁盘阵列状态

    转载自:http://home.51.com/chenjianghui1987/diary/item/10051836.html 文章本身我不做过多修改了,在这里我就把自己在安装时候碰到的难点跟大家提 ...

  7. ArcGIS使用Python脚本工具

    在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用.在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了.这里用按要素裁剪栅格的Python来 ...

  8. 自动脚本工具新版 v2.0

    自动脚本工具 下载 下载工具后,解压,直接双击 "execute.bat" 文件后(前提已配置好 jdk 1.7 的环境),会生成文件夹 "output",该文 ...

  9. 查看Linux系统的平均负载

    1.Linux系统的平均负载的概念 有时候我们会觉得系统响应很慢,但是又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待.特定时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度, ...

随机推荐

  1. 正则表达式测试器 beta_

    说明:"言简意赅".简而从之:如题※网上已经有很多正则的测试工具了※感谢小Z推荐了一款非常好的(但是个别子匹配项多时卡顿.应该是我的表达式问题)故而花了点时间照着“抄”了一个,并配 ...

  2. 关于AJAX中status中12030与12031的错误

    最近使用ajax调用一般处理程序时,出现外网调用不成功,内网调用成功,错误码为12030或12301的情况.当时在网上搜索了一些资料,有的说是因为文件中取了个中文名称导致的,有的是说要配置什么IIS之 ...

  3. 线程安全及Python中的GIL

    线程安全及Python中的GIL 本博客所有内容采用 Creative Commons Licenses 许可使用. 引用本内容时,请保留 朱涛, 出处 ,并且 非商业 . 点击 订阅 来订阅本博客. ...

  4. LeetCode---Hash Table

    299. Bulls and Cows 思路:抽屉法,放进secrets,拿出guess,最终cows = cows - bulls public String getHint(String secr ...

  5. ios 利用airprint实现无线打印(配合普通打印机)

    很多时候,我们不可能为了一个打印功能而去替换打印机,来支持无线打印. 找了很久,终于找到了一种解决方案,来适应大多数没有带wifi功能的打印机支持无线打印. 前提: 有wifi路由器:因为手机要打印, ...

  6. 为什么上传文件的表单里面要加一个属性enctype=multipart/form-data?

    首先知道enctype这个属性管理的是表单的MIME编码.共有三个值可选:1.application/x-www-form-urlencoded2.multipart/form-data3.text/ ...

  7. LeetCode "Is Subsequence"

    There are 3 possible approaches: DP, divide&conquer and greedy. And apparently, DP has O(n^2) co ...

  8. sql sever笔记 日期时间

     SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置. SET DATEFORMAT 将覆盖 SET LANGUAGE 的隐式日期格式设置. 该设置仅用在将字符串转换为日期值 ...

  9. 写出形似QML的C++代码

    最开始想出的标题是<Declarative C++ GUI库>,但太标题党了.只写了两行代码,连Demo都算不上,怎么能叫库呢……后来想换掉“库”这个字,但始终找不到合适词来替换.最后还是 ...

  10. ElasticSearch优化配置

    ################################################################### /etc/elasticsearch/elasticsearch ...