文件系统与日志分析

一,文件系统

(一)inode  和block概述

1,文件数据包括元信息与实际数据
2,文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节

3,block (块)
连续的八个扇区组成一个 block

是文件存取的最小单位

4,inode (索引节点)
中文译名为“索引节点”,也叫i节点

用于存储文件元信息

5,注意:一个文件必须占用一个inode,但至少占用一个block

(二)inode包含文件的元信息

文件的字节数
文件拥有者的UserID
文件的Group ID
文件的读、写、执行权限
文件的时间戳

用stat命令可以查看某个文件的inode信息
示例: stat aa.txt

(三)Linux系统文件三个主要的时间属性

1,    ctime(change time)

最后一次改变文件或目录 (属性)的时间

2,   atime(access time)

最后一次访问文件或目录的时间

3,    mtime(modify time)

最后一次修改文件或目录 (内容) 的时间

最好用mtime 假如你看了一眼日志,日志的atime 就会变化 所以根据atime去找具体时间段的日志容易混淆,但是日志不会人为更改内容,mtime时间准确

(四)inode的内容

1,目录文件的结构

目录也是一种文件

目录文件的结构

2,每个inode都有一个号码,操作系统用inode号码来识别不同的文件
3,Linux系统内部不使用文件名,而使用inode号码来识
别文件
4,对于用户,文件名只是inode号码便于识别的别称

(五)inode的号码

1,用户通过文件名打开文件时,系统内部的过程


1,系统找到这个文件名对应的inode号码
2,通过inode号码,获取inode信息,

3,根据inode信息,找到文件数据所在的block,读出数据

2,查看inode号码的方法

ls-i命令:查看文件名对应的inode号码

ls  -i  aa.txt

stat命令:查看文件inode  信息中的inode号码

stat   aa.txt

3,inode号有限,他的多少和磁盘大小有关

inode 号在同一块设备(磁盘,逻辑卷等)上是唯一的,不同设备有可能有一样

inode号有限,他的多少和磁盘大小有关

4,例题

问:我磁盘空间还剩余很多但是无法继续建立文件?

答:因为inode 号用完了,

       解决方法:
       如果是lvm 扩容

        如果是普通分区,删除没有用的空文件

(六)inode  的特殊作用

由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象


1,当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
2,移动或重命名文件时,只改变文件名,不影响inode号码

3,打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名

删除文件后空间没变化
[root@localhost opt]#lsof |grep delete
..............................................
80 /boot/bigfile (deleted)


[root@localhost opt]#echo " " > /boot/bigfile

lsof 打开系统中已经被打开的文件

(七)在linux 使用文件过程

根据文件夹的文件名和inode 号的关系,找到对应的inode 表(属主 属组)再根据inode表中的指针找到磁盘上的真实数据

二,文件恢复extundelete(只能恢复ext3)

(一)实验环境

在编译安装 extundelete 之前需要先安装两个依赖包 e2fsprogs-libs 和 e2fsprogs-devel,

这两个包在系统安装光盘的/Package 目录下就有,使用 rpm 或 yum 命令将其安装。

e2fsprogs-devel 安装依赖于 libcom_err-devel 包

[root@localhost ~]#yum -y install e2fsprogs-devel e2fsprogs-libs
#安装依赖软件
[root@localhost ~]# tar -jxvf extundelete-0.2.4.tar.bz2 -C /opt
#解压软件
[root@localhost ~]# cd /opt/extundelete-0.2.4
#切换到目录下
[root@localhost extundelete-0.2.4]# ./configure  
#编译安装
[root@localhost extundelete-0.2.4]#make
[root@localhost extundelete-0.2.4]#make install
[root@localhost extundelete-0.2.4]#cd /usr/local/bin/
[root@localhost bin]#ls
extundelete  you-get


#验证恢复,目前使用版本只对ext3 有效,分区略
[root@localhost ~]# mkfs.ext3 /dev/sdb1
[root@localhost ~]# mkdir /test/ 
[root@localhost ~]# mount /dev/sdb1 /test/ 
[root@localhost ~]# cd /test/
[root@localhost test]# echo a>a 
[root@localhost test]# echo a>b 
[root@localhost test]# echo a>c 
[root@localhost test]# echo a>d

(二)模拟删除并恢复

