服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 八个DevOps中重要的Linux命令

八个DevOps中重要的Linux命令

2024-01-01 17:01未知服务器之家 Linux

本文介绍一些常用的Linux命令,帮助开发人员高效工作和排除故障。 1. xargs xargs命令通过接收输入并将其转换为另一个命令的参数,从而帮助构建和执行提供的命令。 这个命令重要且实用,开发人员可以使用这个命令将命令的输出

本文介绍一些常用的Linux命令,帮助开发人员高效工作和排除故障。

八个DevOps中重要的Linux命令

1. xargs

xargs命令通过接收输入并将其转换为另一个命令的参数,从而帮助构建和执行提供的命令。

这个命令重要且实用,开发人员可以使用这个命令将命令的输出作为参数传递给另一个命令。

例如,如果想从/etc目录中找到所有的“* .conf”文件,并将其分类到不同的组中,可以使用以下命令:

$ find /etc -name *.conf -type f -print | xargs file
/etc/dhcp/dhclient.conf:                             ASCII text
/etc/dracut.conf.d/ec2.conf:                         ASCII text
...
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf: XML 1.0 document, ASCII text
...
/etc/dbus-1/session.conf:                            exported SGML document, ASCII text
...

还可以使用-i选项运行多个命令:

$ cat file.txt | xargs -i  sh -c 'command {} | command2 {} && command3 {}'

或者甚至可以使用tar归档文件:

$ find /home/tony -name "*.jpg" -type f | xargs tar -cxvf images.tar.gz

2. nohup

首先,需要理解SIGHUP(终端挂起信号)是一种信号,当关闭控制终端时,它会终止Linux进程。如果意外关闭终端或失去与主机的连接,所有正在运行的进程将被自动终止。

使用nohup命令是阻止SIGHUP信号并允许进程在从终端注销后继续运行的一种方法。

例如,如果想在后台运行数据库导出操作,并将命令的操作输出记录到文件中,可以这样做:

$ nohup mysqldump -uroot -pxxxx —all-databases > ./alldatabases.sql &

还可以使用nohup同时在后台运行多个进程,使用以下命令:

nohup bash -c '[command1] && [command2]'

只需将command和command2替换为自己的命令,如果需要,还可以添加更多的命令,只需使用&&作为分隔符。

3. 查找内存/CPU使用率高的进程

如果安装了htop,可以使用它来替代下面的命令,会有更好的可视化效果。

可以使用以下命令按顺序查找高内存消耗的进程:

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10
  PID  PPID CMD                         %MEM %CPU
 1213     1 /usr/lib/systemd/systemd-jo  0.9  0.0
 2332     1 /usr/sbin/rsyslogd -n        0.6  0.0
 2417  2333 /usr/bin/ssm-agent-worker    0.5  0.0
 2474     1 python3 /usr/bin/amazon-efs  0.5  0.1
 2333     1 /usr/bin/amazon-ssm-agent    0.3  0.0
 2477     1 /usr/bin/stunnel /var/run/e  0.2  0.0
 9223  2392 sshd: txu [priv]             0.2  0.0
 2392     1 /usr/sbin/sshd -D            0.2  0.0
 9475  9256 sudo su -                    0.1  0.0

类似地,可以使用以下命令按顺序查找高CPU消耗的进程:

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -10
  PID  PPID CMD                         %MEM %CPU
 2474     1 python3 /usr/bin/amazon-efs  0.5  0.1
    1     0 /usr/lib/systemd/systemd --  0.1  0.0
    2     0 [kthreadd]                   0.0  0.0
    3     2 [rcu_gp]                     0.0  0.0
    4     2 [rcu_par_gp]                 0.0  0.0
    6     2 [kworker/0:0H-ev]            0.0  0.0
    8     2 [mm_percpu_wq]               0.0  0.0
    9     2 [rcu_tasks_rude_]            0.0  0.0
   10     2 [rcu_tasks_trace]            0.0  0.0

4. 查看多个日志文件

在日常工作中,查看日志文件的方式通常是使用tail命令在一个终端中查看一个日志文件,然后在另一个终端中查看另一个日志文件。但有时候这种方法有点麻烦。有一种工具叫做multitail可以在同一个终端上同时查看多个日志文件。

下面的命令将会在两列中显示两个日志文件:

$ multitail -s 2 /var/log/messages /var/log/cloud-init-output.log

八个DevOps中重要的Linux命令

要安装multitail:

$ wget ftp://ftp.is.co.za/mirror/ftp.rpmforge.net/redhat/el6/en/x86_64/dag/RPMS/multitail-5.2.9-1.el6.rf.x86_64.rpm
$ yum localinstall multitail-5.2.9-1.el6.rf.x86_64.rpm

5. 查看TCP连接状态

按组查看TCP连接:

$ netstat -nat | awk '{print $6}' | sort | uniq -c | sort -rn
      6 LISTEN
      4 ESTABLISHED
      3 SYN_RECV
      1 Foreign
      1 established)

6. 最高请求数前10个IP

有时候用户请求的数量会突然增加。这时,可以检查请求源的IP状态。如果集中在几个IP上,可能存在攻击,可以使用防火墙来阻止。命令如下:

$ netstat -anlp | grep 80| grep tcp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n10
1566 10.1.1.2
 500 10.2.3.4
 44  10.3.2.4
...

7. 最耗费文件句柄的前10个进程

有时候需要监控服务器上每个进程的打开文件数,下面的命令可以帮助找出前15个:

$ find /proc -maxdepth 1 -type d -name '[0-9]*' -exec bash -c "ls {}/fd/ | wc -l | tr '\n' ' '" \; -printf "fds (PID = %P) \n" |  sort -rn | head -15
500 fds (PID = 2541)
366 fds (PID = 29563)
254 fds (PID = 1)
46 fds (PID = 2613)
44 fds (PID = 2253)
41 fds (PID = 30709)
38 fds (PID = 27695)
37 fds (PID = 29971)
...

它进入/proc目录中的每个PID文件夹,计算打开的文件数,然后按降序排序。

8. 查找最多连接数的IP

统计具有最多入站连接的IP地址:

$ ss -t | awk '(NR>1) {print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -rn | head -10
     16 127.0.0.1
      8 10.238.168.96
      1 10.229.36.59
...

延伸 · 阅读

精彩推荐
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30