Chinaunix
标题:
请教:如何得到别人的工作目录呢?
[打印本页]
作者:
bluesgone
时间:
2010-07-06 16:53
标题:
请教:如何得到别人的工作目录呢?
各位大虾,你们好,
用shell就可以实现对aix系统的某一时刻的操作监控;
for ip in `cat $HOME1/txt/man.txt|awk -F\| '{print $1}'`
do
grep $ip $HOME1/txt/man.txt | awk -F\| '{print "["$2"]在做什么?" }'
for pts in `who|grep $ip|awk -F\/ '{print $2}'|awk '{print $1}'`
do
ps -ef|grep "pts\/$pts "|grep -v grep|grep -v ksh
done
done
man.txt为一个ip的列表,说明ip地址和主人的mapping对照关系;
现在想知道如何得到某个ip所处的工作目录,因为我想知道他/她在做vi makefile
的时候,是在哪个目录做的;
有兴趣的朋友帮忙看一下如何实现,谢谢。
作者:
bluesgone
时间:
2010-07-07 08:57
回复
1#
bluesgone
click for 46 times, but nobody know?
waiting for your answer, thx.
作者:
waker
时间:
2010-07-07 09:05
找到他vi所在进程的pid 到/proc里查询该进程的cwd
作者:
bbgg1983
时间:
2010-07-07 09:40
回复
3#
waker
学习了,版主的水平果然是高
作者:
Shell_HAT
时间:
2010-07-07 09:51
while IFS=\| read column1 column2; do
echo "Where is ${column2} using vi?";
for pts in `who | awk -v ip=${column1} '$0~ip{print $2}'`; do
pid=`ps -ef | grep "${pts}.*vi" | grep -v "grep" | awk '{print $2}'`
ls -l /proc/${pid} | awk -F '>' '/cwd ->/ {print $2}'
done
echo
done < $HOME1/txt/man.txt
复制代码
作者:
miniqq
时间:
2010-07-07 09:53
你用AIX5L吗?装个 lsof
lsof -p $PID
就可以看到你想看的
作者:
bluesgone
时间:
2010-07-07 15:38
本帖最后由 bluesgone 于 2010-07-07 15:45 编辑
我在aix版也发表了这个问题,斑竹说用procwdx 就可以了,我尝试了一下,的确可以。不过,
对于脚本执行用户外的其他用户的当前工作目录,就无法取得了。
存在权限的问题。
对于你们说的这种看cwd的方式,也必须拥有其他用户的权限才行,否则看不到其他用户在啥目录下做什么。
可能这个也是进程的一种保护机制吧,避免除了root以外用户的进程破坏其他的用户进程。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2