可以使用extundelete /dev/sdb1 --inode 2

查看文件系统/dev/sdb1 下存在哪些文件,

具体的使用情况。其中--inode 2 代表从 i 节点为 2 的文件开始查看,一般文件系统格式化挂

载之后,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。

在恢复前需要先解挂载

[root@localhost test]# rm -rf a b
#模拟删除
[root@localhost test]# ls c d lost+foun
[root@localhost test]# cd 
[root@localhost ~]# umount /test/
#解挂载
[root@localhost ~]#extundelete /dev/sdb1 --inode 2
#                  命令          查看的分区   从2节点开始
#查看该分区下的存在哪些文件

[root@localhost ~]# extundelete /dev/sdb1 --restore-all
#                     命令      需要恢复的分区设备    恢复选项,全都要
#使用恢复

执行完恢复的命令后,在当前目录下会出现一个/RECOVERED_FILES/目录,里面保

存了已经恢复的文件

[root@localhost ~]# ls
anaconda-ks.cfg extundelete-0.2.4 extundelete-0.2.4.tar.bz2 RECOVERED_FILES 
[root@localhost ~]# cd RECOVERED_FILES/
[root@localhost RECOVERED_FILES]# ls
a b 


ext3

三,xfs类型备份和恢复

CentOS 7 系统默认采用 xfs 类型的文件。针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数 据备份以避免数据丢失

(一)实验环境

xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。

若系统中未安装 xfsdump与xfsrestore工具,可

以通过yum install -y xfsdump命令安装。

xfsdump 按照inode 顺序备份一个 xfs 文件系统。xfsdump 的备份级别有两种:

  • 0 表示完全备份

  • 1-9 表示增量 备份

  • xfsdump 的备份级别默认为 0

xfsdump 的命令格式为:

xfsdump -f 备份存放位置 要备份路径或设备文件。

常用的备份参数包括以下几种:

  • -f:指定备份文件目录

  • -L:指定标签 session label

  • -M:指定设备标签 media label

  • -s:备份单个文件,-s 后面不能直接跟路径

使用 xfsdump 时,需要注意以下的几个限制:

  • 不支持没有挂载的文件系统备份,所以只能备份已挂载的;

  • 必须使用 root 的权限才能操作;

  • 只能备份 XFS 文件系统;

  • 备份下来的数据只能让 xfsrestore 解析;

  • 不能备份两个具有相同 UUID 的文件系统(可使用blkid查看)。

(二)具体过程

##########前期准备
[root@localhost opt]#mkfs.xfs -f /dev/sdb1
#-f强制格式化
[root@localhost ~]# fdisk /dev/sdb
#分区略
[root@localhost data]#partprobe /dev/sdb
#刷新分区
[root@localhost ~]# mkfs.xfs /dev/sdb1
#格式化
[root@localhost ~]# mkdir /date 
[root@localhost ~]# mount /dev/sdb1 /date/
#挂载
[root@localhost ~]# cd /date 
[root@localhost date]# cp /etc/passwd ./ 
#将passwd文件拷入
[root@localhost date]# mkdir test 
[root@localhost date]# touch test/a

############备份
[root@localhost data]#rpm -qa |grep xfsdump
#查看是否已安装
xfsdump-3.1.4-1.el7.x86_64
[root@localhost data]#yum install xfsdump -y
#未安装可以使用yum安装

[root@localhost ~]# xfsdump -f /opt/dump_sdb2        /dev/sdb2           [-L dump_sdb1 -M sdb1]
#                    命令   指定备份目录路径和文件名      分区                 打上标记 现在不打后面也要输入
#使用 xfsdump 命令备份整个分区  并打上标记


[root@localhost ~]#xfsdump -f /opt/dump_sdb2 /dev/sdb2
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control

 ============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb2   (文件标签)
 
 
please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb2(设备标签)
media label entered: "sdb2"

模拟数据丢失后恢复

[root@localhost data]#cd /data/
[root@localhost data]#rm -rf /*
[root@localhost data]#ls

#恢复
[root@localhost opt]#xfsrestore -f /opt/dump_sdb1 /data/
# 使用 bak文件 将数据恢复到 /data 下
[root@localhost opt]#ls /data/
passwd  test

