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

news2024/10/3 4:30:03

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

目录

一、配置网卡服务

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)

致谢

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生必知必会-docker安装

文章目录 一、docker安装二、centos7 安装docker-compose三、修改docker的镜像源四、docker异常处理&#xff08;没有那个文件或目录&#xff09;五、配置虚拟机上docker的代理总结 一、docker安装 # 安装上传下载工具 上传命令rz -bey&#xff0c;下载命令sz 文件名 yum -y i…

自定义刷题工具-python实现

背景&#xff1a; 最近想要刷题&#xff0c;虽然目前有很多成熟的软件&#xff0c;网站。但是能够支持自定义的导入题库的非常少&#xff0c;或者是要么让你开会员&#xff0c;而直接百度题库的话&#xff0c;正确答案就摆在你一眼能看见的地方&#xff0c;看的时候总觉得自己…

Xubuntu24.04之设置高性能模式两种方式(二百六十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP…

ArkUI开发学习随机——B站视频简介页面,美团购买界面

案例一&#xff1a;B站视频简介页面 代码&#xff1a; build() {Column(){Column(){Stack(){Image($r("app.media.genimpact")).width(200).height(125).borderRadius({topLeft:5,topRight:5})Row(){Image($r("app.media.bz_play")).height(24).fillColor…

虚拟机如何选择处理器和内核数量,实现最佳性能

一、基本概念 处理器数量指的是&#xff1a;虚拟的CPU数量。 每个处理器的内核数量指的是&#xff1a;虚拟CPU的内核数。 处理器内核总数处理器数量✖每个处理器的内核数量 此处虚拟机的处理器内核总数对应于真实物理机&#xff08;或者叫宿主机&#xff09;的CPU线程数&#x…

Python编程学习笔记(3)--- 操作列表

1、遍历列表 遍历列表可以采用for循环的方法&#xff0c;需要对列表中的每一个元素都执行相同的操作。 具体事实如下&#xff1a; name ["ada","cdb","dbc","bad","jinb"] for Name in name:print(Name)运行结果&#x…

灵活多变的对象创建——工厂方法模式(Python实现)

1. 引言 大家好&#xff0c;又见面了&#xff01;在上一篇文章中&#xff0c;我们聊了聊简单工厂模式&#xff0c;今天&#xff0c;我们要进一步探讨一种更加灵活的工厂设计模式——工厂方法模式。如果说简单工厂模式是“万能钥匙”&#xff0c;那工厂方法模式就是“变形金刚”…

Windows10 企业版 LTSC 2021发布:一键点击获取!

Windows10企业版 LTSC 2021是微软发布的长达5年技术支持的Win10稳定版本&#xff0c;追求稳定的企业或者个人特别适合安装该系统版本。该版本离线制作而成&#xff0c;安全性高&#xff0c;兼容性出色&#xff0c;适合新老机型安装&#xff0c;力求带给用户更稳定、高效的操作系…

应急响应——勒索病毒

先上搜索引擎上搜 也可以用360来杀 但是都无法解密 可以解密的&#xff1a; linux

db期末复习自用[应试向 附习题]

第一章 数据库系统实现整体数据的结构化&#xff0c;主要特征之一&#xff0c;是db区别于文件系统的本质区别。 数据库系统三个阶段&#xff1a;人工、文件、数据库系统。 数据库管理系统的功能&#xff1a;数据库定义、操纵 、&#xff08;保护、存储、维护&#xff09;、数…

Kubernetes 为pod指定DNS

在k8s里面&#xff0c;默认创建pod会给pod默认分配一个默认的dns&#xff0c;这个dns是哪来的呢&#xff1f;可不可以改成其他的dns呢&#xff1f; 先进入到pod里面来&#xff0c;可以看到这里面默认设置的DNS服务器&#xff0c;这个服务器地址为10.96.0.10。这个地址是k8s自动…

Linux基本命令的使用示例

目录 1实现效果&#xff1a;在downloads目录下创建1个空文件夹empty&#xff0c;创建1个空文件lake.txt&#xff0c;输入任意数据保存后退出 2实现效果&#xff1a;搜索包含关键字"泉眼"的行 3实现效果&#xff1a;重命名文件夹empty为full&#xff0c;复制文件cc…

C语言入门基础题:奇偶 ASCII 值判断(C语言版)和ASCII码表,什么是ASCII码,它的特点和应用?

1.题目描述&#xff1a; 任意输入一个字符&#xff0c;判断其 ASCII 是否是奇数&#xff0c;若是&#xff0c;输出 YES &#xff0c;否则&#xff0c;输出 NO例如&#xff0c;字符 A 的 ASCI 值是 65 &#xff0c;则输出 YES &#xff0c;若输入字符 B(ASCII 值是 66)&#xff…

解决:Flink向kafka写数据使用Producer精准一次(EXACTLY_ONCE)异常

在使用flink向kafka写入数据报错&#xff1a;Caused by: org.apache.kafka.common.KafkaException: Unexpected error in InitProducerIdResponse; The transaction timeout is larger than the maximum value allowed by the broker (as configured by transaction.max.timeou…

Linux Mac 安装Higress 平替 Spring Cloud Gateway

Linux Mac 安装Higress 平替 Spring Cloud Gateway Higress是什么?传统网关分类Higress定位下载安装包执行安装命令执行脚本 安装成功打开管理界面使用方法configure.shreset.shstartup.shshutdown.shstatus.shlogs.sh Higress官网 Higress是什么? Higress是基于阿里内部的…

分享一个 EF6 分页查询数据的 IQueryable 扩展方法

前言 不废话&#xff0c;直接上方法。_ IQueryable 扩展方法 方法一 /// <summary> /// 由其它 Reponsitory 提供数据源&#xff0c;分页查询数据 /// </summary> /// <typeparam name"T"></typeparam> /// <typeparam name"S&quo…

java算法day9

232.用栈实现队列 用队列实现栈 有效的括号 删除字符串中的所有相邻重复项 逆波兰表达式求值 解决栈和队列的基本数据结构 Queue&#xff08;队列&#xff09; 在java中是一个接口。定义的方法&#xff1a; //boolean add(E e): 将指定的元素插入此队列&#xff08;如果…

开源数据 | 语音对话大模型高品质数据集——MagicHub多方言语音数据集推荐

近日&#xff0c;法国知名开源AI研究实验室Kyutai推出了一款具备看、听、说多模态大模型——Moshi。Moshi功能与GPT-4o相似&#xff0c;可以听取人的语音提问后进行实时推理回答内容。然而&#xff0c;Moshi最吸引人的是全面开源&#xff0c;并可以支持在端侧运行。这将大大提振…

ARM裸机:一步步点亮LED(汇编)

硬件工作原理及原理图查阅 LED物理特性介绍 LED本身有2个接线点&#xff0c;一个是LED的正极&#xff0c;一个是LED的负极。LED这个硬件的功能就是点亮或者不亮&#xff0c;物理上想要点亮一颗LED只需要给他的正负极上加正电压即可&#xff0c;要熄灭一颗LED只需要去掉电压即可…

Dynamics365 UCI下的高级查找(不要留恋Classic了)

UCI界面已经用了多年了&#xff0c;在Classic下的的高级查找按钮(漏斗icon)已不见踪影 但因为使用习惯问题&#xff0c;还是有人会通过右上角高级设置&#xff0c;进入Classic界面找到漏斗Icon来使用高级查找 但新的UCI风格下已经没了高级查找的概念&#xff0c;取而代之的是基…