【Linux入侵日志排查】
在Linux系统中,不同的服务和应用程序可能会产生不同格式的日志记录。以下是一些常见类型的日志文件及其格式说明:
以下是一些常见的 Linux 日志字段格式说明,以及具体的示例:
- /var/log/auth.log:此日志文件包含与身份验证相关的信息,例如用户登录、注销和失败的登录尝试。
示例:
Aug 29 11:30:14 myserver sshd[2222]: Accepted publickey for user1 from 192.168.1.100 port 56789 ssh2: RSA SHA256:1234567890abcdefg
Aug 29 11:30:14 myserver sshd[2222]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
Aug 29 11:35:07 myserver sshd[2222]: Received disconnect from 192.168.1.100 port 56789:11: disconnected by user
Aug 29 11:35:07 myserver sshd[2222]: Disconnected from 192.168.1.100 port 56789
Aug 29 11:35:07 myserver sshd[2222]: pam_unix(sshd:session): session closed for user user1
字段说明:
Aug 29 11:30:14:事件发生的时间戳。myserver:发生事件的系统的主机名。sshd[2222]:记录事件的进程名。Accepted publickey for user1 from 192.168.1.100 port 56789 ssh2: RSA SHA256:1234567890abcdefg:事件的详细描述。
- /var/log/secure:此日志文件包含与安全相关的信息,例如 SELinux 相关的事件和身份验证事件。
示例:
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
字段说明:
Aug 29 11:30:14:事件发生的时间戳。myserver:发生事件的系统的主机名。sshd[2222]:记录事件的进程名。SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023:事件的详细描述。
- /var/log/messages:此日志文件包含与系统消息相关的信息,例如系统启动、关机、软件包安装和系统错误。
示例:
Aug 29 11:30:14 myserver kernel: imklog 5.8.10, log source = /proc/kmsg started.
Aug 29 11:30:14 myserver rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="939" x-info="http://www.rsyslog.com"] start
Aug 29 11:30:14 myserver systemd[1]: Started System Logging Service.
Aug 29 11:30:14 myserver systemd[1]: Reached target System Logging.
Aug 29 11:30:14 myserver systemd[1]: systemd-tmpfiles-setup-dev.service: Succeeded.
Aug 29 11:30:14 myserver systemd[1]: Finished Create Volatile Files and Directories.
字段说明:
Aug 29 11:30:14:事件发生的时间戳。myserver:发生事件的系统的主机名。kernel:记录事件的进程名。imklog 5.8.10, log source = /proc/kmsg started.:事件的详细描述。
- /var/log/syslog:此日志文件包含与系统相关的信息,例如系统启动、关机、软件包安装和系统错误。
示例:
Aug 29 11:30:14 myserver kernel: imklog 5.8.10, log source = /proc/kmsg started.
Aug 29 11:30:14 myserver rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="939" x-info="http://www.rsyslog.com"] start
Aug 29 11:30:14 myserver systemd[1]: Started System Logging Service.
Aug 29 11:30:14 myserver systemd[1]: Reached target System Logging.
Aug 29 11:30:14 myserver systemd[1]: systemd-tmpfiles-setup-dev.service: Succeeded.
Aug 29 11:30:14 myserver systemd[1]: Finished Create Volatile Files and Directories.
字段说明:
Aug 29 11:30:14:事件发生的时间戳。myserver:发生事件的系统的主机名。kernel:记录事件的进程名。imklog 5.8.10, log source = /proc/kmsg started.:事件的详细描述。
- /var/log/lastlog:此日志文件包含每个用户最近一次登录的信息。
示例:
root pts/0 192.168.1.100 Wed Aug 29 11:30:14 2018
user1 pts/1 192.168.1.101 Thu Aug 30 09:15:23 2018
user2 pts/2 192.168.1.102 Fri Sep 01 14:30:45 2018
字段说明:
root:用户名。pts/0:终端名称。192.168.1.100:登录时的 IP 地址。Wed Aug 29 11:30:14 2018:最近一次登录的时间戳。
- /var/log/wtmp:此日志文件包含与用户登录相关的信息。
示例:
root pts/0 192.168.1.100 Wed Aug 29 11:30:14 2018
user1 pts/1 192.168.1.101 Thu Aug 30 09:15:23 2018
user2 pts/2 192.168.1.102 Fri Sep 01 14:30:45 2018
字段说明:
root:用户名。pts/0:终端名称。192.168.1.100:登录时的 IP 地址。Wed Aug 29 11:30:14 2018:登录时间戳。
- /var/log/btmp:此日志文件包含与失败的用户登录尝试相关的信息。
示例:
root pts/0 192.168.1.100 Wed Aug 29 11:30:14 2018
user1 pts/1 192.168.1.101 Thu Aug 30 09:15:23 2018
user2 pts/2 192.168.1.102 Fri Sep 01 14:30:45 2018
字段说明:
root:用户名。pts/0:终端名称。192.168.1.100:登录时的 IP 地址。Wed Aug 29 11:30:14 2018:登录时间戳。
-
Apache访问日志(
/var/log/apache2/access.log):Apache访问日志记录了所有向Apache服务器发出的请求。一个典型的Apache访问日志记录如下:
192.168.1.100 - - [10/Feb/2022:15:20:30 +0000] "GET /index.html HTTP/1.1" 200 1024格式说明:
- 客户端IP地址(192.168.1.100):发出请求的客户端IP地址。
- 标识符(-):通常是一个连字符,表示客户端标识符未知。
- 用户名(-):通常是一个连字符,表示客户端用户名未知。
- 时间戳([10/Feb/2022:15:20:30 +0000]):事件发生的日期和时间,以及时区。
- 请求(GET /index.html HTTP/1.1):客户端发出的HTTP请求。
- 状态码(200):服务器对请求的响应状态码。
- 响应大小(1024):服务器响应的内容大小,以字节为单位。
-
Apache错误日志(
/var/log/apache2/error.log):Apache错误日志记录了Apache服务器的错误和诊断信息。一个典型的Apache错误日志记录如下:
[Wed Feb 10 15:20:30.123456 2022] [core:error] [pid 12345] [client 192.168.1.100:1234] File does not exist: /var/www/html/favicon.ico格式说明:
- 时间戳(Wed Feb 10 15:20:30.123456 2022):事件发生的日期和时间。
- 日志级别和模块([core:error]):产生日志记录的模块名称和错误级别。
- 进程ID(pid 12345):产生日志记录的进程ID(PID)。
- 客户端信息(client 192.168.1.100:1234):发出请求的客户端IP地址和端口号。
- 消息(File does not exist: /var/www/html/favicon.ico):日志记录的具体消息。
-
Nginx访问日志(
/var/log/nginx/access.log):
Nginx访问日志记录了所有向Nginx服务器发出的请求。一个典型的Nginx访问日志记录如下:
192.168.1.100 - - [10/Feb/2022:15:20:30 +0000] "GET /index.html HTTP/1.1" 200 1024 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
格式说明:
- 客户端IP地址(192.168.1.100):发出请求的客户端IP地址。
- 标识符(-):通常是一个连字符,表示客户端标识符未知。
- 用户名(-):通常是一个连字符,表示客户端用户名未知。
- 时间戳([10/Feb/2022:15:20:30 +0000]):事件发生的日期和时间,以及时区。
- 请求(GET /index.html HTTP/1.1):客户端发出的HTTP请求。
- 状态码(200):服务器对请求的响应状态码。
- 响应大小(1024):服务器响应的内容大小,以字节为单位。
- 引用页面(“-”):发出请求的页面的URL。在这个例子中,没有引用页面。
- 用户代理(“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”):客户端浏览器或爬虫的用户代理字符串。
- Nginx错误日志(
/var/log/nginx/error.log):
Nginx错误日志记录了Nginx服务器的错误和诊断信息。一个典型的Nginx错误日志记录如下:
2022/02/10 15:20:30 [error] 12345#12345: *1 open() "/var/www/html/favicon.ico" failed (2: No such file or directory), client: 192.168.1.100, server: example.com, request: "GET /favicon.ico HTTP/1.1", host: "example.com"
格式说明:
- 时间戳(2022/02/10 15:20:30):事件发生的日期和时间。
- 日志级别([error]):错误级别。
- 进程ID和线程ID(12345#12345):产生日志记录的进程ID(PID)和线程ID。
- 连接ID(*1):Nginx为每个连接分配的唯一ID。
- 消息(open() “/var/www/html/favicon.ico” failed (2: No such file or directory)):日志记录的具体消息。
- 客户端信息(client: 192.168.1.100):发出请求的客户端IP地址。
- 服务器名称(server: example.com):Nginx服务器的名称。
- 请求(request: “GET /favicon.ico HTTP/1.1”):客户端发出的HTTP请求。
- 主机(host: “example.com”):请求的主机名。
这些日志文件只是Linux系统中众多日志文件的一部分。不同的服务和应用程序可能会产生不同格式的日志记录。在分析日志时,请参考相关文档以了解日志格式和字段的具体含义。使用cat、grep、awk等命令来过滤和分析日志文件。
12. MySQL错误日志(/var/log/mysql/error.log):
MySQL错误日志记录了MySQL数据库服务器的错误和诊断信息。一个典型的MySQL错误日志记录如下:
2022-02-10T15:20:30.123456Z 12345 [Note] Access denied for user 'invaliduser'@'192.168.1.100' (using password: YES)
格式说明:
- 时间戳(2022-02-10T15:20:30.123456Z):事件发生的日期和时间,采用ISO 8601格式。
- 进程ID(12345):产生日志记录的进程ID(PID)。
- 日志级别([Note]):错误级别。
- 消息(Access denied for user ‘invaliduser’@‘192.168.1.100’ (using password: YES)):日志记录的具体消息。
- PostgreSQL日志(
/var/log/postgresql/postgresql-<version>-main.log):
PostgreSQL日志记录了PostgreSQL数据库服务器的操作和错误信息。一个典型的PostgreSQL日志记录如下:
2022-02-10 15:20:30 UTC [12345]: [1-1] user=invaliduser,db=mydb,client=192.168.1.100 ERROR: syntax error at or near "SELECTT" at character 8
格式说明:
- 时间戳(2022-02-10 15:20:30 UTC):事件发生的日期和时间。
- 进程ID(12345):产生日志记录的进程ID(PID)。
- 会话信息([1-1]):包含会话ID和命令计数器的会话信息。
- 用户、数据库和客户端信息(user=invaliduser,db=mydb,client=192.168.1.100):发出请求的用户、数据库和客户端IP地址。
- 错误级别和消息(ERROR: syntax error at or near “SELECTT” at character 8):错误级别和具体消息。
- Docker日志:
Docker容器的日志可以通过docker logs命令查看。这些日志通常是容器中运行的应用程序的标准输出和标准错误。日志格式因应用程序而异,因此请参考相关文档以了解日志格式和字段的具体含义。
查看Docker容器的日志:
docker logs container_name_or_id
这些仅是Linux系统中各种日志文件的一部分。在分析日志时,请参考相关文档以了解日志格式和字段的具体含义。使用cat、grep、awk等命令来过滤和分析日志文件。
其它日志
以下是一些其他常见的 Linux 日志文件及其字段格式说明:
- /var/log/dmesg:此日志文件包含与内核启动和运行相关的信息。
字段说明:
timestamp:事件发生的时间戳。hostname:发生事件的系统的主机名。process:记录事件的进程名。message:事件的详细描述。
- /var/log/kern.log:此日志文件包含与内核相关的信息,例如硬件故障和驱动程序错误。
字段说明:
timestamp:事件发生的时间戳。hostname:发生事件的系统的主机名。process:记录事件的进程名。message:事件的详细描述。
- /var/log/cron:此日志文件包含与计划任务(cron)相关的信息,例如计划任务的执行和错误。
字段说明:
timestamp:事件发生的时间戳。hostname:发生事件的系统的主机名。process:记录事件的进程名。message:事件的详细描述。
- /var/log/maillog:此日志文件包含与电子邮件服务器相关的信息,例如邮件传输和接收。
字段说明:
timestamp:事件发生的时间戳。hostname:发生事件的系统的主机名。process:记录事件的进程名。message:事件的详细描述。
- /var/log/boot.log:此日志文件包含与系统启动相关的信息,例如系统启动过程中的错误和警告。
字段说明:
timestamp:事件发生的时间戳。hostname:发生事件的系统的主机名。process:记录事件的进程名。message:事件的详细描述。
- /var/log/dpkg.log:此日志文件包含与软件包安装和卸载相关的信息。
字段说明:
timestamp:事件发生的时间戳。hostname:发生事件的系统的主机名。process:记录事件的进程名。message:事件的详细描述。
- /var/log/faillog:此日志文件包含与失败的用户登录尝试相关的信息。
字段说明:
timestamp:事件发生的时间戳。username:用户名。hostname:发生事件的系统的主机名。process:记录事件的进程名。message:事件的详细描述。
请注意,这些日志文件的格式可能因发行版和配置而异。在分析日志时,请确保了解您的系统的具体配置。
各种类型的Web服务器有不同的日志路径和日志格式。以下是一些常见的Web服务器及其日志路径、日志案例和字段说明:
- Apache HTTP服务器
日志路径:默认情况下,Apache的访问日志路径为/var/log/apache2/access.log(在Debian/Ubuntu系统上)或/var/log/httpd/access_log(在RedHat/CentOS系统上)。
日志案例:
127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] "GET /index.html HTTP/1.1" 200 2326 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
字段说明:
- 127.0.0.1:客户端IP地址
- -:表示标识符,通常为"-",因为它很少使用
- -:表示用户身份,通常为"-",因为它很少使用
- [15/Nov/2021:10:30:00 +0000]:访问时间
- “GET /index.html HTTP/1.1”:请求方法、请求URI和HTTP协议版本
- 200:HTTP状态码
- 2326:响应大小(以字节为单位)
- “-”:表示referrer,通常为"-",因为它很少使用
- “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3”:用户代理字符串
- Nginx服务器
日志路径:默认情况下,Nginx的访问日志路径为/var/log/nginx/access.log。
日志案例:
127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] "GET /index.html HTTP/1.1" 200 2326 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
字段说明:与Apache HTTP服务器的字段说明相同。
- IIS(Internet Information Services)服务器
日志路径:默认情况下,IIS的访问日志路径为%SystemDrive%\inetpub\logs\LogFiles。
日志案例:
2021-11-15 10:30:00 127.0.0.1 GET /index.html - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/58.0.3029.110+Safari/537.3 200 0 0 15
字段说明:
- 2021-11-15 10:30:00:访问时间
- 127.0.0.1:客户端IP地址
- GET:请求方法
- /index.html:请求URI
- -:表示查询字符串,通常为"-",因为它很少使用
- 80:服务器端口
- -:表示用户身份,通常为"-",因为它很少使用
- 127.0.0.1:服务器IP地址
- Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/58.0.3029.110+Safari/537.3:用户代理字符串
- 200:HTTP状态码
- 0:Win32状态码
- 0:子状态码
- 15:响应时间(以毫秒为单位)
除了上述常见的Web服务器日志外,还有其他一些Web服务器和应用服务器,它们也有自己的日志路径和格式。以下是一些补充示例:
- Tomcat服务器
日志路径:默认情况下,Tomcat的访问日志路径为$CATALINA_HOME/logs/localhost_access_log.YYYY-MM-DD.txt。
日志案例:
127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] "GET /index.jsp HTTP/1.1" 200 2326
字段说明:
- 127.0.0.1:客户端IP地址
- -:表示远程用户,通常为"-",因为它很少使用
- [15/Nov/2021:10:30:00 +0000]:访问时间
- “GET /index.jsp HTTP/1.1”:请求方法、请求URI和HTTP协议版本
- 200:HTTP状态码
- 2326:响应大小(以字节为单位)
- Lighttpd服务器
日志路径:默认情况下,Lighttpd的访问日志路径为/var/log/lighttpd/access.log。
日志案例:
127.0.0.1 127.0.0.1 - [15/Nov/2021:10:30:00 +0000] "GET /index.html HTTP/1.1" 200 2326 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
字段说明:与Apache HTTP服务器的字段说明相同,但在客户端IP地址后面多了一个服务器IP地址字段。
- Caddy服务器
日志路径:Caddy默认没有访问日志,但可以通过配置启用。访问日志路径取决于配置文件中的设置。
日志案例:
{"level":"info","ts":1636968600.123456,"logger":"http.log.access","msg":"handled request","request":{"remote_addr":"127.0.0.1:12345","proto":"HTTP/1.1","method":"GET","host":"localhost","uri":"/index.html","headers":{"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"]}},"common_log":"127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] \"GET /index.html HTTP/1.1\" 200 2326","duration":0.000123,"size":2326,"status":200,"resp_headers":{"Server":["Caddy"],"Content-Type":["text/html"]}}
字段说明:Caddy服务器的日志格式为JSON,包含以下字段:
- level:日志级别(如info、error等)
- ts:时间戳
- logger:记录器名称
- msg:日志消息
- request:请求详细信息,包括远程地址、协议、方法、主机、URI和请求头等
- common_log:通用日志格式,与Apache和Nginx类似
- duration:请求处理时间(以秒为单位)
- size:响应大小(以字节为单位)
- status:HTTP状态码
- resp_headers:响应头信息
请注意,上述示例中的路径和格式可能会因服务器配置和版本而有所不同。你可以根据需要在服务器配置文件中自定义日志路径和格式。
相关文章:
【Linux入侵日志排查】
在Linux系统中,不同的服务和应用程序可能会产生不同格式的日志记录。以下是一些常见类型的日志文件及其格式说明: 以下是一些常见的 Linux 日志字段格式说明,以及具体的示例: /var/log/auth.log:此日志文件包含与身份…...
从哪些方面分析Linux内核源码
从这些方面分析Linux内核源码,这里提供一个大致的大纲: 一、Linux内核源码概述 1. 什么是Linux内核? 2. Linux内核的主要功能 3. Linux内核的版本控制 4. Linux内核的组织结构 二、Linux内核编译与配置 1. 获取Linux内核源码 2. 安装…...
C#WPF数据模板应用实例
一、数据模板定义 数据模板是一块定义如何显示绑定的数据对象的XAML标记。 有两种类型的控件支持数据模板: 1、内容控件 通过ContentTemplate属性支持数据模板。内容模板用于显示任何放置在Content属性中的内容。 2、列表控件(继承自ItemsControl类的控件) 通过ItemsTem…...
ansible练习题1
安装并配置ansible 在控制节点上安装并配置Ansible,要求如下: | 安装所需的软件包: 创建静态inventory文件/home/student/ansible/inventory ,要求如下: servera属于dev主机组 serverb属于test和balancers主机组 serverc和serverd属于prod主机组 …...
六大排序详讲(直接插入排序+希尔排序+选择排序+堆排序+冒泡排序+快速排序)
文章目录 排序一、 排序的概念1.排序:2.稳定性:3.内部排序:4.外部排序: 二、插入排序1.直接插入排序2.希尔排序 三、选择排序1.直接选择排序方法一方法二直接插入排序和直接排序的区别 2.堆排序 四、交换排序1.冒泡排序2.快速排序…...
Clickhouse初认识
技术主题-clickhouse 一什么是clickHouse 1)本质上就是一款数据库管理系统,能提供海量数据的存储和检索 2)基于列存储,数据是按照列进行存储的(数据格式一样,方便进行压缩) 3)具备…...
网络安全项目简介
安全项⽬ 基线检查 更改缺省的账户检查Guest用户是否禁用密码复杂性密码长度账户口令的生存期口令重复次数口令认证失败次数口令到期提示域成员禁用更改机器账户密码限制匿名用户连接共享账户检查远程关机授权是否开启默认文件共享每个用户是否遵循最小权限原则adminstrator账…...
CSDN每日一题学习训练——Python版(N皇后 II、买卖股票的最佳时机 II、编程通过键盘输入每一位运动员)
版本说明 当前版本号[20231120]。 版本修改说明20231120初版 目录 文章目录 版本说明目录N皇后 II题目解题思路代码思路参考代码 买卖股票的最佳时机 II题目解题思路代码思路参考代码 编程通过键盘输入每一位运动员题目解题思路代码思路参考代码 N皇后 II 题目 n 皇后问题…...
semodule工具详解(1)
本文内容参考: semodule(8) - Linux manual page https://linux.die.net/man/8/semodule 1. 介绍 名称 semoudule —— 管理SELinux策略模块。 简介 semodule [options]... MODE [MODES]... 描述 semodule是用于管理SELinux策略模块的工具,包括安装…...
用百度AI大模型给头像换风格
心血来潮想尝试尝试AI小应用,给图片加个风格(例如微信头像),于是有了这篇简短的教程 目录 1. 领取免费资源2. 在应用列表创建应用3. 在线API调试4. 效果对比 1. 领取免费资源 网站:百度智能云 百度给提供了很多AIGC的…...
从入门到精通,mac电脑录屏软件使用教程!
“mac电脑怎么录屏呀,刚买了一台mac电脑,用了几个月感觉挺流畅的,最近因为工作原因,需要用到录屏功能,但是我不会操作,想问问大家有没有简单易懂的录屏教程,谢谢啦。” 在日常生活中࿰…...
Nginx(反向代理,负载均衡,动静分离)
反向代理 Nginx反向代理是一种将客户端请求转发给后端服务器的技术,即反向代理服务器。在这种架构中,客户端请求首先到达Nginx服务器,然后由Nginx服务器将请求转发给后端服务器,后端服务器响应请求,并将响应传递回Ngi…...
【Spring】SpringBoot的扩展点之ApplicationContextInitializer
简介 其实spring启动步骤中最早可以进行扩展的是实现ApplicationContextInitializer接口。来看看这个接口的注释。 package org.springframework.context;/*** Callback interface for initializing a Spring {link ConfigurableApplicationContext}* prior to being {linkpl…...
哈希表HashTable
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。 哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,复杂度O(1) 哈希表本质…...
【软件测试】一位优秀测试工程师具备哪些知识和经验?
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 根据观察…...
MongoDB相关基础操作(库、集合、文档)
文章目录 一、库的相关操作1、查看数据库2、查看当前库3、创建数据库4、删除数据库 二、集合的相关操作1、查看库中所有集合2、创建集合2.1、显示创建2.2、隐式创建 3、删除集合 三、文档的相关操作1、插入文档1.1、插入单条文档1.2、插入多条文档1.3、脚本方式 2、查询文档3、…...
进程和线程( Process and Thread)
目录 一、操作系统(Operating System) 操作系统的定位 二、 什么是进程/任务(Process/Task) 1.进程控制块抽象(PCB Process Control Block) 2.PCB中重要的属性 3.并发编程 三、线程(Thread) 1. 线程是…...
linux apache安装及虚拟主机配置
centos 安装apache, yum install httpd 将httpd.conf中的ServerName 前面的 # 去掉。 apache 2.2 的虚拟机的配置放置在conf/extra/httpd-vhosts.conf 中 apache 虚拟主机设置 a2enmod rewrite sudo vim 000-default 修改 ServerName *:80 <VirtualHost *…...
基于Spring Boot 框架的试卷自动生成系统的设计与实现
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍…...
开发《猫咪攻略》小游戏的意义
开发《猫咪攻略》小游戏的意义有以下几点: 学习和掌握游戏开发的基本技能:通过开发《猫咪攻略》小游戏,可以学习和掌握游戏开发的基本技能,包括游戏策划、游戏设计、游戏编程和游戏测试等方面的技能。增强对猫咪的了解和认识&…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