[root@localhost opt]#xfsdump -l 1 -f /backup/dump_sdb1_level_1 /sdb1 -L dump_sdb1_level_1 -M sdb1
#设定级别

四,日志

/var/log

(一)日志功能

用于记录系统、程序运行中发生的各种事件

通过阅读日志,有助于诊断和解决系统故障

(二)常见的一些日志文件:

1,系统日志

/var/log/messages :系统中大部分的信息

/var/log/secure:系统安全日志,文本格式,应周期性分析

2,用户日志

/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看

/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看

 /var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看

/var/log/lastlog    最近的用户登录事件

3,其余的一些日志

/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况

/var/log/boot.log 系统服务启动的相关信息,文本格式

/var/log/anaconda : anaconda的日志操作系统安装时安装的软件信息

/var/log/cron       计划任务日志

/var/log/maillog     邮件系统日志

(三)日志消息的级别

在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)

0 EMERG(紧急):会导致主机系统不可用的情况。

1 ALERT(警告):必须马上采取措施解决的问题。

2 CRIT(严重):比较严重的情况。

3 ERR(错误):运行出现错误。

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。

5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。

6 INFO(信息):一般信息。

7 DEBUG(调试):程序或系统调试信息等

(四)日志记录的一般格式

日志文件的格式包含以下 4 列:

  • 事件产生的时间。

  • 产生事件的服务器的主机名。

  • 产生事件的服务名或程序名。

  • 事件的具体信息。

(五)内核和公共日志

1,日志的配置文件 位置在 /etc/rsyslog.conf

[root@localhost ~]#vim /etc/rsyslog.conf
#查看rsyslog.conf 配置文件
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
#表示所有info等级以上的所有等级的信息都写到对应的日志文件里
mail.none
#表示某事件的信息不写到日志文件里(这里比如是邮件)

2,内核和公共消息日志存储位置

内核及大多数系统消息被记录到公共日志文件/var/log/messages 中

而其他一些程序消息被记录到各自独立的日志文件中,此外日志消息还能够记录到特定的存储设备中,或者直接发送给指定用户。

对于 rsyslog 服务统一管理的大部分日志文件,使用的日志记录格式基本上是相同的。

以公共日志/var/log/messages 文件的记录格式为例,其中每一行表示一条日志消息,每一条消息均包括以下四个字段。

  • 时间标签:消息发出的日期和时间。

  • 主机名:生成消息的计算机的名称。

  • 子系统名称:发出消息的应用程序的名称。

  • 消息:消息的具体内容。

(六)查询当前登录的用户情况

1,users

users 命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。 如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数

[root@localhost log]#users
root

2,who

who命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可

以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用

户名、终端类型、登录日期及远程主机

