使用ssh服务器管理远程主机

 前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 

目录

一、配置网卡服务

1、配置网卡参数

2、创建网络会话

3、绑定两块网卡

二、远程控制服务

1、配置sshd服务

2、在Windows连接

3、安全密钥验证

4、远程传输命令

三、不间断会话服务-tmux工具

1、管理远程会话

2、管理多窗格

3、会话共享功能

四、检索日志信息

1、journalctl命令

致谢


一、配置网卡服务

1、配置网卡参数

1.1、nmtui命令

 [root@linux ~]# nmtui

选中配置网卡按钮并按下回车键:

在RHEL 5、RHEL 6系统及其他早期Linux系统中,网卡的名称一直都是eth0,eth1,eth2等命名;在RHEL 7中则变成类似于eno167777736、eno33554968这样的;而RHEL 8系统最新的名称是ens 160、ens 192等等诸如此类;

选中要配置的网卡名称,然后按下编辑按钮

把网卡IPv4的配置方式改成手动模式:

按下显示详细信息按钮:

现在,在服务器主机的网络信息中填写IP地址192.168.10.10/24。24代表子网掩码中前24位为网络号,后8位是主机号,和写成255.255.255.0的效果一样。网关、DNS信息暂可不必填写,有用到时会继续编辑网卡文件

单击OK按钮保存配置

单击Back按钮结束配置工作

至此,在Linux系统中配置网络的步骤就结束了

