首页 文章 精选 留言 我的

精选列表

搜索[加密工具],共10000篇文章
优秀的个人博客,低调大师

GoAccess 1.6 发布,日志分析工具

GoAccess 1.6 现已发布。GoAccess 是一个基于终端的快速日志分析器。其核心思想是实时快速分析和查看 Web 服务器统计信息,而无需使用浏览器,适合希望通过 SSH 快速分析访问日志,或者只是喜欢在终端中工作的开发者。虽然终端输出是默认输出,但它能够生成完整的,自包含的实时 HTML 报告,非常适合分析,监控和数据可视化,以及 JSON 和 CSV 报告。 本次更新内容包括: 稍微更改了 XFF 字段的指定方式。有关详细信息,看参见手册页。 确保在 DBIP City Lite 数据库中显示 city。 如果--no-progresspassed,确保不显示任何cleaning up resources消息。 确保当通过--date-spec=min时每个面板的最大项目数默认为 1440(24hrs) 修复了解析带分隔符的 XFF 字段后跟主机 IP 时出现的问题。 修复了一些数据在发送到每个客户端之前在 WebSocket 服务器上缓冲的问题。 修复了 WebSocket 服务器会因 POLLNVAL 消耗 100% CPU 而失败的问题。 修复了尝试在 mac/BSD 上打开未解析 IP 时的 segfault。 详情可查看:https://goaccess.io/release-notes

优秀的个人博客,低调大师

OpenSCA —— 软件风险管控工具

OpenSCA OpenSCA是 SCA技术原理的实现。作为悬镜安全(opens new window)旗下源鉴OSS开源威胁管控产品(opens new window)的开源版本,OpenSCA继承了源鉴OSS的多源SCA开源应用安全缺陷检测等核心能力,通过软件成分分析、依赖分析、特征分析、引用识别、合规分析等方法,深度挖掘组件中潜藏的各类安全漏洞及开源协议风险,保障应用开源组件引入的安全。 应用场景 安全开发 OpenSCA开源的IDE开源风险检测插件,帮助个人/企业开发者快速定位并修复漏洞 开发人员友好,轻量级低成本零门槛安装 企业级SCA核心引擎,支持二次开发 安全测试 产品第三方开源组件的安全测试 提高软件产品安全性,防止应用带病上线 安全管理 第三方组件及供应商软件的安全准入 企业内部安全组件库的建立 软件或组件资产可视化清单梳理 安全部门合规审查及相关开源治理工作

优秀的个人博客,低调大师

工具 | 常用 MySQL 内核 Debug 技巧

