使用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=Ethernet
 BOOTPROTO=static
 DEFROUTE=yes
 ONBOOT=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 ens33
 connection.uuid:                        c96bc909-188e-ec64-3a96-6a90982b08ad
 connection.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.1
 Connection 'company'(...) successfully added
 ​
 # 再创建一个家庭所使用网络会话:'house';因为要从外部DHCP服务器自动获得IP,所以这里不需要手动指定
 [root@linux ~]# nmcli connection add con-name house type ethernet ifname ens33
 Connection 'house'(...) successfully added

创建成功后,可以使用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 
 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 status
 DEVICE   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 bond0
 Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
 [root@linux ~]# nmcli device status
 DEVICE   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.2
 The 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)? y
 root@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 --register
 Create an account or view all your systems at https://red.ht/insights-dashboard
 Last failed login: Sun Jul  7 19:16:46 CST 2024 from 10.0.0.3 on ssh:notty
 There 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 2m
  43 PermitRootLogin no
  44 #StrictModes yes
  45 #MaxAuthTries 6
  46 #MaxSessions 10
  [root@linux ~]# systemctl restart sshd
  [root@linux ~]# systemctl enable sshd      # 开机自启

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

 [root@linux ~]# ssh 10.0.0.2
 root@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: 1

Now 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_config
 67 # To disable tunneled clear text passwords, change to no here!
 68 #PasswordAuthentication yes
 69 #PermitEmptyPasswords no
 70 PasswordAuthentication no

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

[root@client ~]# ssh 10.0.0.2
Activate the web console with: systemctl enable --now cockpit.socket

Register 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.socket

Register 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.socket

Register 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)

致谢

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI绘画:艺术与科技的交融,创新浪潮与无限可能

在科技日新月异的当下&#xff0c;AI 绘画作为人工智能领域的一颗璀璨新星&#xff0c;正以惊人的速度在国内崭露头角&#xff0c;引发了艺术与技术交融的全新变革。随着人工智能技术的飞速发展&#xff0c;AI绘画已成为艺术与科技交融的新宠。2024年&#xff0c;AI绘画行业在国…

【Python】已解决:SyntaxError: positional argument follows keyword argument

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;SyntaxError: positional argument follows keyword argument 一、分析问题背景 在Python编程中&#xff0c;当我们在调用函数时混合使用位置参数&#xff08;p…

【RAG KG】GraphRAG开源:查询聚焦摘要的图RAG方法

前言 传统的 RAG 方法在处理针对整个文本语料库的全局性问题时存在不足&#xff0c;例如查询&#xff1a;“数据中的前 5 个主题是什么&#xff1f;” 对于此类问题&#xff0c;是因为这类问题本质上是查询聚焦的摘要&#xff08;Query-Focused Summarization, QFS&#xff09…

tessy 单元测试:小白入门指导手册

目录 1,创建单元测试工程目录 2,导入单元测试源文件 一:创建测试文件夹(最好和代码目录一一对应,方便查找) 二:选择测试环境 三:添加源文件 四:分析源文件 3,编写单元测试用例 一:设置函数参数的传输方向 二:添加单元测试用例 三:编辑单元测试用例数据 …

网站更新改版了

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a;Leo杂谈 ✨特色专栏&#xff1a;MySQL学…

UI设计入门到精通:规范整理与应用技巧

很多刚入行的UI设计师在遇到一些不熟悉的词时会充满问号&#xff0c;往往会纠结用什么尺寸最合适。设计师在设计UI的时候不一定要严格遵守设计规范&#xff0c;但是要了解规范&#xff0c;整合&#xff0c;灵活处理。为了解决新手的“十万个为什么”&#xff0c;本文将带你了解…

无法连接Linux远程服务器的Mysql,解决办法

问题描述 如果是关闭虚拟机之后&#xff0c;二次打开无法连接Mysql&#xff0c;则可尝试一下方法进行解决 解决方法 关闭虚拟机的防火墙 1&#xff1a;查看防火墙状态 systemctl status firewalld 一下显示说明防火墙是启动的状态 2&#xff1a;关闭防火墙 systemctl st…

Python大数据分析——决策树和随机森林

Python大数据分析——决策树和随机森林 决策树决策树节点字段的选择信息熵条件熵信息增益信息增益率 基尼指数条件基尼指数基尼指数增益 决策树函数 随机森林函数 决策树 图中的决策树呈现自顶向下的生长过程&#xff0c;深色的椭圆表示树的根节点&#xff1b;浅色的椭圆表示树…

招投标信息采集系统:让您的企业始终站在行业前沿

