前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

Linux下获取服务器基本配置信息(linux获取服务器ip命令)

qiguaw 2024-09-06 21:08:47 资源文章 23 ℃ 0 评论

操作系统基本配置查询

1、查看操作系统版本

#cat /etc/redhat-release这个命令主要是查看红帽发行的操作系统的版本号
[root@node5 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
#cat /etc/issue这个命令适用于大多数linux发行版
[root@node5 ~]# cat /etc/issue
\S
Kernel \r on an \m

2、查看操作系统内核版本

[root@node5 ~]# uname -r
3.10.0-693.el7.x86_64

3、查看操作系统详细信息

[root@node5 ~]# uname -a
Linux node5 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
#从上面这段输出可以看出,该服务器主机名是node5,linux内核版本是3.10.0-693.el7.x86_64,CPU是x86架构


#该命令可以查看更多信息
[root@node5 ~]# more /etc/*release 
::::::::::::::
/etc/centos-release
::::::::::::::
CentOS Linux release 7.4.1708 (Core) 
::::::::::::::
/etc/os-release
::::::::::::::
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"


CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"


::::::::::::::
/etc/redhat-release
::::::::::::::
CentOS Linux release 7.4.1708 (Core) 
::::::::::::::
/etc/system-release
::::::::::::::
CentOS Linux release 7.4.1708 (Core)

CPU基本配置查询

名词解释

名词含义CPU物理个数主板上实际插入的cpu数量CPU核心数单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)逻辑CPU数/线程数一般情况下,逻辑cpu=物理CPU个数×每颗核数,如果不相等的话,则表示服务器的CPU支持超线程技术

1、查看 CPU 物理个数

[root@node5 ~]# grep 'physical id' /proc/cpuinfo | sort -u | wc -l
1

2、查看 CPU 核心数量

[root@node5 ~]# grep 'core id' /proc/cpuinfo | sort -u | wc -l
4

3、查看 CPU 线程数

#逻辑cpu数:一般情况下,逻辑cpu=物理CPU个数×每颗核数,如果不相等的话,则表示服务器的CPU支持超线程技术(HT:简单来说,它可使处理#器中的1 颗内核如2 颗内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻#辑cpu=物理CPU个数×每颗核数x2)
[root@node5 ~]# cat /proc/cpuinfo| grep "processor"|wc -l
4
[root@node5 ~]# grep 'processor' /proc/cpuinfo | sort -u | wc -l
4

4、查看 CPU 型号

[root@node5 ~]# cat /proc/cpuinfo | grep name | sort | uniq
model name  : Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
[root@node5 ~]# dmidecode -s processor-version | uniq   #使用uniq进行去重
Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz

5、查看 CPU 的详细信息

#CPU有几个核,就会输出几个重复的信息
[root@node5 ~]# cat /proc/cpuinfo
processor  : 0
vendor_id  : GenuineIntel
cpu family  : 6
model    : 142
model name  : Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
stepping  : 10
microcode  : 0x96
cpu MHz    : 2000.921
cache size  : 8192 KB
physical id  : 0
siblings  : 4
core id    : 0
cpu cores  : 4
apicid    : 0
initial apicid  : 0
fpu    : yes
fpu_exception  : yes
cpuid level  : 22
wp    : yes
flags    : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat
bogomips  : 4002.00
clflush size  : 64
cache_alignment  : 64
address sizes  : 43 bits physical, 48 bits virtual
power management:

6、查看CPU的详细信息

