centos yum lsof(centos怎么安装软件包)

Linux系统查看端口占用命令

要了解如何在Linux系统中查看端口是否被占用,您首先需要确保已安装必要的工具。对服务器的理解类似于拥有高性能的PC电脑,配置越高,性能越强。以下是一些命令安装步骤:

在CentOS系统中,使用以下命令安装net-tools:

# yum install net-tools

在Ubuntu或Debian系统中,执行:

# apt-get install net-tools

若要安装lsof,请执行:

在CentOS系统中,输入:

# yum install lsof

在Ubuntu或Debian系统中,执行:

# apt-get install lsof

netstat命令用于在内核中访问网络信息,可显示协议统计和当前TCP/IP网络连接。使用以下命令查看所有端口:

netstat-ntlp

通过lsof命令,可以列出当前系统中打开的文件。要查看所有端口情况,使用:

# lsof-i

要查询特定端口,例如80端口,执行:

# lsof-i:[端口]#如查询 80端口# lsof-i:80

更多命令示例如下:

查看8080端口占用情况:lsof-i:8080

显示开启文件abc.txt的进程:lsof abc.txt

显示abc进程现在打开的文件:lsof-c abc

列出进程号为1234的进程所打开的文件:lsof-c-p 1234

显示归属gid的进程情况:lsof-g gid

显示目录下被进程开启的文件:lsof+d/usr/local/

搜索目录下的目录(时间较长):lsof+D/usr/local/

显示使用fd为4的进程:lsof-d 4

显示所有打开的端口和UNIX domain文件:lsof-i-U

在查到端口占用的进程后,使用kill命令可以杀掉对应的进程:

# [pid]换成在上述命令中获得的进程PID#例如杀掉pid为6010的进程kill-9 6010

Linux命令神器lsof

在Linux环境中,lsof(list open files)是一款强大的系统监控和诊断工具,它能列出所有系统中进程打开的文件,包括网络套接口。尤其在系统运维中,lsof发挥着不可或缺的作用。本文将详细介绍lsof的安装、使用方法以及实战应用。

lsof的安装与基本使用

在Centos系统中,通过yum命令安装lsof:yum-y install lsof。在终端中输入`lsof--h`可查看使用指南,基本命令如`lsof`将显示所有打开的文件。

实战训练

1.解决Device is busy问题

遇到磁盘卸载失败的提示,可以利用lsof找出占用磁盘的进程,例如`lsof-i`查看网络连接,找出特定端口的进程,如`lsof-i:22`。找到后,可以杀死进程以解除磁盘繁忙状态。

2.解决文件已删除空间未释放问题

磁盘空间占用100%时,可能由于已删除文件被进程占用。使用`lsof-n| grep delete`检查占用文件的进程,然后杀死进程以释放空间,避免重启系统。

3.恢复已删除文件

利用lsof,若进程仍存在,可以尝试恢复系统日志,如创建一个文件并启动后台进程,通过查看进程的文件描述符,可以尝试恢复已删除的文件。

【实用】CentOS 7系统优化脚本

作为一名运维人员,部署操作系统的任务经常重复,操作内容大同小异。为此,可以将相同的操作制作成统一执行的脚本,通过手动输入不同部分实现自动化操作,节省大量时间。最近发现了一款好用的shell源码,稍作修改后分享给大家。

脚本主要实现系统优化功能,包括修改字符集、关闭selinux、关闭防火墙、安装常用工具和加快ssh登录等。

脚本结构如下:

1.主菜单

2.二级菜单

主要实现系统优化,如修改字符集、关闭selinux、关闭防火墙、安装常用工具和加快ssh登录等功能。

脚本代码如下:

sh

#!/bin/sh

./etc/rc.d/init.d/functions

exportLANG=zh_CN.UTF-8

#一级菜单

menu1(){

clear

cat</etc/locale.conf</dev/null

echo'#firewall-cmd--state'

firewall-cmd--state

systemctldisablefirewalld.service&>/dev/null

echo'#systemctllist-unit-files|grepfirewalld'

systemctllist-unit-files|grepfirewalld

action"完成禁用firewalld,生产环境下建议启用!"/bin/true

echo"==========================================================="

sleep5

}

#精简开机启动