[root@localhost log]#who
root     pts/0        2021-09-20 20:12 (192.168.91.1)
root     pts/3        2021-09-20 13:09 (192.168.91.1)
zhangsan :0           2021-09-20 20:12 (:0

3,w

w 命令用于显示当前系统中的每个用户及其所运行的进程信息,比 users、who 命令的 输出内容要丰富一些。

[root@localhost log]#w
 20:16:08 up  7:16,  3 users,  load average: 0.07, 0.06, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.91.1     20:12    4:00   0.06s  0.02s bash
root     pts/3    192.168.91.1     13:09    0.00s  0.96s  0.02s w
zhangsan :0       :0               20:12   ?xdm?   1:39   0.17s /usr/libexec/gnome-session-binary -

(七)查询用户登录的历史记录

1,last

last 命令用于查询成功登录到系统的用户记录,

最近的登录情况将显示在最前面。通过 last 命令可以及时掌握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表示当前 主机可能已被入侵。

[root@localhost log]#last
zhangsan :0           :0               Mon Sep 20 20:12   still logged in   
root     pts/0        192.168.91.1     Mon Sep 20 20:12   still logged in   
root     pts/0        192.168.91.1     Mon Sep 20 19:48 - 20:10  (00:22)    
root     pts/3        192.168.91.1     Mon Sep 20 13:09   still logged in   
root     pts/2        192.168.91.1     Tue Sep 14 17:42 - 15:09 (5+21:27)  

2    lastb 

lastb 命令用于查询登录失败的用户记录,

如登录的用户名错误、密码不正确等情况都 将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。除 了使用 lastb 命令查看以外,也可以直接从安全日志文件/var/log/secure 中获得相关信息。

[root@localhost log]#lastb
btmp begins Mon Sep 20 14:33:01 2021

 

(八)日志管理策略

  • 及时作好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限(日志中可能会包含各类敏感信息,如账号、口令等)
  • 集中管理日志
  1. 将服务器的日志文件发到统一的日志文件服务器
  2. 便于日志信息的统一收集、整理和分析
  3. 杜绝日志信息的意外丢失、恶意篡改或删除

五,日志服务管理

(一)rsyslog 系统日志服务

rsyslog 系统日志服务软件      帮助管理日志

rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的”。

(二)rsyslog 特性

  • 多线程

  • UDP, TCP, SSL, TLS, RELP

  • MySQL, PGSQL, Oracle实现日志存储

  • 强大的过滤器,可实现过滤记录日志信息中任意部分

  • 自定义输出格式 可以日志

  • 适用于企业级

(三)ELK 日志收集

ELK:由Elasticsearch, Logstash, Kibana三个软件组成

  • 非关系型分布式数据库基于apache软件基金会jakarta项目组的项目lucene

  • Elasticsearch是个开源分布式搜索引擎,可以处理大规模日志数据,比如:Nginx、Tomcat、系统日志等功能

  • Logstash对日志进行收集、分析,过滤,并将其存储供以后使用

  • Kibana 可以提供的日志分析友好的 Web 界面

  • kafka消息队列

(四)rsyslog

1,查看rsyslog   的配置文件

 2,实验模拟通过 rsyslog 软件将sshd程序的日志 独立出来

sshd 软件的 日志 是放在 /var/log/secure 日志中,很多其他软件 放在一起和这个软件比较重要,所以我们要把 sshd 软件的日志单独存放。

2.1  自定义一个日志配置文件

2.2  看sshd的配置文件

软件名为openssh-server 

rpm -qc openssh-server 

2.3    希望他的日志单独存放 

          改ssh 自己的配置文件

2.4  重启配置文件

2.5 ,开另一台机器,先关防火墙     

ssh 连接过来

2.6   看 我们ssh   的日志文件  /data/sshd.log

3,作用
 能看到谁在暴力破解你的密码

(五)网络日志(远程日志功能)

1,实验目的:把日志汇总到一台总的日志服务器上

2,实验步骤:

开虚拟机2   虚拟机3   将2,3的防火墙都关闭

3,打开虚拟机2  日志的配置文件

4,这边用tcp  或者udp 都可以     

我们将这两行解除注释 

5,重新启动rsyslog

6,  查看开启的端口

 7,将虚拟机3重复以上操作

8,dd 复制日志路径,p粘贴  将日志路径改为要发送的   日志服务器

 此处加@@192.168.217.105   指tcp

                                                                     @192.168.217.105   指udp

 9,重新启动rsyslog

 10,测试   我们这边手写一个日志   logger " this  test from 192.168.217.77"

11,查看最新日志消息

12,我们再去  日志汇总机  查看日志消息,可以看到也有该日志

(六) 日志管理工具 journactl

CentOS 7 以后版,利用Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。

1,服务程序报错处理方式

第一种

1,我们这边模拟服务故障,会提醒我们去到  systemctl status httpd.service  查看

2, systemctl status httpd.service屏幕不够大,显示不全   

标准输出重定向

3, systemctl status httpd.service

告诉我们 第42行错误   应该是  isten 错了

4, vim +42  直接进到第42行改

 

第二种

journactl    -xe     可以查看实时日志  以及日志的报错信息

2,     journactl    使用方法

journactl  -u  程序名              只想看一个程序的内容

journalctl -xe --no-pager        可以查看日志详细信息

journactl  -S”开始时间”   -U”结束时间”            想查看一个时间段的日志输入

3,如果想查看几点几分到几点几分的日志

在内存中查找

#查看指定时间的日志

journalctl --since="2017-10-30 18:10:30"
journalctl --since "20 min ago"
journalctl --since yesterday
journalctl --since "2017-01-10" --until "2017-01-11 03:00"
journalctl --since 09:00 --until "1 hour ago"
 

在日志文件中查找

(七)logrotate——日志转储

使用logrotate命令。logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,称为日志转储或滚动。可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行

首先,我们在/var/log/httpd的目录下看到两个文件,这是httpd服务的日志信息
 

 如果我们现在把access_log文件移动成一个新的文件,加载后又会生成新的文件

 

 这是因为在httpd的配置文件中规定了

 

 我们查看一下logrotate的配置文件

 下面是有关的详细信息

配置参数说明
compress通过gzip压缩转储以后的日志
nocompress不压缩
copytruncate用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate备份日志文件但是不截断
create mode ownergroup转储文件,使用指定的权限,所有者,所属组创建新的日志文件
nocreate不建立新的日志文件
delaycompress和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress覆盖 delaycompress 选项,转储同时压缩
errors address专储时的错误信息发送到指定的Email地址
ifempty即使是空文件也转储,此为默认选项
notifempty如果是空文件的话,不转储
mail address把转储的日志文件发送到指定的E-mail 地址
nomail转储时不发送日志文件
olddir directory转储后的日志文件放入指定目录,必须和当前日志文件在同一个文件系统
noolddir转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript在转储以前需要执行的命令,这两个关键字必须单独成行
postrotate/endscript在转储以后需要执行的命令,这两个关键字必须单独成行
daily指定转储周期为每天
weekly指定转储周期为每周
monthly指定转储周期为每月
rotate count指定日志文件删除之前转储的次数,0指没有备份,5指保留5个备份
tabooext [+] list让logrotate*不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig,.rpmsave, v, 和~
size size当日志文件到达指定的大小时才转储bytes(缺省)及KB或MB
sharedscripts默认,对每个转储日志运行prerotate和postrotate脚本,日志文件的绝对路径作为第一个参数传递给脚本。 这意味着单个脚本可以针对与多个文件匹配的日志文件条目多次运行(例如/ var / log / news /.example)。 如果指定此项sharedscripts,则无论有多少个日志*与通配符模式匹配,脚本都只会运行一次
nosharedscripts针对每一个转储的日志文件,都执行一次prerotate和 postrotate脚本,此为默认值
missingok如果日志不存在,不提示错误,继续处理下一个
nomissingok如果日志不存在,提示错误,此为默认值

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

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

相关文章

Java常用类---包装类

包装类 包装类简介 Java语言是典型的面向对象编程语言,但是其中的8种基本数据类型并不支持面向对象编程,基本类型数据不具备"对象"的特性,即:没有携带属性以及没有方法可以调用。 为了解决上述问题,java为…

【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-01)