[root@node5 ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 142
Model name:            Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
Stepping:              10
CPU MHz:               2000.921
BogoMIPS:              4002.00
Virtualization:        VT-x
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat

CPU配置总结

通过以上的查询,我们可以知道该服务器是1路4核的CPU ,CPU型号是Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz,该CPU没有超线程。

内存基本配置查询

名词解释

名词含义Mem内存的使用情况总览表Swap虚拟内存。即可以把数据存放在硬盘上的数据,当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN。当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。shared共享内存,即和普通用户共享的物理内存值, 主要用于进程间通信buffers用于存放要输出到disk(块设备)的数据的cached存放从disk上读出的数据total总的物理内存,total=used+freeused使用掉的内存free空闲的内存

1、查询服务器内存

[root@node5 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3941         286        3446          19         208        3407
Swap:          2047           0        2047


#注释
#linux的内存管理机制的思想包括(不敢说就是)内存利用率最大化。内核会把剩余的内存申请为cached,而cached不属于free范畴。当系统运#行时间较久,会发现cached很大,对于有频繁文件读写操作的系统,这种现象会更加明显。直观的看,此时free的内存会非常小,但并不代表可##用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以#对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。
#对于操作系统:
#MemFree=total-used
#MemUsed  = MemTotal - MemFree
#对于应用程序:
#MemFree=buffers+cached+free

2、每隔3秒查询一下内存

[root@node5 ~]# free -s 3
              total        used        free      shared  buff/cache   available
Mem:        4036316      361144     3458272       19536      216900     3419776
Swap:       2097148           0     2097148


              total        used        free      shared  buff/cache   available
Mem:        4036316      361144     3458272       19536      216900     3419776
Swap:       2097148           0     2097148


              total        used        free      shared  buff/cache   available
Mem:        4036316      361144     3458272       19536      216900     3419776
Swap:       2097148           0     2097148

硬盘基本配置查询

1、查询磁盘整体使用情况

[root@node5 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  4.1G   13G  24% /
devtmpfs                 2.0G     0  2.0G   0% /dev
tmpfs                    2.0G  8.0K  2.0G   1% /dev/shm
tmpfs                    2.0G  8.7M  2.0G   1% /run
tmpfs                    2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1               1014M  125M  890M  13% /boot
tmpfs                    395M     0  395M   0% /run/user/0
#命令拓展
#df -a 显示全部的文件系统的使用情况
#df -i显示inode信息
#df -k 已字节数显示区块占用情况
#df -T 显示文件系统的类型

2、查询某个目录磁盘占用情况

#命令拓展
#du -s 指定目录大小汇总
#du -h带计量单位
#du -a 含文件
#du --max-depth=1 子目录深度
#du -c 列出明细的同时,增加汇总值
[root@node5 ~]# du -sh /home/
1.7G  /home/


[root@node5 ~]# du -ach --max-depth=2 /home/
4.0K  /home/www/.bash_logout
4.0K  /home/www/.bash_profile
4.0K  /home/www/.bashrc
4.0K  /home/www/web
16K  /home/www
4.0K  /home/nginx/.bash_logout
4.0K  /home/nginx/.bash_profile
4.0K  /home/nginx/.bashrc
12K  /home/nginx
4.0K  /home/esnode/.bash_logout
4.0K  /home/esnode/.bash_profile
4.0K  /home/esnode/.bashrc
4.0K  /home/esnode/.oracle_jre_usage
4.3M  /home/esnode/elasticsearch-analysis-ik-6.2.2.zip
80M  /home/esnode/kibana-6.2.2-linux-x86_64.tar.gz
300M  /home/esnode/x-pack-6.2.2.zip
28M  /home/esnode/elasticsearch-6.2.2.tar.gz
4.0K  /home/esnode/.bash_history
294M  /home/esnode/elasticsearch-6.2.2
4.0K  /home/esnode/.ssh
4.0K  /home/esnode/x-pack生成的秘钥.txt
1014M  /home/esnode/kibana-6.2.2-linux-x86_64
8.0K  /home/esnode/.viminfo
1.7G  /home/esnode
1.7G  /home/
1.7G  total

3、查看目录结构

#tree命令默认没有安装,需要手动安装一下
[root@node5 ~]# yum -y install tree
#-L指定目录深度
[root@node5 ~]# tree -L 2 /home/
/home/
├── esnode
│   ├── elasticsearch-6.2.2
│   ├── elasticsearch-6.2.2.tar.gz
│   ├── elasticsearch-analysis-ik-6.2.2.zip
│   ├── kibana-6.2.2-linux-x86_64
│   ├── kibana-6.2.2-linux-x86_64.tar.gz
│   ├── x-pack-6.2.2.zip
│   └── x-pack\347\224\237\346\210\220\347\232\204\347\247\230\351\222\245.txt
├── nginx
└── www
    └── web


6 directories, 5 files

4、以树状的格式显示所有可用的块设备信息

[root@node5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
└─sdb1            8:17   0  200M  0 part 
sr0              11:0    1 1024M  0 rom


#注释
#NAME —— 设备的名称
#MAJ:MIN —— Linux 操作系统中的每个设备都以一个文件表示,对块(磁盘)设备来说,这里用主次设备编号来描述设备。
#RM —— 可移动设备。如果这是一个可移动设备将显示 1,否则显示 0。
#TYPE —— 设备的类型
#MOUNTPOINT —— 设备挂载的位置
#RO —— 对于只读文件系统,这里会显示 1,否则显示 0。
#SIZE —— 设备的容量

5、列出所有可用的设备、通用唯一识别码(UUID)、文件系统类型以及卷标

[root@node5 ~]# blkid
/dev/sda1: UUID="6503b4ad-2975-4152-a824-feb7bea1b622" TYPE="xfs" 
/dev/sda2: UUID="nqZ4uJ-ksnN-KzYS-N42b-00m3-Ohc2-BJXunP" TYPE="LVM2_member" 
/dev/sdb1: UUID="94396e17-4821-4957-aa76-d41f33958ff5" TYPE="xfs" 
/dev/mapper/centos-root: UUID="c1d38b37-821d-48e7-8727-3937ccc657a4" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="c2fcaf11-42d8-4e4c-bf9e-6464f0777198" TYPE="swap"

服务器之间如何传输数据---scp

准备工作

在两台服务器设备间传输数据,首先保证两台设备都是联网的,至少有一台能连外网,得到两台设备的IP地址,这里注意,如果是192.168.1.XXX,这是内网IP,只能通过这台设备上传和下载。另外就是两台服务器的账号密码。这样就可以了。
假设一台设备IP为:123.tongyuangene.com
另一台设备IP为:1t.tongyuangene.com
要传输文件为
/ifs1/Database/nt_makeblastdb/nt 这个文件。

scp命令

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。scp可以通过ssh传输也可以通过ftp传输。上面的那个例子可以这样来操作:

scp的语法其实很简单,主要注意里面的“@”与“:”。

  • 第一部分:scp -r :如果传输是文件夹需要加-r,传输单个文件可以不加;
  • 第二部分:要上传的文件或者文件夹;
  • 第三部分:另一台设备的用户名和IP地址,用@符号连接;
  • 第四部分:冒号“:”,另一台设别上存储文件的路径。

等待验证,第一次会问是否继续连接,输入yes即可。然后输入密码即可开始上传数据。

数据下载也是同样的步骤,只需要将路径替换一下顺序即可。

注意最后面的传输到本地的路径,一个点,表示数据存储在当前目录下。

SCP的选项参数

scp的选项参数不多,主要使用的就是-r。
-1:强制scp命令使用协议ssh1
-2:强制scp命令使用协议ssh2
-4:强制scp命令只使用IPv4寻址
-6:强制scp命令只使用IPv6寻址
-B:使用批处理模式(传输过程中不询问传输口令或短语)
-C:允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q:不显示传输进度条。
-r:递归复制整个目录。
-v:详细方式显示输出。
-c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file:从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit:限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option:如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program:指定加密传输时所使用的程序。

负载均衡常用的手段

1.负载均衡

负载均衡:将负载(大量请求)均匀的、平衡的分摊到多个服务节点上进行处理。

实现负载均衡有很多种手段,例如:DNS、硬件负载均衡设备、Nginx反向代理、LVS。

1.1.DNS

DNS:Domain Name System,域名系统,更加专业的名字为域名解析系统。

域名解析系统部署在DNS服务器上,提供域名解析服务。

简单来说,域名解析就是将一个域名解析成多个ip地址。

如下图是通过某个域名解析网站对www.baidu.com的解析结果:

最早的负载均衡就是利用搭建本地DNS服务器实现的,实现方式简单易懂,为同一个主机名分配多个映射 ,可采用轮循,随机等方式分配请求。

作为负载均衡的缺点

DNS中有缓存,但是如果机器出现故障,缓存不能及时更新。

此时,如果访问域名,返回的IP可能是一个正在故障的IP地址,最终导致所有访问该IP的请求都发送故障。

1.2.F5

硬件负载均衡设备又叫负载均衡器(Load Balancer),通常作为独立硬件存在。

负载均衡设备拥有非常好的负载均衡性能,他拥有众多的负载均衡策略(权重,动态比率,最快模式,最小连接数等),可以保证以相对较优的方式分配请求。

常见的负载均衡器有:F5BIGIP。

一台负载均衡器的售价往往高达十几万甚至几十万,许多企业并不愿意为它买单。

1.3.Nginx反向代理

反向代理:服务器根据客户端的请求,从其关联的一组或多组后端服务器上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。

可以通过Nginx服务器的反向代理功能实现负载均衡。

为什么叫反向代理呢?与正向代理有什么区别呢?可以通过下面的描述简单理解:

代理访问网络有三个角色:客户端、代理、服务器。

正向代理举例:翻墙软件。反向代理举例:Nginx负载均衡。

无论正向还是反向,代理访问网络的基本流程:客户端—>代理—>服务器。

两者关键区别:代理服务器的代理对象。

正向代理中的代理是代替客户端去访问服务器。

反向代理中的代理是代替服务器去应对客户端的访问。

下面用一张图来简单描述两者区别:

1.4.LVS

LVS是章文嵩博士在1998年5月成立的自由软件项目,现在已经是Linux内核的一部分。

LVS实现负载均衡有多种,下面就其中的NAT和DR两种方式进行简单的描述。

更多关于LVS的内容请自行了解。

NAT

客户端发出用户请求。此时,请求报文的源IP为CIP,目标IP为VIP。

请求报文到达LVS,LVS修改数据包的目标IP为RIP。此时,请求的报文源IP为CIP,目标IP为RIP。

请求报文根据目标IP=RIP发送到后端服务器。

服务器处理完请求逻辑,开始构建响应报文回复给LVS。此时,请求的报文源IP为RIP,目标IP为CIP。

响应报文到达LVS,LVS修改数据包的源IP为VIP。此时,请求的报文源IP为VIP,目标IP为CIP。

响应报文返回至客户端。

DR

客户端发出用户请求。此时,请求报文的源IP为CIP,目标IP为VIP。

请求报文到达LVS,LVS将数据包的源MAC修改为DIPMAC,目标MAC修改为RIPMAC。此时,请求的报文源IP为CIP,目标IP为VIP。

请求报文根据目标MAC=RIPMAC发送到后端服务器。

服务器处理完请求逻辑,开始构建响应报文回复给客户端。此时,请求的报文源IP为VIP,目标IP为CIP。

响应报文通过虚拟网络接口lo传送至物理网络接口eth0之后发出,最终返回至客户端。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表