chkset(){

echo"=======================精简开机启动========================"

systemctldisableauditd.service

systemctldisablepostfix.service

systemctldisabledbus-org.freedesktop.NetworkManager.service

echo'#systemctllist-unit-files|grep-E"auditd|postfix|dbus-org\.freedesktop\.NetworkManager"'

systemctllist-unit-files|grep-E"auditd|postfix|dbus-org\.freedesktop\.NetworkManager"

action"完成精简开机启动"/bin/true

echo"==========================================================="

sleep2

}

#修改文件描述符

limitset(){

echo"======================修改文件描述符======================="

echo'*-nofile65535'>/etc/security/limits.conf

ulimit-SHn65535

echo"#cat/etc/security/limits.conf"

cat/etc/security/limits.conf

echo"#ulimit-Sn;ulimit-Hn"

ulimit-Sn;ulimit-Hn

action"完成修改文件描述符"/bin/true

echo"==========================================================="

sleep2

}

#安装常用工具及修改yum源

yumset(){

echo"=================安装常用工具及修改yum源==================="

yuminstallwget-y&>/dev/null

if[$?-eq0];then

cd/etc/yum.repos.d/

\cpCentOS-Base.repoCentOS-Base.repo.$(date+%F)

ping-c1mirrors.aliyun.com&>/dev/null

if[$?-eq0];then

wget-O/etc/yum.repos.d/CentOS-Base.repo

yumcleanall&>/dev/null

yummakecache&>/dev/null

else

echo"无法连接网络"

exit$?

fi

else

echo"wget安装失败"

exit$?

fi

yum-yinstallntpdatelsofnet-toolstelnetvimlrzsztreenmapncsysstat&>/dev/null

action"完成安装常用工具及修改yum源"/bin/true

echo"==========================================================="

sleep2

}

#优化系统内核

kernelset(){

echo"======================优化系统内核========================="

chk_nf=`cat/etc/sysctl.conf|grepconntrack|wc-l`

if[$chk_nf-eq0];then

cat>>/etc/sysctl.conf</dev/null

if[$?-eq0];then

/usr/sbin/

echo"*/5****/usr/sbin/ntpdatentp.aliyun.com&>/dev/null">>/var/spool/cron/root

else

echo"ntpdate安装失败"

exit$?

fi

action"完成设置时间同步"/bin/true

echo"==========================================================="

sleep2

}

#history优化

historyset(){

echo"========================history优化========================"

chk_his=`cat/etc/profile|grepHISTTIMEFORMAT|wc-l`

if[$chk_his-eq0];then

cat>>/etc/profile<<'EOF'

#设置history格式

exportHISTTIMEFORMAT="[%Y-%m-%d%H:%M:%S][`whoami`][`whoami|awk'{print$NF}'|sed-r's#[()]##g'`]:"

#记录shell执行的每一条命令

exportPROMPT_COMMAND='\ if[-z"$OLD_PWD"];then exportOLD_PWD=$PWD; fi; if[!-z"$LAST_CMD"&&["$(history1)"!="$LAST_CMD"];then logger-t`whoami`_shell_dir"[$OLD_PWD]$(history1)"; fi; exportLAST_CMD="$(history1)"; exportOLD_PWD=$PWD;' EOF

source/etc/profile

else

echo"优化项已存在。"

fi

action"完成history优化"/bin/true

echo"==========================================================="

sleep2

}

main(){

menu1

case$num1in

1) localeset selinuxset firewalldset chkset limitset yumset kernelset sshset restartset ntpdateset historyset;;

2) menu2

case$num2in

1) localeset;;

2) selinuxset;;

3) firewalldset;;

4) chkset;;

5) limitset;;

6) yumset;;

7) kernelset;;

8) sshset;;

9) restartset;;

10) ntpdateset;;

11) historyset;;

12) main;;

13) exit;;

*) echo'Pleaseselectanumberfrom[1-13].';;

esac

;;

3) exit;;

*) echo'Err:Pleaseselectanumberfrom[1-3].' sleep3 main;;

esac

}

main$*

将脚本保存为init.sh,赋予执行权限并执行即可。

chmod+xinit.sh&&./init.sh

通过一键命令执行,同样能达到脚本的效果:

bash-c"$(curl-Ls.aaa.al/init.sh)"

如需新增功能,可在脚本基础上进行修改实现。

本书从实用角度出发,结合实际应用案例,模拟真实的系统环境,介绍电脑的使用方法与技巧,旨在帮助读者全面、系统地掌握电脑的应用。书中“高手支招”板块提供大量实用技巧,解决日常工作中遇到的常见问题。

阅读剩余
THE END