一、为何招投标信息如此关键&#xff1f; 在经济全球化的大背景下&#xff0c;招投标活动日益频繁&#xff0c;成为企业获取项目、拓展市场的主流方式之一。招投标信息采集&#xff0c;作为企业战略决策的前置环节&#xff0c;其重要性不言而喻。它不仅关乎企业能否第一时间发…

探索 Qt 的 `QSqlDatabase`:数据库访问的桥梁

&#x1f60e; 作者介绍&#xff1a;欢迎来到我的主页&#x1f448;&#xff0c;我是程序员行者孙&#xff0c;一个热爱分享技术的制能工人。计算机本硕&#xff0c;人工制能研究生。公众号&#xff1a;AI Sun&#xff08;领取大厂面经等资料&#xff09;&#xff0c;欢迎加我的…

C++|异常

目录 一、异常概念 二、异常使用 2.1异常的抛出与捕获 2.2异常的重新抛出 2.3异常安全注意事项 2.4异常规范 三、自定义异常体系 四、C标准库的异常体系 五、异常的优缺点 对于传统的错误处理机制&#xff0c;例如c语言常用的&#xff1a; 1.assert&#xff0c;捕获到…

【环境准备】 Vue环境搭建

文章目录 前言vue-cli 安装创建项目3.0、以下3.0 、以上 前言 书接上回《NodeJs(压缩包版本)安装与配置》&#xff0c;安装完了NodeJs&#xff0c;接下来就要配置vue的环境了。 vue-cli 安装 安装vue-cli输入如下命令 #&#xff08;安装的是最新版&#xff09; npm install …

windows的远程桌面连接docker

1. Docker容器中运行远程桌面服务 (RDP)&#xff1a;您的Docker容器需要安装和运行远程桌面服务。通常&#xff0c;远程桌面服务在Windows操作系统上可用。如果您使用的是Linux容器&#xff0c;则需要安装一个支持RDP协议的桌面环境和RDP服务器。 2. 开放RDP端口&#xff1a;通…

比赛获奖的武林秘籍:05 电子计算机类比赛国奖队伍技术如何分工和学习内容

比赛获奖的武林秘籍&#xff1a;05 电子计算机类比赛国奖队伍技术如何分工和学习内容 摘要 本文主要介绍了在电子计算机类比赛中技术层面上的团队分工和需要学习的内容&#xff0c;分为了嵌入式硬件、嵌入式软件、视觉图像处理、机械、上位机软件开发和数据分析等六个方向&am…

Mybatis Plus 3.X版本的insert填充自增id的IdType.ID_WORKER策略源码分析

总结/朱季谦 某天同事突然问我&#xff0c;你知道Mybatis Plus的insert方法&#xff0c;插入数据后自增id是如何自增的吗&#xff1f; 我愣了一下&#xff0c;脑海里只想到&#xff0c;当在POJO类的id设置一个自增策略后&#xff0c;例如TableId(value "id",type …

展开说说:Android服务之实现AIDL跨应用通信

前面几篇总结了Service的使用和源码执行流程&#xff0c;这里再简单分析一下如果需要Service跨进程通信该怎样做。AIDL&#xff08;Android Interface Definition Language&#xff09;Android接口定义语言&#xff0c;用于实现 Android 两个进程之间进行进程间通信&#xff08…

计算机网络之WPAN 和 WLAN

上一篇文章内容&#xff1a;无线局域网 1.WPAN&#xff08;无线个人区域网&#xff09; WPAN 是以个人为中心来使用的无线个人区域网&#xff0c;它实际上就是一个低功率、小范围、低速率和低价格的电缆替代技术。 &#xff08;1&#xff09; 蓝牙系统(Bluetooth) &#…

新闻资讯整合平台:一站式满足企业信息需求

摘要&#xff1a; 面对信息爆炸的时代&#xff0c;企业如何在海量数据中快速获取有价值资讯&#xff0c;成为提升竞争力的关键。本文将探讨如何通过一站式新闻资讯整合平台&#xff0c;实现企业信息需求的全面满足&#xff0c;提升决策效率&#xff0c;同时介绍实用工具推荐&a…

开源数据科学平台Anaconda简介

开源数据科学平台Anaconda简介 零、时光宝盒 最近&#xff0c;某金融行业女性选择以跳楼的形式结束自己的生命&#xff0c;这件不幸的事情成了热门话题&#xff0c;各种猜测的都有&#xff0c;有些人评论的话真的很过分。我想起前段时间看到的&#xff0c;有个女学生跳江&#…

ISO/OSI七层模型

ISO:国际标准化/ OSI:开放系统互联 七层协议必背图 1.注意事项&#xff1a; 1.上三层是为用户服务的&#xff0c;下四层负责实际数据传输。 2.下四层的传输单位&#xff1a; 传输层&#xff1b; 数据段&#xff08;报文&#xff09; 网络层&#xff1a; 数据包&#xff08;报…