基础服务-用户中心 什么是用户中心? 用户中心,在我们的概念里面范围比较的广泛,包含了用户信息、账号信息以及租户信息的管理控制,在我们的总体设计里面,如果设计的边界较为紧密,也可以将权限的部分功能R…

poium测试库介绍

poium测试库前身为selenium-page-objects测试库,我在以前的文章中也有介绍过:这可能是最简单的Page Object库,项目的核心是基于Page Objects实现元素定位的封装。该项目由我个人在维护,目前在公司项目中已经得到的应用。 ### poium的优势 Pa…

Unity中URP下使用屏幕坐标采样深度图

文章目录 前言一、Unity使用了ComputeScreenPos函数得到屏幕坐标1、 我们来看一下这个函数干了什么2、我们看一下该函数实现该结果的意义 二、在Shader中使用(法一)1、在Varying结构体中2、在顶点着色器中3、在片元着色器中 三、在Shader中使用&#xff…

微信小程序实战-01翻页时钟-1

文章目录 前言需求分析功能设计界面设计界面结构设计界面样式设计 逻辑设计 单页功能实现运行结果 前言 我经常在手机上用的一款app有一个功能是翻页时钟,基于之前学习的小程序相关的基础内容,我打算在微信小程序中也设计一个翻页时钟功能,J…

高校教务系统登录页面JS分析——河北农业大学教务系统

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文,你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习,勿用于非法用途。 一、密码加…

如何创建容器搭建节点

1.注册Discord账号 https://discord.com/这是登录网址: https://discord.com/ 2.点击startnow注册,用discord注册或者邮箱注册都可,然后登录tickhosting Tick Hosting这是登录网址:Tick Hosting 3.创建servers 4.点击你创建的servers,按照图中步骤进行

J2EE实验二

