项目作业2
1.用命令抓取出系统内存使用量排在前5的进程的pid
2.按照要求部署环境
公司IDC机房新到20台Linux服务器这些服务器的网卡名称均为: ens3
IDC闲置ip资源为: 172.25.254.50/24到172.25.254.70/24
IDC机房公用网关: 172.25.254.250
IDC机房公用dns : 172.25.254.251
假设管理员当前拥有一台已经安装好的Linux虚拟机两卡名称为ens10,
请使用这台虚拟机下载并配置相应软件来使新到的20台服务器可以自动连接网络
1、抓取系统内存使用量排在前5的进程的pid
ps #进程查看
#ps 命令的三种执行风格 unix bsd GNU
#a 与终端相关的进程(当用户登陆系统后产生的进程都是带终端的)
#x 与终端无关相关的进程
#u 用户信息归类的查看方式
#f 进程层级关系
#o 显示指定参数 pid comm nice pri pcpu ppid stat,user,group ##-e 显示所有进程
#-f 显示信息的完整格式
#-H 显示进程的层级结构
#-o 显示指定参数
#--sort= #
#ps ax显示信息如下:
#PID 进程id
#TTY 进程用到的终端
#STAT 进程状态
#TIME 进程占用cpu时长
#COMMAND 进程名称
#ps aux显示信息如下:
#USER 进程所有人
#PID 进程id
#%CPU 进程使用cpu的用量
#%MEM 进程所用到的内存用量
#VSZ 进程使用的虚拟内存大小
#RSS 进程常驻内存中的数据大小
#TTY 进程用到的终端
#STAT 进程状态
#START 进程运行时长
#TIME 进程占用cpu时长
#COMMAND 进程名称
这里我们用head 显示文件的前n行 (默认前十行)我们想要第一列排在前五个的pid 但是会发现head是按着行数来排序的实际并不准确
所以我们采取awk命令取第一列第二到六行(排除PID本身)
sort 正向排序
-%mem 按照内存使用量降序
[root@localhost ~]# ps -ax --sort=-%mem|awk 'NR==2,NR==6{print $1}'
2896
2420
3154
2783
4100
部署环境
1、更改网卡名为ens3
可以看到现在的网卡名称和设备名称都是ens160
所以我们先添加一块网卡叫做ens3,使用实际存在的设备device: ens160
PS:开始没理解清楚题意,想要修改设备名,皆以失败告终(网卡设备名称是一开始就确定的)
到redhat8 我们采用nmcli命令来管理网卡
这里添加了一块以太网类型(Type),网卡名(con-name)ens3,设备名(ifname)为ens160的网卡
nmcli connection add type ethernet con-name ens3 ifname ens160
这里ens160网卡的网卡名和主机名都是ens160
可以看到ens3网卡添加成功了,但是没有想象中的ens160没有和他连接(被ens160使用着),所以我们先把ens160网卡给删除,再查看一遍,ens3终于是得到自己的意中人了(使用设备ens160)
[root@localhost network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 7ed162e9-f30f-4ef8-9c73-57dd84631a70 ethernet ens160
virbr0 52433b22-f7f9-4ae7-ad75-8b0bb18ac2b6 bridge virbr0
ens3 9c962528-04bd-48c1-88c5-12149fe04cf8 ethernet --
[root@localhost network-scripts]# nmcli connection delete ens160
Connection 'ens160' (7ed162e9-f30f-4ef8-9c73-57dd84631a70) successfully deleted.
[root@localhost network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens3 9c962528-04bd-48c1-88c5-12149fe04cf8 ethernet ens160
virbr0 52433b22-f7f9-4ae7-ad75-8b0bb18ac2b6 bridge virbr0
查看设备状态
[root@localhost network-scripts]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens3
virbr0 bridge disconnected --
lo loopback unmanaged --
virbr0-nic tun unmanaged --
到这里我们网卡名称就成功改成了ens3
同理更改已安装的虚拟机网卡名称为ens10,但是这里是显示是黄色,避免有影响
systemctl restart NetworkManager #重启一下网络服务,发现好了
PS:这里修改好了后 配置文件会自动同步更改
2、 网关、路由器、dns概念
具有内核路由功能多网卡的设备叫做路由器
路由器上和用户ip网络位相同的IP地址是此用户的网关
前期环境准备
这里用一张图片加以解释
再添加一块网卡
通过 nmcli device show 可以看到新网卡设备名称为ens192,那我们就用这个ens192作为设备名
因为此时网卡没有连接,我们需要手动把网卡起来,这里采用编辑配置文件的方式
[root@localhost network-scripts]# ll
total 4
-rw-r--r-- 1 root root 281 Dec 7 22:08 ifcfg-ens10
[root@localhost network-scripts]# cp ifcfg-ens10 ifcfg-westos ##复制ens10的配置给到新的网卡叫做ifcfg-westos
[root@localhost network-scripts]# ll
total 8
-rw-r--r-- 1 root root 281 Dec 7 22:08 ifcfg-ens10
-rw-r--r-- 1 root root 281 Dec 7 23:19 ifcfg-westos
[root@localhost network-scripts]# vim ifcfg-westos
[root@localhost network-scripts]# cat ifcfg-westos
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=westos
DEVICE=ens192
ONBOOT=yes
#接着重启一下网络服务,发现有地址了
systemctl restart NetworkManager
===============================================
或者用
[root@localhost network-scripts]#
nmcli connection add con-name westos ifname ens192 ipv4.method manual ipv4.addresses 172.25.254.58/24 type ethernet
[root@localhost network-scripts]# nmcli connection reload
[root@localhost network-scripts]# nmcli connection up westos #(west为我们设定的网卡名称)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@localhost network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens10 5f2cba77-e226-4093-909f-b6121cc525c4 ethernet ens160
westos 28d780fa-f363-9493-5711-145570ed1b0c ethernet ens192
网卡添加成功就可以继续做测试了,我们知道不同主机位的设备是不能直接通信的,这时就体现了网关的作用
添加网关,并使之立即永久生效
这样我们就成功添加172.25.254.50为ens3的网关了
[root@localhost sysconfig]# pwd
/etc/sysconfig
[root@localhost sysconfig]# cat network
# Created by anaconda
GATEWAY=172.25.254.50
[root@localhost sysconfig]# nmcli connection reload
[root@localhost sysconfig]# nmcli connection up ens3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@localhost sysconfig]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.50 0.0.0.0 UG 100 0 0 ens160
172.25.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens160
ping192.168.43.93也可以通了
如何添加路由功能呢
firewall-cmd --permanent --add-masquerade
firewall-cmd --permanent reload
dns概念
dns包括正向解析和反向解析 可以把域名解析成IP地址(这种比较多),也可以把IP地址解析成域名
从用户上网输入域名到得到网页回应这个过程来看
PS:搭建过程中有出现网卡 unmanaged的情况
在linux中,有些IP地址知道所有的域名解析(如8.8.8.8),我们如果在 /etc/resolve.conf 配置此IP地址
nameserver 8.8.8.8
就可以实现输入域名自动解析成地址了
到这里我们除了自动让20台主机自动连接上网,其余步骤都完成了
下载软件并配置文件
在主机中使用镜像找到dhcp-server的安装包
[root@localhost network-scripts]# cd /run/media/root/RHEL-8-1-0-BaseOS-x86_64/ #如不是root用户登录(或是su - root 登录)路径可能为/run/media/登录用户/RHEL-8-1-0-BaseOS-x86_64/
[root@localhost network-scripts]# cd BaseOS/
[root@localhost network-scripts]# cd Packages/
rpm -ivh dhcp-server-4.3.6-34.el8.x86_64.rpm
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf ##用模板生成配置文件
可以看到配置文件初始是没有内容的
vim /etc/dhcp/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
option domain-name "westos.org";
option domain-name-servers 172.25.254.251;
default-lease-time 600;
max-lease-time 7200;
# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
#subnet 10.152.187.0 netmask 255.255.255.0 {
#}
# This is a very basic subnet declaration.
subnet 172.25.254.0 netmask 255.255.255.0 { ##子网设定
range 172.25.254.50 172.25.254.70; ##IP地址池
option routers 172.25.254.250; ##网关
}
PS:
35行后面全删除
成功启动dhcp服务,对于172.25.254网段可以实现网络管理了。
作为测试
修改node1(被管理节点)网络配置文件为dhcp模式 修改之前为172.25.254网段
[root@localhost network-scripts]# cat ifcfg-ens3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens3
UUID=cbf88bf3-e2e3-4083-a5b0-2df2f4c9c31d
DEVICE=ens160
ONBOOT=yes
接着重启一下网卡会发现网关、IP地址、dns都会按着dhcp配置的来
PS:连接wifi网络的可能会被wifi调控,重启几次或者更改一下网络环境就可以了
nmcli connection reload
nmcli connection up ens3
在搭建过程中出现了 网卡unmanaged的情况
”Connection ‘ens33‘ is not available on device ens33 because device is strictly unmanaged
可参考链接解决:https://blog.csdn.net/witton/article/details/109312331