-------lsof-------
查看被删除的文件(有些删了文件,仍然被进程占用)
lsof|grep -i delete
查看目录下被打开的文件
lsof +D /var/log
查看被进程打开的文件,-c 指定进程名
lsof -p 100570
当你想要杀掉某个用户所有打开的文件、设备,你可以这样:
kill -9 `lsof -t -u gateway`
此处 -t 的作用是单独的列出 进程 id 这一列
-i 查看网络文件---
lsof [email protected] #查看iP占用
lsof -i:80 #查看port占用
lsof [email protected]:22
列出被某个进程打开所有的网络文件:
lsof -i -a -p4651
或者
lsof -i -a -c ssh
-c command
-a and ,默认为或
列出某个用户打开的所有网络文件:
lsof -i -a -u deploy
列出所有 tcp、udp 连接:
lsof -i tcp
lsof -i udp
列出所有 NFS 文件:-N NFS
lsof -N -a -u lakshmanan
注意:
-u 指定用户(lsof -u ^lakshmanan 可以排除某用户)
-a 与条件,and;只有多个查询条件都满足, 用 "-a" 参数,默认是 -o
----find---
按时间查找:
删除7天前文件:
find -type f -mtime +7 -exec rm -f {} \;
+7 七天前
-7 七天内
-type #类型,f 文件,d 目录,l 软连接
-mtime #最后修改时间
最大层数查找:
find -name startup.sh -exec bash {} \;
-maxdepth levels #最大查找层数
-exec #接shell命令,注意:接echo会有问题
正则匹配文件名:
find . -type f ! -regex '.*\.\(py\|sh\)$'
-regex and -iregex #使用正则匹配,后者为忽略大小写
! #不匹配
按文件大小查找:
find /home/tomcat -type f -name catalina.out -size +1G -exec ls -lh {} \; #查找大于1G的文件
按权限查找:
find -type f -perm 755
将目录换为树结构:
find . -exec sh -c 'echo -n {}|tr -d -c "/"|tr "/" " ";basename {}' \;
统计每个文件夹文件数:
for d in `find . -type d`;do echo `find $d -type f|wc -l` files in $d;done
按结构统计每个文件夹文件数:
find -type d -exec sh -c 'echo -n {}|tr -d -c "/"|tr "/" "\-\-";echo `basename {}` has `find {} -type f|wc -l` files' \;
----ls-----------
ls -R #递归查看
ls */*2019* #查看当前所有子目录中含有2019的文件
ls -t #按时间排序
-t sort by modification time, newest first
ls -l --time-style=long-iso #长格式时间
---inotify------
#监控系统文件变化
inotifywait -drq -o /tmp/inotify.log --exclude 'up.hostinfo.*' --exclude '^/etc/.java.*' --timefmt '%F %T' --format '%T %w %f %e' -e create -e delete -e close_write -e moved_to /etc /var/spool/cron/ /root/.ssh/
-d daemon
-r 递归
-q quite
-o 输出的日志路径
-e 要监控的事件
--exclude 要排除的文件,支持正则
format:
%T --timefmt指定的时间格式
%w 目录
%f 文件
%e 事件
max_user_watches不足时:
修改参数
echo 65535 >/proc/sys/fs/inotify/max_user_watches
配置文件:
vim /etc/sysctl.conf
fs.inotify.max_user_watches=66666
----chmod
chmod 1777 /tmp