Linux常用命令之lsof
lsof(list open files)是一个列出当前系统打开文件的工具。在 linux 环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
常用参数
参数
说明
-p
根据 pid 查找
直接加文件路径
查看这个文件被哪个进程打开了
-c
显示 COMMAND 列中包含指定字符的进程所有打开的文件
lsof -u username
显示所属 user 进程打开的文件
-i
用以显示符合条件的进程情况
lsof -g gid
显示归属 gid 的进程情况
lsof +d /DIR/
显示目录下被进程打开的文件
lsof +D /DIR/
同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD
显示指定文件描述符的进程
lsof -n
不将 IP 转换为 hostname,缺省是不加上 -n 参数
lsof -i
用以显示符合条件的进程情况
一些例子查看 java 程序打开的文件1lsof -c java
当然你也可以到 /proc/ ...
解决 yum update 卡住不动
如果是低内存机器,有可能是内存不够了,增加一些 swap 试试。
123456789101112# 强制结束yum进程kill -9 <pid># 删除rpm数据文件rm -f /var/lib/rpm/__db.00*# 重建rpm数据文件rpm -vv --rebuilddb# 清空缓存后再重新缓存yum clean all yum makecache
CentOS 7 配置 fail2ban
基本配置123456systemctl disable --now firewalldsed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux && setenforce 0yum install fail2ban -yrm -f /etc/fail2ban/jail.d/00-firewalld.conf
开启 ssh 封禁规则vim /etc/fail2ban/jail.d/ssh.conf
12345678910111213141516[DEFAULT]# 封禁时间多久,单位是秒,也可以写 10m 表示 10 分钟。1h 表示 1 小时bantime = 3600# Override /etc/fail2ban/jail.d/00-firewalld.conf:banaction = iptables-multiport# 统计周期时间,默认单位是秒findtime = 10m# 在一个周期内允许失败几次maxretr ...
macOS终端工具iTerm2配置lrzsz上传下载
lrzsz 是个很古老的软件了, 上次更新是 1998 年, 距今已经 20 多年历史了,那为啥还要用这么古老的软件呢,lrzsz 利用终端来传输文件,相比于 scp、sftp 等来说方便倒是其次,想象一下 我的电脑 --> 跳板机A --> 跳板机B --> 目标机器 并且很多跳板机都有各种限制,不一定支持上传文件,这个时候通过终端来传文件就是唯一的选择了。
官方介绍:https://www.ohse.de/uwe/software/lrzsz.html
类似与 lrzsz 还有个软件叫 trzsz, 相比 lrzsz 更快,更方便。
lrzsz 原理
下载文件 在服务器上执行 sz(Send by ZMODEM),先在终端上输出 **B00000000000000,然后客户端在终端发送指令,表示拒绝,还是接收(接收的话,就在客户端运行 rz 指令与服务端交互)
上传文件 在服务器上执行 rz(Receive by ZMODEM),先在终端上输出 rz waiting to receive.**B0100000023be50,然后客户端发送指令,表示取消,还是 ...