linux运维常用命令(持续更新)

目录

一: 查看指定端口是否被监听

二:查看某个端口/服务相关进程

三:在B机器查看是否可以访问A机器某个端口,查看端口是否开放

四:查看端口占用列表

五:查看端口占用情况

六:查看哪些进程监听了2181端口

七:查看已删除却没有释放的进程

八:查看cpu占用前10行情况

九:查看服务器内存占用前十行相关进程

十:查看网络带宽,流量监控

十一:查看TCP请求中各个状态的数据,如timewait

十二:启动docker所有容器

十三:查看当前目录下文件夹的大小,1代表第一层

十四:查询大于100M的文件

十五:查看最近两个小时生成的文件

十六:删除指定目录下大于指定天数的日志。

十七:查看日志文件中并发量,可以知道程序性能如何

十八:查看有多少远程IP在连接本机

十九:统计当前 Linux 系统中可以登录计算机的账户有多少个

二十:定时备份日志目录下所有日志文件

二十一:实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员

二十一:根据PID过滤进程所有信息

二十二:根据进程名过滤进程信息

二十三:清除系统缓存、空出更多内存

二十四:kill -9 杀不死进程


一: 查看指定端口是否被监听

netstat -nltp |grep 9030

二:查看某个端口/服务相关进程

ps -ef |grep 9030

三:在B机器查看是否可以访问A机器某个端口,查看端口是否开放

telnet A服务器IP A服务器端口

四:查看端口占用列表

netstat -ntulp

五:查看端口占用情况

lsof -i :80

六:查看哪些进程监听了2181端口

netstat -nap |grep 2181 | awk '{print $7}' | sort

七:查看已删除却没有释放的进程

lsof -n / |grep deleted

八:查看cpu占用前10行情况

ps -aux --sort=-pcpu|head -10

九:查看服务器内存占用前十行相关进程

ps -aux | sort -k4nr | head -10

ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

十:查看网络带宽,流量监控

nethogs和nload流量监控工具_nethogs卡死_很迷眼的博客-CSDN博客

十一:查看TCP请求中各个状态的数据,如timewait

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}';netstat -nat |wc -l

十二:启动docker所有容器

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

十三:查看当前目录下文件夹的大小,1代表第一层

sudo du -h --max-depth=1

十四:查询大于100M的文件

find / -type f -size +100000k -ls

十五:查看最近两个小时生成的文件

find / -iname "*" -amin 120 -type f

十六:删除指定目录下大于指定天数的日志。

例如,要删除/data/bigdata/download 目录下 文件时间在3天之前的日志

cd "/data/bigdata/download/"  && ls -tF |grep '/$'|awk '{if (NR > 3) print $0 }'|xargs rm -rf

运行截图:

十七:查看日志文件中并发量,可以知道程序性能如何

运行原理:查看日志文件并发量可分为两个命令,第一个命令使用awk去逐行的处理文本文件,例如我的日志格式是: 

2023-06-29 14:49:57,243 INFO (Thread-56|102) [ReportHandler.diskReport():381] begin to handle disk report from backend 11002

那么使用awk 按照 ',' 分隔符逐行取出来第一个参数下载到一个新的文件。

第二个命令将新文件按照每行的内容进行统计分组降序。最后得到日志文件中的并发情况。

cat fe.log.20230628-1 |awk -F ',' '{print $1 > "message_time.txt" }'



cat message_time.txt | xargs -n1 | sort | uniq -c | sort -rn -k1 | awk '{print $2,$1}' | head -n 10 | tail -n +1

运行截图:

十八:查看有多少远程IP在连接本机

netstat -atn  |  awk  '{print $5}'  | awk  '{print $1}' | sort -nr  |  uniq -c

十九:统计当前 Linux 系统中可以登录计算机的账户有多少个

#如果去掉 |wc -l  就是输出列表

grep "bash$" /etc/passwd | wc -l

二十:定时备份日志目录下所有日志文件

#可以配合crontab设置定时

tar -czf log-`date +%Y%m%d`.tar.gz /var/log 

二十一:实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员

#!/bin/bash

# 实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员

# 提取根分区剩余空间
disk_size=$(df / | awk '/\//{print $4}')

# 提取内存剩余空空间
mem_size=$(free | awk '/Mem/{print $4}')
while :
do 
# 注意内存和磁盘提取的空间大小都是以 Kb 为单位
if  [  $disk_size -le 512000 -a $mem_size -le 1024000  ]
then
    mail  ‐s  "Warning"  root  <<EOF
 Insufficient resources,资源不足
