Centos常用命令

Centos7服务器

配置情况

  1. 查看操作系统信息

    bash

    cat /etc/*-release
    
  2. 查看 CPU 信息

    bash

    cat /proc/cpuinfo
    

    或者使用 lscpu 命令:

    bash

    lscpu
    
  3. 查看内存信息

    bash

    free -m
    

    -m 参数表示以 MB 为单位显示内存信息。

  4. 查看磁盘信息

    bash

    df -h
    

    -h 参数表示以人类可读的格式显示磁盘空间。

  5. 查看网络接口信息

    bash

    ifconfig
    

    或者使用 ip 命令:

    bash

    ip addr
    
  6. 查看系统负载

    bash

    uptime
    
  7. 查看系统启动时间

    bash

    who -b
    
  8. 查看系统运行时间和平均负载

    bash

    cat /proc/loadavg
    
  9. 查看系统硬件信息

    bash

    dmidecode
    
  10. 查看系统服务状态

    bash

    systemctl status
    

    你可以指定服务名来查看特定服务的状态。

  11. 查看系统版本和内核信息

    bash

    uname -a
    
  12. 查看系统分区信息

    bash

    fdisk -l
    
  13. 查看系统环境变量

    bash

    printenv
    
  14. 查看系统进程信息

    bash

    top
    

    或者使用 ps 命令:

    bash

    ps aux
    
  15. 查看系统防火墙状态

    bash

    firewall-cmd --state
    

这些命令为你提供了一个全面的服务器配置概览。根据你的需求,你可以选择使用这些命令中的一个或多个来获取所需的信息。如果你需要更详细的信息,可能需要使用特定的工具或命令。

资源监控

# 查看资源: top
# 查看内存: free -h
查看磁盘大小
sudo df -h
查看挂载点路径大小
sudo df -h /
查看centos7子目录大小
sudo du -sh /*
ps -ef命令
ps -ef|grep nginx

时间处理

[leouser@dev ~]$ timedatectl
      Local time: 三 2023-10-18 16:06:06 CST
  Universal time: 三 2023-10-18 08:06:06 UTC
        RTC time: 三 2023-10-18 08:06:05
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[leouser@dev ~]$ date
20231018日 星期三 16:07:23 CST

SHOW VARIABLES LIKE '%time_zone%';
system_time_zone	CST
time_zone	+08:00

端口查看

在 CentOS 7 中,你可以使用以下命令来查看端口的状态和监听情况:

  1. 查看所有打开的端口和对应的监听进程:
sudo netstat -tulnp
  1. 查看指定端口是否被占用:
sudo netstat -tulnp | grep <PORT>

请将 <PORT> 替换为你想要查看的具体端口号。

在上述命令中:

  • -t 表示显示 TCP 相关的端口信息。
  • -u 表示显示 UDP 相关的端口信息。
  • -l 表示仅显示处于监听状态的端口。
  • -n 表示以数字形式显示端口号,而不进行域名解析。
  • -p 表示显示端口对应的进程名称。

使用 sudo 是为了获取更详细的信息,因为查看端口需要管理员权限。

通过以上命令,你可以查看系统中当前所有打开的端口和对应的进程信息,以及指定端口是否被占用。

  • 使用ss命令: ss是Socket Statistics的缩写,它是一个工具,用于获取socket统计信息,它可以成为netstat的替代品。要检查特定端口,可以使用以下命令:
ss -tulnp | grep 端口号
  • 使用lsof命令: lsof(List Open Files)是一个查看当前系统打开文件的工具,也可以用来检查端口。使用以下命令来检查特定端口:
lsof -i :端口号
  • 使用telnet命令(仅限TCP端口): 如果您只是想测试远程系统上的TCP端口是否开放,可以使用telnet命令:
telnet IP地址 端口号
  • 使用nmap工具: nmap是一个网络扫描工具,可以用来发现设备上开放的网络端口。要检查远程设备上的端口,可以使用以下命令:
nmap -p 端口号 IP地址

​ 这将显示端口的状态(开放、关闭或过滤)。

查看JAVA应用

列出的Java进程信息中包含主类的全名。这里的-l选项表示长格式(long),它会显示Java进程的完整类名

jps -l
[root@leo-sys-dev sqlstudio]# jps -l
4753 org.elasticsearch.bootstrap.Elasticsearch
10146 /home/sqlstudio/Maicong-SQLStudio-1.8.0-release.jar
1224 org.logstash.Logstash
28825 /home/sys/server-lang/sys-server-lang.jar
11593 /home/sys/server/sys-server.jar
13211 sun.tools.jps.Jps

修改文件

如果你想要更安全的操作,可以考虑使用 rsync 命令,它提供了一种更智能的方式来同步文件夹内容,并且可以避免删除目标文件夹中不应该删除的文件:

# 使用 rsync 来同步文件夹内容,并且删除目标文件夹中多余的文件
rsync -av --delete /data/program/sys-front-backup/sys-front_20240516_143000/ /data/program/sys-front/

rsync 命令的 -a 参数表示归档模式,它保留了原始的文件权限、时间戳等信息,-v 参数表示详细模式,会显示复制过程中的信息,--delete 参数则表示删除目标文件夹中那些在源文件夹不存在的文件。使用 rsync 可以确保目标文件夹中只包含源文件夹中的内容,而不删除其他不应该删除的文件。

远程复制

  1. scp filename leouser@1.1.1.1:/dir/dir/

    这个命令用于将本地文件 filename 复制到远程服务器上。这里的远程服务器由用户 leouser 和 IP 地址 1.1.1.1 指定,文件将被复制到远程服务器上的 /dir/dir/ 目录中。

    • filename:要复制的本地文件的名称。
    • leouser@1.1.1.1:远程服务器的用户名和 IP 地址。
    • :/dir/dir/:远程服务器上的目的地目录。

    如果远程目录不存在,scp 命令可能会失败。如果 filename 包含路径,那么文件的相对路径也会被保留。

  2. scp -r dir leouser@1.1.1.1:/dir/dir/

    这个命令用于将本地目录 dir 递归地复制到远程服务器上。-r 选项表示递归复制,这对于复制整个目录结构非常有用。

    • -r:递归复制,用于目录复制。
    • dir:要复制的本地目录的名称。
    • leouser@1.1.1.1:远程服务器的用户名和 IP 地址。
    • :/dir/dir/:远程服务器上的目的地目录。

    使用 -r 选项时,scp 会复制目录以及目录内的所有文件和子目录。如果远程目录不存在,scp 会尝试创建它。

    确保有足够的权限来读取本地文件或目录,并且远程服务器上的用户 leouser 有权限写入目标目录 /dir/dir/

用户管理

创建用户
  1. 创建一个 Elasticsearch 用户:
bashCopy code
sudo useradd -d /path/to/elasticsearch -M -r -s /bin/bash elasticsearch
  1. 将 Elasticsearch 安装目录的所有权转移到这个新用户:
bashCopy code
sudo chown -R elasticsearch:elasticsearch /path/to/elasticsearch
  1. 切换到新创建的用户:
bashCopy code
sudo su - elasticsearch
  1. 进入 Elasticsearch 安装目录,运行 Elasticsearch 服务:
bashCopy codecd /path/to/elasticsearch
./bin/elasticsearch

这样,你就使用非root用户身份启动了 Elasticsearch 服务。确保 Elasticsearch 的安装目录和数据目录对新用户可读写,并根据需要配置 Elasticsearch 的配置文件。

同时,在启动 Elasticsearch 之前,最好检查一下 /path/to/elasticsearch/logs/elasticsearch.log 日志文件,查看是否有其他错误或警告信息,以便及时进行排查和处理。

查看用户
  1. 查看当前登录用户:
whoami
  1. 查看所有用户列表:
cat /etc/passwd

该命令会输出所有用户的信息,每行表示一个用户,包含用户名、用户 ID、组 ID、用户家目录和默认 Shell 等信息。

  1. 查看当前登录的所有用户:
who

该命令会列出当前登录的所有用户,并显示其用户名、登录终端、登录时间等信息。

  1. 查看当前登录用户的详细信息:
id

该命令会显示当前登录用户的详细信息,包括用户 ID、组 ID、附加组、家目录等。

  1. 查看当前登录用户的组信息:
groups

该命令会显示当前登录用户所属的组列表。

请注意,在使用这些命令时,可能需要使用管理员权限(如 sudoroot 用户)来查看所有用户列表和其他用户的详细信息。

查找命令

在 CentOS 7 中,你可以使用 find 命令来删除指定日期之前的文件。假设该文件位于 /path/to/files/ 目录下,下面是删除日期小于 2023-06-30 的文件的命令:

find /path/to/files/ -type f -name "elasticsearch-*.log.gz" ! -newermt "2023-06-30" -delete

解释一下上面的命令:

  • find /path/to/files/:在 /path/to/files/ 目录下查找文件。
  • -type f:限定查找的是普通文件,排除目录。
  • -name "elasticsearch-*.log.gz":匹配文件名为 elasticsearch-*.log.gz 的文件。
  • ! -newermt "2023-06-30":使用逻辑 NOT 条件 !,表示查找修改时间不是在 2023-06-30 之后的文件。
  • -delete:对查找到的文件执行删除操作。

在执行这个命令之前,建议先使用 find 命令的 -print 参数进行测试,看看是否能够正确找到要删除的文件。例如:

find /path/to/files/ -type f -name "elasticsearch-*.log.gz" ! -newermt "2023-06-30" -print

如果输出显示了你要删除的文件列表,确认无误后,再将 -delete 参数加入执行命令中。请务必谨慎执行删除操作,确保不会误删重要文件。

批量删除日志

find /home/leouser/logs -type f -name "dev-*" -exec rm -f {} \;

警告:使用 rm 命令删除文件是不可逆的,请确保你正确指定了文件名模式和路径,以避免误删除重要文件。在执行删除操作之前,你可以先用 echo 替换 rm 来确认哪些文件将被删除:

find /path/to/search -type f -name "dev-*" -exec echo {} \;
批量删除60天之前
find /home/leouser/logs -type f -name "prd-*" -mtime +30 -exec rm -f {} \;

警告:使用 rm 命令删除文件是不可逆的,请确保你正确指定了文件名模式和路径,以避免误删除重要文件。在执行删除操作之前,你可以先用 echo 替换 rm 来确认哪些文件将被删除:

find /home/leouser/logs -type f -name "prd-*" -mtime +30 -exec ls -l {} \;

ELK服务

ES服务

启动 Elasticsearch 服务

并使其在后台运行,可以按照以下步骤操作:

PS: Elasticsearch 官方不建议以root权限运行 Elasticsearch,因为这可能会导致安全风险和权限问题。

  1. 进入 Elasticsearch 安装目录: 在终端中使用 cd 命令进入 Elasticsearch 的安装目录。假设 Elasticsearch 安装在 /path/to/elasticsearch 目录下,那么可以输入以下命令:

    bashCopy code
    cd /path/to/elasticsearch
    
  2. 启动 Elasticsearch 服务: 使用 ./bin/elasticsearch 命令启动 Elasticsearch 服务。如果一切正常,你会在终端看到 Elasticsearch 的启动日志信息。例如:

    ./bin/elasticsearch
    

    如果 Elasticsearch 配置了自定义的配置文件,可以使用 -E 参数指定配置文件的路径,例如:

    ./bin/elasticsearch -Epath.conf=/path/to/config
    
  3. 后台运行: 默认情况下,终端中启动的 Elasticsearch 进程会占用当前终端窗口,并在该终端窗口中输出日志信息。如果你希望 Elasticsearch 在后台运行,可以使用以下两种方法:

    a. 使用 & 符号: 在启动 Elasticsearch 命令的末尾加上 & 符号,表示将进程置于后台运行。例如:

    ./bin/elasticsearch &
    

    这样,Elasticsearch 将在后台运行,且终端仍然可用于其他命令。

    b. 使用 nohup 命令: 使用 nohup 命令可以使 Elasticsearch 在后台运行,并将输出日志重定向到一个文件中,这样即使终端关闭,Elasticsearch 也会继续运行。例如:

    nohup ./bin/elasticsearch &
    

    默认情况下,日志输出会保存在 nohup.out 文件中。如果希望自定义日志输出文件,可以使用以下命令:

    nohup ./bin/elasticsearch > /path/to/elasticsearch.log 2>&1 &
    

    选择其中一种方法将 Elasticsearch 启动并后台运行,根据需要选择合适的方式。注意,无论哪种方式,Elasticsearch 进程都会在后台运行,你可以通过查看日志文件来监视 Elasticsearch 的运行状态。

ELK日志处理

# 日志目录 /home/elk/elasticsearch-7.17.5/logs
cd /home/elk/elasticsearch-7.17.5/logs

多条件匹配日志内容

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "message": "slow sql"
          }
        },
        {
          "match": {
            "message": "label_no"
          }
        }
      ]
    }
  }
}

优化建议

#如何优化ES采集数据导致索引时间与日志实现不同问题,能使用日志时间[2023-12-30 14:13:17.067]作为索引时间

Dec 30, 2023 @ 14:13:17.866	[2023-12-30 14:13:17.067] [http-nio-10001-exec-4] DEBUG c.e.w.s.m.S.updateLabel - [debug,135] - <==    Updates: 1
Dec 30, 2023 @ 14:13:17.866	[2023-12-30 14:13:16.938] [http-nio-10001-exec-4] DEBUG c.e.w.s.m.S.getMinMoveNoByLabelId - [debug,135] - <==      Total: 1
批量删除

在 CentOS 7 中,你可以使用 find 命令来查找并删除一个月前的日志文件。find 命令可以根据文件的修改时间(mtime)来查找文件,然后使用 -exec 选项来执行删除操作。

下面是一个示例命令,它会查找并删除所有在 30 天前修改的 .json.gz.log.gz 文件:

find /home/elk/elasticsearch-7.17.5/logs -type f \( -name "*.json.gz" -o -name "*.log.gz" \) -mtime +30 -exec rm -f {} \;

在这个命令中:

  • /path/to/logs 是日志文件的路径,你需要将其替换为实际的路径。
  • -type f 表示只查找文件。
  • -name "*.json.gz" -o -name "*.log.gz" 表示查找以 .json.gz.log.gz 结尾的文件。
  • -mtime +30 表示查找在 30 天前修改的文件。
  • -exec rm -f {} \; 表示对每个找到的文件执行 rm -f 命令,删除这个文件。

请注意,这个命令会立即删除找到的文件,不会有任何提示或确认。在运行这个命令之前,请确保你已经备份了所有重要的数据。

ELK索引处理

进入kibana页面处理索引管理 - Elastic

MYSQL服务命令

# 使用root用户访问数据库,并在test库中执行下面的SQL
# 请注意,以root用户身份访问数据库可能存在安全风险,请谨慎操作。

# 步骤一:使用root用户登录数据库
mysql -u root -p

# 步骤二:输入root用户的密码进行登录

# 步骤三:切换到test数据库
use test;

# 步骤四:执行所需的SQL语句
SELECT * FROM your_table;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值