当前位置: 首页 > news >正文

文件系统与日志分析

一,文件系统

(一)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]#w20: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如果日志不存在,提示错误,此为默认值

相关文章:

文件系统与日志分析

一,文件系统 (一)inode 和block概述 1,文件数据包括元信息与实际数据 2,文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节 3,block (块) 连续的八个扇区组成一…...

labview 与三菱FX 小型PLC通信(OPC)

NI OPC服务器与三菱FX3U PLC通讯方法 一、新建通道名称为:MIT 二、选择三菱FX系列 三、确认端口号相关的参数(COM端:7.波特率:9600,数据位:7,校验:奇校验,停止位&#xf…...

掌握Linux网络配置:价格亲民,操作简便!

前言 在Linux系统中,网络配置是实现连接、通信和安全的重要一环。无论你是初学者还是有经验的用户,掌握网络配置命令能帮助你轻松管理网络接口、设置IP地址以及查看连接状态。以下是一些关键命令和示例,让你快速掌握网络操作的精髓&#xff…...

郑州大学算法设计与分析实验2

判断题 1 #include<bits/stdc.h> using namespace std;const int N 50; int f[N], n;int main() { // freopen("1.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;f[1] 1; f[2] 1;for(int i 3; i &l…...

【CMake】1. VSCode 开发环境安装与运行

CMake 示例工程代码 https://github.com/LABELNET/cmake-simple 插件 使用 VSCode 开发C项目&#xff0c;安装 CMake 插件 CMakeCMake ToolsCMake Language Support &#xff08;建议&#xff0c;语法提示) 1. 配置 CMake Language Support , Windows 配置 donet 环境 这…...

使用vue3+<script setup>+element-plus中el-table前端切片完成分页效果

<template><div><el-table :data"visibleData" :row-key"row > row.id"><el-table-column prop"name" label"姓名"></el-table-column><el-table-column prop"age" label"年龄&qu…...

vue 中 computed 和 watch 的区别

在Vue中&#xff0c;computed和watch都是用于监听数据的变化&#xff0c;并且根据变化做出相应的反应。 computed是一个计算属性&#xff0c;它会根据依赖的数据的变化自动计算得出一个新的值&#xff0c;并且具有缓存的特性。当依赖的数据发生变化时&#xff0c;computed属性…...

gephi——graphviz插件设置

gephi_graphviz插件设置 以下是我总结出来的一点经验 1. 安装graphviz软件&#xff0c;请见作者其他博客 2. 安装gephi 插件&#xff0c;并激活 3. 运行graphviz布局&#xff0c;会遇到找不到dot问题 问题描述&#xff1a;Graphviz process error X There was an error launc…...

wireshark抓包分析HTTP协议,HTTP协议执行流程,

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 使用WireShark工具抓取「HTTP协议」的数据包&#…...

Linux第13步_安装“vim编辑器”及应用介绍

学习“磁盘重新分区”后&#xff0c;嵌入式Linux系统环境搭建进入安装“vim编辑器”这个环节。vim编辑器可以用来修改文件&#xff0c;在后期使用中&#xff0c;会经常用到。 1、安装“vim编辑器” 输入“sudo apt-get install vim回车”&#xff0c;就可以执行安装“vim编辑…...

Yapi安装配置(CentOs)

环境要求 nodejs&#xff08;7.6) mongodb&#xff08;2.6&#xff09; git 准备工作 清除yum命令缓存 sudo yum clean all卸载低版本nodejs yum remove nodejs npm -y安装nodejs,获取资源,安装高版本nodejs curl -sL https://rpm.nodesource.com/setup_8.x | bash - #安装 s…...

HCIA-Datacom题库(自己整理分类的)_08_FTP协议【8道题】

一、单选 1.在使用FTP协议升级路由器软件时&#xff0c;传输模式应该选用___ 二进制模式 字节模式 文字模式 流字节模式 解析&#xff1a;二进制模式&#xff1a;在数据连接中传输&#xff0c;不对数据进行任何处理&#xff0c;不需要转换或格式化就可以传输字符。 2.以…...

【开源GPT项目 - 在问】让知识无界,智能触手可及

Chatanywhere: chatAnywhere 在问 | 让知识无界&#xff0c;智能触手可及 项目简介 这是一个免费的在线聊天工具&#xff0c;旨在让用户更方便地享受科技带来的便利。用户可以使用我们的工具来获取答案、寻求建议、进行翻译和计算等等。这是由一位个人开发者创建的&#xff…...

【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于Real-ESRGAN的TPU超分模型部署

2023 CCF 大数据与计算智能大赛 《基于TPU平台实现超分辨率重建模型部署》 洋洋很棒 李鹏飞 算法工程师 中国-烟台 2155477673qq.com 团队简介 本人从事工业、互联网场景传统图像算法及深度学习算法开发、部署工作。其中端侧算法开发及部署工作5年时间。 摘要 本文是…...

Vue中的组件通信方式及应用场景

在Vue中&#xff0c;组件通信有以下几种方式&#xff1a; Props / $emit&#xff1a;父组件通过给子组件传递props属性&#xff0c;子组件通过$emit事件将数据传递给父组件。适用于父组件向子组件传递数据。 自定义事件&#xff1a;父组件通过$on监听子组件触发的事件&#xf…...

RA8900CE汽车用c总线接口实时时钟模块

汽车用c总线接口实时时钟模块内置调频32.768 kHz晶体单元和DTCXO&#xff0c;高稳定性和电源切换。 接口类型我 2C-Bus接口(400kHz)界面电压范围2.5V ~ 5.5V温度补偿电压范围2.0V至5.5V计时电压范围1.6V ~ 5.5V可选时钟输出(32.768 kHz, 1024 Hz, 1 Hz)各种功能齐全的日历、报…...

屏幕截图--Snagit

Snagit是一款优秀的屏幕、文本和视频捕获、编辑与转换软件。它不仅可以捕获静止的图像&#xff0c;还能获得动态的图像和声音。软件界面干净清爽&#xff0c;功能板块一目了然&#xff0c;为用户提供专业的屏幕录制方案。可以根据自己的需求调整录制视频的分辨率、帧数、输出格…...

PHP运行环境之宝塔Web站点部署

目录 Web站点部署流程(部署聚合支付后台) 项目文件 将上传的文件解压文件至根目录 修改站点关键信息 设置伪静态,选择:thinkphp,并保存 设置PHP,选择:70+版本即可。 安装网站 1设置运行目录...

使用高版本JDK编译低版本代码

背景 SonarQube运行于Java17&#xff0c;使用Sonar的Maven插件编译时&#xff0c;如果编译使用的JDK版本低于SonarQube使用的Java17&#xff0c;则会提示Java文件不匹配问题。 Error during SonarScanner execution java.lang.UnsupportedClassVersionError: org/sonar/batch/…...

Zuul相关问题及到案(2024)

1、什么是Zuul&#xff1f;它在微服务架构中有什么作用&#xff1f; Zuul是Netflix开源的一种提供API网关服务的应用程序&#xff0c;它在微服务架构中扮演着流量的前门角色。主要功能包括以下几点&#xff1a; 路由转发&#xff1a;Zuul网关将外部请求转发到具体的微服务实例…...

【CSS】讲一讲BFC、IFC、GFC、FFC

1. 前言 FC&#xff08;Formatting Contexts&#xff09;&#xff0c;是CSS2.1的一个概念&#xff0c;是页面中的一块渲染区域&#xff0c;具有一套渲染规则&#xff0c;决定FC中子元素如何定位&#xff0c;以及和其他元素的关系和相互作用。在说FC之前说一下文档流。 1.1. 普…...

阶段十-分布式-任务调度

第一章 定时任务概述 在项目中开发定时任务应该一种比较常见的需求&#xff0c;在 Java 中开发定时任务主要有三种解决方案&#xff1a;一是使用JDK 自带的 Timer&#xff0c;二是使用 Spring Task&#xff0c;三是使用第三方组件 Quartz Timer 是 JDK 自带的定时任务工具,其…...

Godot4.2——爬虫小游戏简单制作

目录 一、项目 二、项目功能 怪物 人物 快捷键 分数 游戏说明 提示信息 三、学习视频 UI制作 游戏教程 四、总结 一、项目 视频演示&#xff1a;Godot4爬虫小游戏简单制作_哔哩哔哩bilibili 游戏教程&#xff1a;【小猫godot4入门教程 C#版 已完结】官方入门案例 第…...

对象的前世今生与和事佬(static)的故事

目录 1.对象村的秘密&#xff08;对象在内存的实现&#xff09; 1.1 内存的好兄弟“堆”与“栈” 1.1.1方法喜欢玩泰山压顶 1.1.2 stack的实现 1.2栈上的对象引用 1.2.1有关对象局部变量 1.2.2 如果局部变量生存在栈上&#xff0c;那么实例变量呢&#xff1f; 1.2.3创建…...

报错curl: (6) Could not resolve host: raw.githubusercontent...的解决办法

我起初想要在macOS系统安装pip包&#xff0c;首先在终端安装homebrew&#xff0c;敲了命令&#xff1a;/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent...)" 之后触发的报错&#xff0c;报错内容&#xff1a;curl: (6) Could not resolve host: raw.…...

【基础篇】十二、引用计数法 可达性分析算法

文章目录 1、Garbage Collection2、方法区的回收3、堆对象回收4、引用计数法5、可达性分析算法6、查看GC Root对象 1、Garbage Collection C/C&#xff0c;无自动回收机制&#xff0c;对象不用时需要手动释放&#xff0c;否则积累导致内存泄漏&#xff1a; Java、C#、Python、…...

C语言算法(二分查找、文件读写)

二分查找 前提条件&#xff1a;数据有序&#xff0c;随机访问 #include <stdio.h>int binary_search(int arr[],int n,int key);int main(void) {}int search(int arr[],int left,int right,int key) {//边界条件if(left > right) return -1;//int mid (left righ…...

流媒体学习之路(WebRTC)——Pacer与GCC(5)

流媒体学习之路(WebRTC)——Pacer与GCC&#xff08;5&#xff09; —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标&#xff1a;可以让大家熟悉各类Qos能力、带宽估计能力&#xff0c;提供每个环节关键参数调节接口并实现一个json全…...

2023版本QT学习记录 -11- 多线程的使用(QT的方式)

———————多线程的使用(QT方式)——————— &#x1f384;效果演示 两个线程都输出一些调试信息 &#x1f384;创建多线程的流程 &#x1f384;头文件 #include "qthread.h"&#x1f384;利用多态重写任务函数 class rlthread1 : public QThread {Q_OBJE…...

iOS苹果和Android安卓测试APP应用程序的差异

Hello大家好呀&#xff0c;我是咕噜铁蛋&#xff01;我们经常需要关注移动应用程序的测试和优化&#xff0c;以提供更好的用户体验。在移动应用开发领域&#xff0c;iOS和Android是两个主要的操作系统平台。本文铁蛋讲给各位小伙伴们详细介绍在App测试中iOS和Android的差异&…...

空调网站模板/乔拓云智能建站官网

http://bbs.w3china.org/blog/more.asp?namehongrui&id24192&commentid62227 本文参考了blogjava的文章&#xff0c;做了一定的修改。 1.如何获得当前文件路径 常用&#xff1a; (1).Test.class.getResource("") 得到的是当前类FileTest.class文件的URI目录…...

东莞网站推广排行/关键词推广

https://gitee.com/mindspore/community/issues/I5N0IZ 预热作业 如图&#xff0c;非常简单&#xff0c;这样就跑起来了。 我们顺利地把4个样例全部跑完了。 1、GPT 第一个pytest非常简单&#xff0c;运行就可以了 第二个跑脚本&#xff0c;需要注意几点&#xff0c;我们先…...

广州专业网站制作公司/优化的近义词

程序可能找到放上去的web services ,也可以得到services中的方法,可就是不能用!以下是错误信息:未处理的“System.Web.Services.Protocols.SoapException”类型的异常出现在 system.web.services.dll 中。其他信息: 服务器无法处理请求。 --> 无法生成临时类(result1)。erro…...

做花型设计哪个网站下载素材好/浙江网站推广运营

1.v-model 解析 语法糖在内部为不同的输入元素使用不同的property并抛出不同的事件&#xff1a; a. text 和 textarea 元素使用 value property 和 input 事件&#xff1b; b. checkbox 和 radio 使用 checked property 和 change 事件&#xff1b; c. select 字段将 value 作…...

网站建设活动计划/种子搜索器

在使用jquery的方式为元素绑定事件时&#xff0c;我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件。 $(selector).bind(event,data,function) $(selector).click(function) 像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是…...

广州市建设工程交易服务中心网站/郑州网站推广优化公司

SQL Server 平台修改自增列值由于之前处理过sql server数据库的迁移工作&#xff0c;尝试过其自增列值的变更&#xff0c;但是通过SQL 语句修改自增列值&#xff0c;是严格不允许的&#xff0c;直接报错(无法更新标识列 自增列名称‘)。sql server我测试是2008、2012和2014&…...