EOF
fi
done

二十一:根据PID过滤进程所有信息

#! /bin/bash
# Author:李指导
# Date:2023-06-30
# Function: 根据用户输入的PID,过滤出该PID所有的信息
read -p "请输入要查询的PID: " P
n=`ps -aux| awk '$2~/^'$P'$/{print $11}'|wc -l`
if [ $n -eq 0 ];then
 echo "该PID不存在!!"
 exit
fi
echo "--------------------------------"
echo "进程PID: $P"
echo "进程命令:`ps -aux| awk '$2~/^'$P'$/{print $11}'`"
echo "进程所属用户: `ps -aux| awk '$2~/^'$P'$/{print $1}'`"
echo "CPU占用率:`ps -aux| awk '$2~/^'$P'$/{print $3}'`%"
echo "内存占用率:`ps -aux| awk '$2~/^'$P'$/{print $4}'`%"
echo "进程开始运行的时刻:`ps -aux| awk '$2~/^'$P'$/{print $9}'`"
echo "进程运行的时间:`ps -aux| awk '$2~/^'$P'$/{print $10}'`"
echo "进程状态:`ps -aux| awk '$2~/^'$P'$/{print $8}'`"
echo "进程虚拟内存:`ps -aux| awk '$2~/^'$P'$/{print $5}'`"
echo "进程共享内存:`ps -aux| awk '$2~/^'$P'$/{print $6}'`"
echo "--------------------------------"

二十二:根据进程名过滤进程信息

#! /bin/bash
# Author:李指导
# Date:2023-06-30
# Function: 根据输入的程序的名字过滤出所对应的PID,并显示出详细信息,如果有几个PID,则全部显示
read -p "请输入要查询的进程名:" NAME
N=`ps -aux | grep $NAME | grep -v grep | wc -l`    ##统计进程总数
if [ $N -le 0 ];then
  echo "该进程名没有运行!"
fi
i=1
while [ $N -gt 0 ]
do
  echo "进程PID: `ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $2}'`"
  echo "进程命令:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $11}'`"
  echo "进程所属用户: `ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $1}'`"
  echo "CPU占用率:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $3}'`%"
  echo "内存占用率:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $4}'`%"
  echo "进程开始运行的时刻:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $9}'`"
  echo "进程运行的时间:`  ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $11}'`"
  echo "进程状态:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $8}'`"
  echo "进程虚拟内存:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $5}'`"
  echo "进程共享内存:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $6}'`"
  echo "***************************************************************"
  let N-- i++
done

二十三:清除系统缓存、空出更多内存

free -m && sync && echo 1 > /proc/sys/vm/drop_caches && echo 2 > /proc/sys/vm/drop_caches && echo 3 > /proc/sys/vm/drop_caches && echo 4 > /proc/sys/vm/drop_caches && sync && free -m

运行截图:

二十四:kill -9 杀不死进程

查看是否有僵尸进程,如果有,kill掉该进程的父进程

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要成为一个合格的Linux运维工程师,您需要具备以下技能和知识: 1. 熟悉Linux操作系统:掌握Linux的基本操作,包括文件系统管理、用户和权限管理、进程管理等。了解Linux的基本原理和架构。 2. 命令行技能:熟练使用Linux命令行工具,如ls、grep、sed、awk等。了解常用命令的用法以及管道和重定向操作。 3. 网络和安全知识:了解网络协议、IP地址、子网划分等基础知识。熟悉常见的网络服务配置和安全管理,如SSH、Firewall、SSL等。 4. 脚本编程:掌握至少一种脚本语言,如Shell脚本、Python等。可以编写自动化脚本来简化重复性工作和任务。 5. 故障排除和故障恢复:具备故障排除的能力,能够快速定位和解决常见的系统问题。了解日志分析和故障恢复的方法。 6. 虚拟化和容器化技术:了解虚拟化技术(如VMware、KVM)和容器化技术(如Docker、Kubernetes),能够部署和管理虚拟化和容器化环境。 7. 数据库管理:熟悉常见数据库的安装、配置和管理,如MySQL、PostgreSQL等。了解数据库备份和恢复策略。 8. 自学和持续学习:Linux运维领域发展迅速,持续学习是非常重要的。保持对新技术和工具的关注,并不断提升自己的技能。 此外,良好的沟通能力、团队合作精神和解决问题的能力也是一个合格Linux运维工程师所必备的素质。通过实践和不断积累经验,您可以不断提升自己的技能,并成为一名优秀的Linux运维工程师。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李指导、

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值