发现,有时候在安装REHL 8系统时默认没有激活网卡。只需要用Vim编辑器将网卡配置文件中的ONBOOT参数修改成yes,这样在系统重启后网卡就被激活了

 [root@linux ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesONBOOT=yes...

修改完Linux系统中的服务配置文件后,并不会对服务程序立即生效。手动重启相应的服务:

 [root@linux ~]# nmcli connection reload ens160[root@linux ~]# nmcli connection up ens160...[root@linux ~]# ping 192.168.10.10...成功...

2、创建网络会话

1、nmcli命令

HREL和CentOS系统默认使用NetWorkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用nmcli命令来管理NetWorkManager服务程序。nmcli是一款基于命令行的网络配置工具;

 [root@linux ~]# nmcli connection show NAME          UUID                                  TYPE      DEVICE  System ens33  c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33   docker0       fe26450a-2d8b-42a4-b68f-3c0b86d1ba73  bridge    docker0​[root@linux ~]# nmcli connection show System\ ens33 connection.id:                          System ens33connection.uuid:                        c96bc909-188e-ec64-3a96-6a90982b08adconnection.stable-id:                   --...

另外,RHEL 8系统支持网络会话功能,允许用户在多个配置文件中快速切换(类似firewalld防火墙服务中的区域技术)。只需要在不同的环境中激活相应的网络会话,皆可以实现网络配置信息的自动切换

使用nmcli命令并按照"connection add con-name type ifname"的格式来创建网络会话。

 # 创建一个网络会话:'company';ifname参数指定本机的网卡名称;autoconnect to参数设置该网络会话默认不被自动激活;ip4和gw4参数手动指定网络的IP地址[root@linux ~]# nmcli connection add con-name company ifname ens33 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1Connection 'company'(...) successfully added​# 再创建一个家庭所使用网络会话:'house';因为要从外部DHCP服务器自动获得IP,所以这里不需要手动指定[root@linux ~]# nmcli connection add con-name house type ethernet ifname ens33Connection 'house'(...) successfully added

创建成功后,可以使用nmcli命令查看创建的所有网络会话

 [root@linux ~]# nmcli connection showNAME          UUID                                  TYPE      DEVICE  System ens33  c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33   docker0       fe26450a-2d8b-42a4-b68f-3c0b86d1ba73  bridge    docker0 company       54902e3d-3d5d-42e0-a080-6047e8669c3c  ethernet  --      house         5aa92b65-1b98-424a-acbd-b11310a2d71d  ethernet  --

使用nmcli命令配置过的网络会话是永久生效的,这样当上班后,顺手company会话,网卡信息就自动配置好了

[root@linux ~]# nmcli connection up company
...
[root@linux ~]# ifconfig

注意,以上为桥接模式,请把虚拟机的网络适配器切换成桥接模式;

后续不需要网卡会话了,直接用delete删除:

 [root@linux ~]# nmcli connection delete house Connection 'house' (5aa92b65-1b98-424a-acbd-b11310a2d71d) successfully deleted.[root@linux ~]# nmcli connection delete company Connection 'company' (54902e3d-3d5d-42e0-a080-6047e8669c3c) successfully deleted.

3、绑定两块网卡

一般来讲,生产环境必须提供7*24小时的网络传输服务;绑卡技术不仅能够提高网络传输速度,还可以确保在其中一块网卡出现故障时,依然可以正常提供网络服务。

在虚拟机系统中再添加一块网卡设备,确保两块网卡都处于同一种网络连接模式中;处于相同模式的网卡设备才被允许进行网卡绑定,否则这两块网卡无法互相传送数据。

这次使用nmcli命令来配置网卡设备参数;网卡绑定的理论知识类似于RAID硬盘组,需要对参与绑定网卡设备逐个进行“初始设置”。注意:这些原本独立的网卡设备此时需要被配置成为一块"从属"网卡,服务于"主"网卡,不应该再有自己的IP地址等信息。进行初始设置后,就可以支持网卡绑定:

1、创建出一个bond网卡

首先创建一个bond网卡,命令与参数的意思是创建了一个类型为bond(绑定)、名称为bond0、网卡名为bond0的绑定设备,模式为balance-rr:

 [root@linux ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=balance-rr" Connection 'bond0' (2452b80d-7487-403d-847c-7c1b3cc19dd6) successfully added.

这里使用的balance-rr网卡绑定模式,rr是round-robin的缩写。它的特点是会根据设备顺序依次传输数据包,提供负载均衡的效果,让宽带变得更大,一旦某个网卡故障马上切换到另外一台设备上,保证网络传输不被中断。

而active-backup网卡绑定模式也比较常用,特点是平时只有一块网卡正常工作,另一个设备待命,一旦出现损坏时自动顶替上去。

2、向bond0添加从属网卡

刚刚创建的bond0仅仅是个名称,接下来把ens33和ens192网卡添加进去。"con-name"参数后面接的是从属网卡名称,可以随时设置,而"ifname"参数后面接的是两块网卡名称

 [root@linux ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens33 master bond0​[root@linux ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens160 master bond0

3、配置bond0设备的网卡信息

下面使用nmcli命令依此配置网卡的IP地址及子网掩码、网关、DNS、搜索域和手动配置等参数;不习惯可编辑网卡配置文件或nmtui方式完成:

 [root@linux ~]# nmcli connection modify bond0 ipv4.address 192.168.10.10/24[root@linux ~]# nmcli connection modify bond0 ipv4.gateway 192.168.10.10[root@linux ~]# nmcli connection modify bond0 ipv4.dns 114.114.114.114[root@linux ~]# nmcli connection modify bond0 ipv4.dns-search baidu.com[root@linux ~]# nmcli connection modify bond0 ipv4.method manual

4、启动

 [root@linux ~]# nmcli device statusDEVICE   TYPE      STATE                   CONNECTION    ens33    ethernet  connected               System ens33  ens37    ethernet  connected               System ens160 bond0    bond      connected               bond0         docker0  bridge    connected (externally)  docker0       lo       loopback  unmanaged               --   [root@linux ~]# nmcli connection up bond0Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)[root@linux ~]# nmcli device statusDEVICE   TYPE      STATE                   CONNECTION    ens33    ethernet  connected               System ens33  ens37    ethernet  connected               System ens160 bond0    bond      connected               bond0         docker0  bridge    connected (externally)  docker0       lo       loopback  unmanaged               --   

当访问192.168.10.10这个主机IP地址的时候,实际上是由两块网卡设备在共同提供服务。接下来随机移除一块网卡设备;可以非常清晰地看到网卡切换的过程,然后另一块网卡会继续为用户提供服务

二、远程控制服务

1、配置sshd服务

SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。在此之前一般使用FTP或Telnet来进行远程登录(不安全)。

要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅方便还提供两种安全验证方法:

  • 基于口令的验证—用账户密码来验证登录
  • 基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较

sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。运维人员一般会把保存着最主要的配置信息的文件称为主配置文件,而配置文件中有许多以#号开头的注释行,要想要这些配置参数生效,需要在修改参数后再去掉前面的#号。sshd服务配置文件中包含的重要参数如下:

参数作用
Port 22默认的sshd服务端口
ListenAddress 0.0.0.0设定sshd服务器监听的IP地址
Protocol 2SSH协议的版本号
HostKey /tc/ssh//ssh_host_keySSH协议版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_keySSH协议版本为2时,RSA私钥存放的位置
HostKey /etc/ssh/ssh_host_dsa_keySSH协议版本为2时,DSA私钥存放的位置
PermitRootLogin yes设定是否允许root管理员直接登录
StrictModes yes当远程用户的私钥改变时直接拒绝连接
MaxAuth Tries 6最大密码尝试次数
MaxSession 10最大终端数
PasswordAuthentication yes是否允许密码验证
PermitEmptyPasswords no是否允许空密码登录(不安全)

使用两台虚拟机实验:

主机地址操作系统作用
10.0.0.2Linux服务器
10.0.0.3Linux客户端

在RHEL 8系统中,已经默认安装并启用了sshd服务程序;在客户端使用ssh命令进行远程连接服务器;退出登录执行exit命令、第一次访问需要输入yes来确认对方主机的指纹信息:

 [root@localhost ~]# ssh 10.0.0.2The authenticity of host '10.0.0.2 (10.0.0.2)' can't be established.ECDSA key fingerprint is SHA256:gRxmqm6W3F/y+4CJZzPH8QRh8vs2eQqISy2rmsf34Fw.ECDSA key fingerprint is MD5:2b:8b:63:36:e7:b2:f2:67:83:e0:1d:02:8e:fa:0d:fb.Are you sure you want to continue connecting (yes/no)? yroot@10.0.0.2's password:   # 此处输入服务器管理员密码Activate the web console with: systemctl enable --now cockpit.socket​Register this system with Red Hat Insights: insights-client --registerCreate an account or view all your systems at https://red.ht/insights-dashboardLast failed login: Sun Jul  7 19:16:46 CST 2024 from 10.0.0.3 on ssh:nottyThere was 1 failed login attempt since the last successful login.Last login: Sun Jul  7 19:12:27 2024 from 10.0.0.1

如果禁止以root管理员的身份登录到远程服务器,则可大大降低被黑客暴力破解密码的几率。

 [root@linux ~]# vim /etc/ssh/sshd_config...42 #LoginGraceTime 2m43 PermitRootLogin no44 #StrictModes yes45 #MaxAuthTries 646 #MaxSessions 10[root@linux ~]# systemctl restart sshd[root@linux ~]# systemctl enable sshd      # 开机自启

这样当root管理员来尝试访问sshd服务程序时,系统会提示不可访问的错误信息。

 [root@linux ~]# ssh 10.0.0.2root@10.0.0.2's password: Permission denied, please try again.

2、在Windows连接

可以使用Xshell、Putty、SecureCRT、Secure Shell Client等工具连接:

3、安全密钥验证

加密是对信息进行编码和解码的技术,通过一定的算法(密钥)将原本能直接被阅读的明文信息转换成密文形式。密钥即使密文的钥匙,有私钥和公钥之分。传输数据时,如果担心被他人监听或截取,即可以在传输前先使用公钥对数据加密处理,然后再行传送。这样只有掌握私钥的用户才能解密这段数据;

第1步:在客户端主机中生成"密钥对",记住是客户端

[root@client ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:5m6KcJIo4OOvnMPSlopZBPuNCpVgScH09LVkvCQXC7c root@client
The key's randomart image is:
+---[RSA 2048]----+
|o+.. ..*.        |
|..+ ..*++        |
|oo . .+E.        |
|.+ .   .         |
|o +     S        |
|o= +   o         |
|=+B.o   .        |
|B**+ . ..        |
|*B+.. .o.        |
+----[SHA256]-----+

第2步:把客户端主机中生成的公钥文件传送至远程服务器:

[root@client ~]# ssh-copy-id 10.0.0.2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.0.0.2's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh '10.0.0.2'"
and check to make sure that only the key(s) you wanted were added.

第3步:对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。保存并重启sshd服务:

 [root@Server ~]# vim /etc/ssh/sshd_config67 # To disable tunneled clear text passwords, change to no here!68 #PasswordAuthentication yes69 #PermitEmptyPasswords no70 PasswordAuthentication no

第4步:在客户端尝试登录到服务器,此时无须输入密码也可成功登录

[root@client ~]# ssh 10.0.0.2
Activate the web console with: systemctl enable --now cockpit.socketRegister this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Sun Jul  7 19:42:19 2024 from 10.0.0.2

如果用户没有密钥信息,即便有口令密码也会被拒绝,连输入密码的机会都不给!!

4、远程传输命令

scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令;能够通过网络传送数据,而且所有的数据都将进行加密处理:

语法:”scp [参数] 本地文件 远程账户@远程IP地址:远程目录“。其参数如下:

参数作用
-v显示详细的连接进度
-P指定远程主机的sshd端口号
-r用于传送文件夹
-6使用IPV6协议

使用 scp命令复制文件:需要以绝对路径指定本地文件的位置; 递归复制文件夹:如需复制整个文件夹,需添加 - 参数(原文中参数未完整显示,但通常为 -r 或 --recursive)。 指定远程主机:使用远程主机的IP地址,并在IP地址后添加冒号,然后指定目标文件夹。 身份验证:当前用户名为 root,使用远程服务器密码进行验证。也可以使用 用户名@主机地址 格式指定用户身份。 基于SSH协议:scp 命令基于SSH协议,如果已设置密钥验证,则在传输文件时不需要输入账户和密码。

[root@client ~]# echo "Welcome to Linux" > readme.txt
[root@client ~]# scp /root/readme.txt 10.0.0.2:/home
readme.txt                                                                                                                                                                     100%   17    23.9KB/s   00:00    

还可以使用scp命令把远程服务器上的文件下载的本地主机:

[root@client ~]# scp 10.0.0.2:/etc/redhat-release /root
redhat-release                                                                                                                                                                 100%   45    47.8KB/s   00:00    
[root@client ~]# cat redhat-release 
Red Hat Enterprise Linux release 8.9 (Ootpa)

三、不间断会话服务-tmux工具

Terminal multiplexer是一款能够实现多窗口远程控制的开源服务程序,也叫终端复用器,简称Tmux。就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。用户还能使用Tmux服务程序同时在多个远程会话中自由切换,实现以下功能:

  • 会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制
  • 多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口
  • 会话共享:当多个用户同时登录到远程服务器,此功能实现输入输出信息共享

RHEL 8中、默认没有安装:

[root@Server ~]# dnf install tmux
Updating Subscription Management repositories.
Last metadata expiration check: 0:00:34 ago on Sun 07 Jul 2024 08:22:30 PM CST.
Package tmux-2.7-3.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

1、管理远程会话

直接敲击tmux命令进入到会话窗口中;发现,会话的终端底部出现了一个绿色的状态栏,分别显示的是会话编号、名称、主机名及系统时间

退出会话的命令是exit,敲击后即可返回到正常的终端界面:

会话窗口的编号是从0开始自动排序,接下来创建一个指定名称为backup的会话窗口

[root@Server ~]# tmux new -s backup

突然要去忙其他事情,但会话窗口中执行的进程还不能被中断,此时可以用death参数将会话隐藏到后台。嫌麻烦可以直接关闭窗口,Tmux服务程序会自动帮我们进行保存:

[root@linux ~]# tmux detach
[detached (from session backup)]

这样执行过后的服务和进程都会一直在后台默默运行,不会因为窗口被关闭而造成数据丢失:查看有哪些后台进程:

[root@Server ~]# tmux ls
backup: 1 windows (created Sun Jul  7 20:30:15 2024) [209x42]

我们只需要查看一下刚刚离线的会话名称,然后尝试恢复回来就可以继续工作了:直接attach+会话编号即可:

[root@Server ~]# tmux attach -t backup

不需要这个Tmux会话了,可以事先attach接入,再exit命令退出。或者直接kill进行关闭:

[root@Server ~]# tmux attach -t backup
[exited]
[root@Server ~]# tmux ls
no server running on /tmp/tmux-0/default

在生产环境中,其实直接使用tmux命令执行要运行的命令,这样在命令中的一切操作也都会被记录下来,当命令执行结束后后台会话也会自动结束

[root@Server ~]# tmux new "vim memo.txt"

2、管理多窗格

先创建一个会话。创建上下切割的多窗格终端界面可以用"tmux split-window"命令;创建左右切割的多窗格终端界面用"tmux split-window-h"命令

同时按下<ctrl>+<b>+<方向键>调整窗口的尺寸

如果需要切换到其他窗格进行工作,但又不能关闭当前的窗格:

命令作用
tmux select-pane -U切换至上方的窗格
tmux select-pane -D切换至下方的窗格
tmux select-pane -L切换至左方的窗格
tmux select-pane -R切换至右方的窗格

窗格位置互换命令:

命令作用
tmux swap-pane -U将当前窗格与上方的窗格互换
tmux swap-pane -D将当前窗格与下方的窗格互换
tmux swap-pane -L将当前窗格与左方的窗格互换
tmux swap-pane -R将当前窗格与右方的窗格互换

其实这还是有些麻烦,实际上Tmux服务提供了以<ctrl>+<b>同时按下相关的一些列快捷键。是先同时按下<ctrl>+<b>按键,然后松手后再按下后续按键,不是一起按下:

快捷键作用
%划分左右两个窗格
''划分上下两个窗格
<方向键>切换到上下左右相邻的一个窗格
;切换至上一个窗格
o切换至下一个窗格
{将当前窗格与上一个窗格位置互换
}将当前窗格与下一个窗格位置互换
x关闭窗格
!将当前窗格拆分成独立窗口
q显示窗格编号

3、会话共享功能

当多个用户同时控制主机时,可以把屏幕内容共享出来,也就是说每个用户都能看到相同的内容,还能同时一起操作;流程拓扑图如下:

要实现此功能,首先使用ssh服务将客户端A远程连接到服务器。随后使用tmux服务创建一个新的会话窗口,名称为share:

[root@client A ~]# ssh 10.0.0.2
Activate the web console with: systemctl enable --now cockpit.socketRegister this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Sun Jul  7 20:33:06 2024 from 10.0.0.1
[root@linux ~]# tmux new -s share

然后,使用ssh服务将客户端B也连接到服务器,并执行获取远程会话的命令。接下来,两台主机就能看到相同的内容了:

[root@client ~]# ssh 10.0.0.2
Activate the web console with: systemctl enable --now cockpit.socketRegister this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Sun Jul  7 20:33:06 2024 from 10.0.0.1
[root@linux B ~]# tmux attach-session -t share

四、检索日志信息

Linux拥有十分强大且灵活的日志系统,保存了几乎日常中所有的操作记录和服务运行状态,并且按照报错。警告、提示和其他等标注进行了分类,让运维人员可以根据所需信息进行检索;

常见的日志文件:

文件路径及命令作用
/var/log/boot.log系统开机自检事件及引导过程等信息
/var/log/lastlog用户登录成功时间、终端名称及IP地址等信息
/var/log/btmp记录登录失败的时间、终端名称及IP地址等信息
/var/log/messages系统及各个服务的运行和报错时间
/var/log/secure系统安全相关的信息
/var/log/wtmp系统启动与关机等相关信息

从理论上讲,日志文件分为三种类型:

  • 系统日志:记录系统的运行情况和内核信息;
  • 用户日志:记录用户的访问信息,包含用户名、终端名称、时间、来源和执行过的操作等;
  • 程序日志:一般稍微大的服务都会保存一份与其同名的日志文件,记录着服务运行过程中各种事件的信息,每个服务程序自己有独立的日志文件,但是格式相差的比较大。

1、journalctl命令

journalctl命令用于检索和管理系统日志信息,语法:"journalctl 参数";常用按键以及作用:

参数作用
-k内核日志
-b启动日志
-u指定服务
-n指定条数
-p指定类型
-f实时刷新(追踪日志)
--since指定时间
--disk-usage占用空间

示例:查看系统最后5条日志信息:

[root@linux ~]# journalctl -n 5
-- Logs begin at Sun 2024-07-07 19:10:55 CST, end at Sun 2024-07-07 21:10:06 CST. --
Jul 07 21:01:01 linux run-parts[34826]: (/etc/cron.hourly) finished 0anacron
Jul 07 21:09:08 linux cupsd[903]: REQUEST localhost - - "POST / HTTP/1.1" 200 183 Renew-Subscription successful-ok
Jul 07 21:10:06 linux systemd[1]: Starting system activity accounting tool...
Jul 07 21:10:06 linux systemd[1]: sysstat-collect.service: Succeeded.
Jul 07 21:10:06 linux systemd[1]: Started system activity accounting tool.

使用-f参数进行实时刷新最新内容;与之前学过的tail -f /var/log/messages命令效果一样:

[root@linux ~]# journalctl -f
-- Logs begin at Sun 2024-07-07 19:10:55 CST. --
Jul 07 21:00:06 linux systemd[1]: Started Session 12 of user root.
Jul 07 21:00:06 linux systemd-logind[858]: New session 12 of user root.
Jul 07 21:00:06 linux sshd[34747]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 07 21:01:01 linux CROND[34817]: (root) CMD (run-parts /etc/cron.hourly)
Jul 07 21:01:01 linux run-parts[34820]: (/etc/cron.hourly) starting 0anacron
Jul 07 21:01:01 linux run-parts[34826]: (/etc/cron.hourly) finished 0anacron
Jul 07 21:09:08 linux cupsd[903]: REQUEST localhost - - "POST / HTTP/1.1" 200 183 Renew-Subscription successful-ok

在rsyslog服务程序中,日志根据重要程度被分为了九个等级:

日志等级说明
emery系统出现严重故障,内核崩溃等情况
alert应立即修复的故障,数据库损坏等情况
crit危险较高的故障,硬盘损坏导致程序运行失败的情况
err一般危险的故障,某个服务启动或运行失败的情况
warning警告信息,某个服务参数或功能错误的情况
notice一般无危险的故障,只是需要处理的情况
info通用性消息,给用户提示一些有用的信息
debug调试程序所产生的信息
none没有优先级,不做日志记录

如上表所示;只想看较高级别报错信息的话,用"-p"参数指定

[root@linux ~]# journalctl -p crit
-- Logs begin at Sun 2024-07-07 19:10:55 CST, end at Sun 2024-07-07 21:20:26 CST. --
Jul 07 19:10:56 localhost.localdomain kernel: Warning: Unmaintained hardware is detected:  e1000:100F:8086 @ 0000:02:01.0

还可以用"--since"参数按照今日(today),近N小时(hour),指定时间范围的格式进行检索,找到最近的日志数据:

1、仅查询今日的日志信息

[root@linux ~]# journalctl --since today
-- Logs begin at Sun 2024-07-07 19:10:55 CST, end at Sun 2024-07-07 21:20:26 CST. --
Jul 07 19:10:55 localhost.localdomain kernel: Linux version 4.18.0-513.5.1.el8_9.x86_64 (mockbuild@x86-64-01.build.eng.rdu2.redhat.com) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC)) #1 SMP Fri Sep 29 >
Jul 07 19:10:55 localhost.localdomain kernel: Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-513.

2、仅查询最近一小时的日志信息

[root@linux ~]# journalctl --since "-1 hour"
-- Logs begin at Sun 2024-07-07 19:10:55 CST, end at Sun 2024-07-07 21:20:26 CST. --
Jul 07 20:24:15 Server dbus-daemon[861]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.205' (uid=0 pid=2357 comm="/usr/bin/gnome-shell ")
Jul 07 20:24:16 Server systemd[1]: Starting Fingerprint Authentication Daemon...
Jul 07 20:24:16 Server dbus-daemon[861]: [system] Successfully activated service 'net.reactivated.Fprint'
Jul 07 20:24:16 Server systemd[1]: Started Fingerprint Authentication Daemon.

3、仅查询从上午8点整到10点整的日志信息

[root@linux ~]# journalctl --since "12:00" --until "14:00"
-- Logs begin at Sun 2024-07-07 19:10:55 CST, end at Sun 2024-07-07 21:20:26 CST. --

4、仅查询从2024年6月1日至7月1日的日志信息

[root@linux ~]# journalctl --since "2024-06-01" --until "2024-07-01"
-- Logs begin at Sun 2024-07-07 19:10:55 CST, end at Sun 2024-07-07 21:20:26 CST. --

5、查询指定服务的日志信息

[root@linux ~]# journalctl _SYSTEMD_UNIT=sshd.service
-- Logs begin at Sun 2024-07-07 19:10:55 CST, end at Sun 2024-07-07 21:20:26 CST. --
Jul 07 19:11:02 docker-2322030238 sshd[905]: Server listening on 0.0.0.0 port 22.
Jul 07 19:11:02 docker-2322030238 sshd[905]: Server listening on :: port 22.
Jul 07 19:12:27 docker-2322030238 sshd[2616]: Accepted password for root from 10.0.0.1 port 8776 ssh2
Jul 07 19:12:27 docker-2322030238 sshd[2616]: pam_unix(sshd:session): session opened for user root by (uid=0)

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/373152.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简易限流实现

需求描述 写一个1秒两个的限流工具类&#xff0c;2r/s 使用semaphore 代码实现-类似令牌桶算法 public class LimitHelper {private int maxLimit;private Semaphore semaphore;private int timeoutSeconds;public LimitHelper(int maxLimit, int timeoutSeconds) {this.max…

ExcelVBA运用Excel的【条件格式】(三)

ExcelVBA运用Excel的【条件格式】&#xff08;三&#xff09;前面知识点回顾1. 访问 FormatConditions 集合 Range.FormatConditions2. 添加条件格式 FormatConditions.Add 方法语法表达式。添加 (类型、 运算符、 Expression1、 Expression2)其中 TextOperator:***&am…

【每日一练】python基础入门实例

""" 幼儿园加法练习题 题数不限 每满100分奖励10个棒棒糖 要求&#xff1a; 1.使用三目运算符与基础运算的对比 2.随机数字相加 3.调用函数 4.循环执行练习题 5.有计算分数 6.有时间停止休眠 """ #导入随机模块 import random #导入时间模块 imp…

windows JDK11 与JDK1.8自动切换,以及切换后失效的问题

1.windows安装不同环境的jdk 2.切换jdk 3.切换失败 原因&#xff1a;这是因为当我们安装并配置好JDK11之后它会自动生成一个环境变量&#xff08;此变量我们看不到&#xff09;&#xff0c;此环境变量优先级较高&#xff0c;导致我们在切换回JDK8后系统会先读取到JDK11生成的…

本地 HTTP 文件服务器的简单搭建 (deno/std)

首发日期 2024-06-30, 以下为原文内容: 在本地局域网搭建一个文件服务器, 有很多种方式. 本文介绍的是窝觉得比较简单的一种. 文件直接存储在 btrfs 文件系统之中, 底层使用 LVM 管理磁盘, 方便扩容. 使用 btrfs RAID 1 进行镜像备份 (一个文件在 2 块硬盘分别存储一份), 防止…

Mosh|内连接、外连接、左连接、右连接(未完)

下图取自菜鸟教程&#xff0c;侵权删&#xff5e; 一、内连接&#xff1a;Inner Joins 模版&#xff1a;SELECT * FROM A JOIN B ON 条件 含义&#xff1a;返回A与B的交集&#xff0c;列为AB列之和 练习&#xff1a;将order_items表和products表连接&#xff0c;返回产品id和…

【linux服务器篇】-Redis-RDM远程连接redis

redis desktop manager 使用远程连接工具RDM连接redis 市面上比较常见的其中一款工具redis desktop manager 简单的说&#xff1a; Redis Desktop Manager 简单的来讲就是Redis可视化工具&#xff0c;可以让我们看到Redis中存储的内容。 redis desktop manager是一款功能强…

【一】m2芯片的mac中安装ubuntu24虚拟机集群

文章目录 1. 虚拟机配置2. 复制虚拟机2.1 修改主机名2.2 修改网络 1. 虚拟机配置 在官方网站下载好ubuntu24-arm版镜像开始安装&#xff0c;安装使用VMWare Fusion的社区免费授权版,使用一台m2芯片的mac电脑作为物理机平台。 为什么选择ubuntu24&#xff1f;因为centOS7目前已…

Android布局简介

布局是一种可用于放置很多控件的容器&#xff0c;根据既定的规则决定内部控件的位置。当然&#xff0c;布局的内部也可以放置布局&#xff0c;即布局嵌套&#xff0c;布局嵌套可以实现一些比较复杂的界面。 Android中有多种编写程序界面的方式可供选择。Android Studio提供了相…

扩展任务1:完成页面的布局设计和美化

任务指导 1、参照下图&#xff0c;完成页面的布局和美化设计&#xff1a; 2、实现思路 例如可以通过修改Style样式的方式完成布局调整&#xff0c;具体页面显示样式&#xff0c;需要学生根据自己的喜好和设计自行完成&#xff0c;建议每个学生的页面尽量个性化设计&#xff0…

vue 切换主题色切换主题色切换主题色切换主题色切换主题色

第一种&#xff1a;使用CSS变量 CSS变量&#xff08;Custom Properties&#xff09;是CSS的一种新特性 1.实现需求&#xff1a;自定义颜色 定义变量 全局的theme.css :root {--primary-color:red; }在组件中使用这些变量 demo.vue <template><div class"main…

C++ 是否变得比 C 更流行了?

每年都会出现一种新的编程语言。创造一种新语言来解决计算机科学中的挑战的诱惑很难抗拒。一些资料表明&#xff0c;目前有多达 2,500 种语言&#xff0c;这并不奇怪&#xff01; 对于我们嵌入式软件开发人员来说&#xff0c;这个列表并不长。事实上&#xff0c;我们可以用一只…

【每天学会一个渗透测试工具】SQLmap安装教程及使用

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 ✨SQLmap简介 Sqlmap是一款开源的渗透测试工具 &#x1f680;下载及安装 下载地址&#xff1a;http://sqlmap.org/ windo…

springboot非物质文化遗产管理系统-计算机毕业设计源码16087

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

昇思25天学习打卡营第13天 | ShuffleNet图像分类

ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作&#xff1a;Pointw…

深入理解 LXC (Linux Containers)

目录 引言LXC 的定义LXC 的架构LXC 的工作原理LXC 的应用场景LXC 在 CentOS 上的常见命令实验场景模拟总结 1. 引言 在现代 IT 基础设施中&#xff0c;容器技术已经成为一种重要的应用和部署方式。与虚拟机相比&#xff0c;容器具有更高的效率、更轻量的特性和更快的启动速度…

科研绘图系列:R语言双侧条形图(bar Plot)

介绍 双侧条形图上的每个条形代表一个特定的细菌属,条形的高度表示该属的LDA得分的对数值,颜色用来区分不同的分类群或组别,它具有以下优点: 可视化差异:条形图可以直观地展示不同细菌属在得分上的差异。强调重要性:较高的条形表示某些特征在区分不同组别中具有重要作用。…

怎样在 PostgreSQL 中优化对 UUID 数据类型的索引和查询?

文章目录 一、UUID 数据类型概述二、UUID 索引和查询的性能问题三、优化方案&#xff08;一&#xff09;选择合适的索引类型&#xff08;二&#xff09;压缩 UUID&#xff08;三&#xff09;拆分 UUID&#xff08;四&#xff09;使用覆盖索引&#xff08;五&#xff09;优化查询…

【嵌入式DIY实例-ESP8266篇】-LCD ST7735显示BME280传感器数据

LCD ST7735显示BME280传感器数据 文章目录 LCD ST7735显示BME280传感器数据1、硬件准备与接线2、代码实现本文中将介绍如何使用 ESP8266 NodeMCU 板(ESP12-E 模块)和 BME280 气压、温度和湿度传感器构建气象站。 NodeMCU 微控制器 (ESP8266EX) 从 BME280 传感器读取温度、湿度…

spring tx @Transactional 详解 `Advisor`、`Target`、`ProxyFactory

在Spring中&#xff0c;Transactional注解的处理涉及到多个关键组件&#xff0c;包括Advisor、Target、ProxyFactory等。下面是详细的解析和代码示例&#xff0c;解释这些组件是如何协同工作的。 1. 关键组件介绍 1.1 Advisor Advisor是一个Spring AOP的概念&#xff0c;它包…