作者:柯煜昌 顾问软件工程师 目前从事 RadonDB MySQL 容器化研发,华中科技大学研究生毕业,有多年的数据库内核开发经验。 掌握 MySQL 内核源码的阅读和调试能力,不仅是数据库研发人员的日常,也是 DBA 进阶的必经之路。 阅读本文你将了解: 如何准备 MySQL 调试环境 GDB 调试入门及操作示例 Trace 文件调试及操作示例 | 一、准备 Debug 环境 首先用源码编译安装一个用来调试的 MySQL 环境。 开启 -DWITH_DEBUG ,在源码路径创建 build 目录,进入目录并执行: cmake .. -DWITH_BOOST=../../boost -DWITH_DEBUG=1 然后通过如下方式,确认是否编译成功。 方式一: $ ./bin/mysqld --verbose --version 回显 debug 版本信息,则编译的是 debug 版本。 ver 8.0.18-debug for Linux on x86_64 (Source distribution) 方式二: 连接数据库,执行查看版本命令。回显包含了 debug 字样,则编译的是 debug 版本。 $ mysql> select version(); +--------------+ | version() | +--------------+ | 8.0.18-debug | +--------------+ 1 row in set (0.00 sec) | 二、使用 GDB 调试 GDB 全称 “GNU symbolic debugger”,是 Linux 下常用的程序调试器,通常以 gdb 命令的形式在终端(Shell)中使用。 启动 GDB 编译器 执行如下命令启动 GDB 编译器(假设 my.cnf 在用户根目录中)。进入 GDB 后,敲入 run 即可运行。 gdb --args ./bin/mysqld --defaults-file=~/my.cnf --gdb 其中 --gdb 参数允许你随时 Ctrl+C 的方式中断 mysqld 进程,进行调试命令。 GDB 常用命令 使用多窗口查看源码与调试的读者,可以使用 layout 命令,在 gdb 中执行 help layout 可以查看更多 gdb 命令用法。 (gdb) help layout (gdb) help layoutChange the layout of windows. Usage: layout prev | next | <layout_name> Layout names are: src : Displays source and command windows. asm : Displays disassembly and command windows. split : Displays source, disassembly and command windows. regs : Displays register window. If existing layout is source/command or assembly/command, the register window is displayed. If the source/assembly/command (split) is displayed, the register window is displayed with the window that has current logical focus. (gdb) 可以通过 GDB cheat sheet[1],了解更多 GDB 使用方式。 Debug 示例 安装好 Debug 环境后,我们用以下两个例子,来简单演示使用思路及技巧。 1、取变量值 在某种情况下发现 mysqld 已经 crash,系统只有一个 core 文件,而我们要知道某个系统变量的值。但是系统变量的值,不见得与 my.cnf 文件一致。 此时,就可以用 gdb 命令将变量打印出来,获取变量值。 如下所示,需获取变量 version 的值,只需要在前面加 mysql_sysvar_ 前缀打印即可。 Thread 1 "mysqld" received signal SIGINT, Interrupt. 0x00007ffff5f74cb9 in __GI___poll (fds=0x55555e8a3de0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 ../sysdeps/unix/sysv/linux/poll.c: No such file or directory. (gdb) p mysql_sysvar_version $1 = {flags = 68101, name = 0x55555e7ff738 "innodb_version", comment = 0x55555ca953e2 "InnoDB version", check = 0x555558e222f1 <check_func_str(THD*, SYS_VAR*, void*, st_mysql_value*)>, update = 0x555558e22881 <update_func_str(THD*, SYS_VAR*, void*, void const*)>, value = 0x55555def1c20 <innodb_version_str>, def_val = 0x55555ca89598 "8.0.18"} (gdb) 2、调试脚本 假设需获取某一个连接进入 dispatch_command 有哪些 command ,可以执行 gdb 脚本[2] 获取。 gdb 脚本内容如下: b dispatch_command commands print command continue end 执行 gdb 脚本,然后使用 mysql 客户端连接数据库,并执行 SQL 语句操作,即可查看到 gdb 调试信息。 (gdb) b dispatch_command Breakpoint 3 at 0x555558ddb37c: file /home/kyc/mysql8/sql/sql_parse.cc, line 1581. (gdb) commands Type commands for breakpoint(s) 3, one per line. End with a line saying just "end". >print command >continue >end (gdb) c Continuing. [Switching to Thread 0x7fffe01fc700 (LWP 5941)] Thread 49 "mysqld" hit Breakpoint 3, dispatch_command (thd=0x7fff4c000f70, com_data=0x7fffe01fbba0, command=COM_QUERY) at /home/kyc/galaxyengine/sql/sql_parse.cc:1581 1581 enum enum_server_command command) { $4 = COM_QUERY | 三、使用 Trace 文件调试 MySQL 的 debug 版提供了一个专门的 DBUG 包[3]。通过这个 DBUG 包,可获取正在执行操作程序的 Trace 文件。 通过控制 DBUG 开关,可以将 MySQL 的任何操作,以及所涉及的调用模块、函数、状态信息记录在 Trace 文件中。 设置 debug 参数 通过设置 debug 参数选项,指定跟踪方式。 --debug [ = debug_options ] [ = debug _ options ] 可识别字符 d、t、i 、o 等。 Debug 示例 若需获取代码中 DBUG_PRINT("info:" 打印的日志,可以使用 MySQL 客户端连上服务器,并执行如下命令,开启 debug 参数。 set debug = 'd,info'; use test; 查看 mysqld.trace 文件,可获取 use test 在 MySQL 中的执行流程。 do_command: info: Command on socket (46) = 3 (Query) do_command: info: packet: ' '; command: 3 dispatch_command: info: command: 3 gtid_pre_statement_checks: info: gtid_next->type=0 owned_gtid.{sidno,gno}={0,0} THD::is_ddl_gtid_compatible: info: SQLCOM_CREATE:0 CREATE-TMP:0 SELECT:1 SQLCOM_DROP:0 DROP-TMP:0 trx:0 SELECT_LEX::prepare: info: setup_ref_array this 0x7fff1400d298 3 : 0 0 1 2 0 0 setup_fields: info: thd->mark_used_columns: 1 setup_fields: info: thd->mark_used_columns: 1 SELECT_LEX::setup_conds: info: thd->mark_used_columns: 1 THD::decide_logging_format: info: query: SELECT DATABASE() THD::decide_logging_format: info: variables.binlog_format: 2 ................ MDL_context::release_locks_stored_before: info: found lock to release ticket=0x7fff14019ae0 MDL_context::release_locks_stored_before: info: found lock to release ticket=0x7fff1412dd20 MDL_context::release_locks_stored_before: info: found lock to release ticket=0x7fff1412dcc0 net_send_ok: info: affected_rows: 0 id: 0 status: 2 warning_count: 0 net_send_ok: info: OK sent, so no more error sending allowed 本文使用几个简单的示例,演示了 MySQL 内核的 Debug 的几种常见方法。当然,仅仅起到抛砖引玉的作用,更多好玩的技巧,还需读者自行深度挖掘。 参考 [1]: GDB cheat sheet:https://gist.github.com/rkubik/b96c23bd8ed58333de37f2b8cd052c30 [2]: GDB 脚本调试:https://sourceware.org/gdb/current/onlinedocs/gdb/Commands.html#Commands [3]: DBUG Package[:https://dev.mysql.com/doc/refman/8.0/en/dbug-package.html

优秀的个人博客,低调大师

xaringan —— Markdown 幻灯片工具

xaringan(写轮眼,改自Sharingan)是一个 R 包,基于 remark.js,用于使用R Markdown 创建幻灯片。 xaringan包提供了一个 R Markdown 输出格式xaringan::moon_reader,可以在 R Markdown 文档的元数据中使用它,例: --- title: "啧啧啧,厉害啊" author: "张三" date: "2016年12月12日" output: xaringan::moon_reader nature: autoplay: 30000 highlightStyle: github --- 欲知所有可能的选项,参见 R 帮助文档?xaringan::moon_reader。 remark.js 与 xaringan 的区别 remark.js: 需要一个 HTML 容器文件; 只能用 Markdown; 若想自动播放幻灯片需要写 JavaScript; 需手工配置 MathJax; 用*高亮一行代码; 编辑 Markdown 之后需要刷新浏览器看结果; xaringan: 用 R Markdown 文档生成幻灯片; Markdown 里可以嵌入 R 代码; 可用autoplay选项自动播放; MathJax 无需特别配置;* 用{{}}高亮一行代码; 用 RStudio 插件“Infinite Moon Reader”自动预览幻灯片; 数学公式 数学公式用 LaTeX 语法写在一对美元符号中间,例如 $\alpha+\beta$ 会生成α+βα+β。若要将公式单独显示为一个段落,可以用一对双重美元符号: 局限性: 公式的源代码只能写在一行上,不能换行;双重美元符号内的公式允许换行,但条件是起始标记$$必须在一行的最开头(前面不能有任何字符,后面必须跟一个不是空格的字符),结束标记$$必须在一行的最末尾(前面必须是一个非空格的字符,后面不能有任何字符); 起始美元符号后以及结束美元符号前不能有空格,否则不会被识别为公式; R 图形 par(mar = c(4, 4, 1, .1)) plot(cars, pch = 19, col = 'darkgray', las = 1) abline(fit, lwd = 2) xaringan这个名字来源于火影中的写轮眼Sharingan。写轮眼有两大能力: 洞察眼 催眠眼 做演示就是将自己的洞见传递给听众;好的演讲通常有催眠效果,因为它可以深度震撼人心。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册