实验二 Struts2核心组件的应用 一、目的与任务 目的:学习Action中的动态方法调用和Action对Servlet API的三种访问方法,学习OGNL表达式和Struts2标签的使用 任务:实现基于Struts2的登录和注册系统,系统中练习使用Action、OGNL表…

SpringBoot项目处理 多数据源问题(把本地库数据 推送 到另外一个平台的库)

一、需求梳理 把我方数据库的表中数据 ----------> 推送到第三方的数据库 相当于库对库的数据插入, 但是需要的是用代码的方式实现; 二、解决思维 (1) 首先,平台与平台之间的数据库对接; 处理点1: 字段转换 (库表之间的数据字段不一致问题) 解决方式: 挨个字段的对应,如…

每日算法打卡:数的三次方根 day 7

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析示例代码 原题链接 790. 数的三次方根 题目难度:简单 题目描述 给定一个浮点数 n,求它的三次方根。 输入格式 共一行,包含一个浮…

【SpringCloud Alibaba笔记】(4)Seata处理分布式事务

Seata 分布式事务问题 单机单库没这个问题,分布式之前从1: 1 -> 1:N ->N:N 分布式之后 单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用分别使用三个独立的数据源,业务操作需要调用三个服务来完成。 此时每个服务…

强化学习的数学原理学习笔记 - 蒙特卡洛方法(Monte Carlo)

文章目录 概览:RL方法分类蒙特卡洛方法(Monte Carlo,MC)MC BasicMC Exploring Starts🟦MC ε-Greedy 本系列文章介绍强化学习基础知识与经典算法原理,大部分内容来自西湖大学赵世钰老师的强化学习的数学原理…

Hive 的 安装与部署

目录 1 安装 MySql2 安装 Hive3 Hive 元数据配置到 MySql4 启动 Hive Hive 官网 1 安装 MySql 为什么需要安装 MySql? 原因在于Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与其他客户端共享数据,如果想多窗口操作…

强化学习6——动态规划置策略迭代算法,以悬崖漫步环境为例

策略迭代算法 通过策略评估与策略提升不断循环交替,得到最优策略。 策略评估 固定策略 π \pi π 不变,估计状态价值函数V 一个策略的状态价值函数,在马尔可夫决策过程中提到过: V π ( s ) ∑ a ∈ A π ( a ∣ s ) ( r (…

三种解密 HTTPS 流量的方法介绍

Web 安全是一项系统工程,任何细微疏忽都可能导致整个安全堡垒土崩瓦解。拿 HTTPS 来说,它的「内容加密、数据完整性、身份认证」三大安全保证,也会受到非法根证书、服务端配置错误、SSL 库漏洞、私钥被盗等等风险的影响。很多同学认为只要访问…

2024最新腾讯云CVM服务器和轻量应用服务器有什么区别?

腾讯云轻量服务器和云服务器CVM该怎么选?不差钱选云服务器CVM,追求性价比选择轻量应用服务器,轻量真优惠呀,腾讯云服务器网txyfwq.com活动 https://curl.qcloud.com/oRMoSucP 轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元…

游戏、设计选什么内存条?光威龙武系列DDR5量大管饱

如果你是一位PC玩家或者创作者,日常工作娱乐中,确实少不了大容量高频内存的支持,这样可以获得更高的工作效率,光威龙武系列DDR5内存条无疑是理想之选。它可以为计算机提供强劲的性能表现和稳定的运行体验,让我们畅玩游…

wblogic中间件配置数据源

配置数据源 1.服务-数据源-配置-新建 2.单机选一般数据源 3.选择源名称、jndi名称、数据库类型 4.选择驱动 5.下一步 6.输入连接串信息 参考&#xff1a; 格式二&#xff1a;jdbc:oracle:thin:<host>:<port>:<SID> 数据库名称配置的sid 7.测试配置&#xff…

4.5 A TILED MATRIX MULTIPLICATION KERNEL

我们现在准备展示一个tiled矩阵乘法内核&#xff0c;该内核使用共享内存来减少对全局内存的流量。图中4.16显示的内核。实施图4.15.中所示的阶段。在图4.16中&#xff0c;第1行和第2行声明Mds和Nds为共享内存变量。回想一下&#xff0c;共享内存变量的范围是一个块。因此&#…