mysql实用三则:数据字典SQL、prompt配置与字符集乱码

前言

三个 mysql 日常高频小技巧:给新库整理数据字典、连接多个实例时防止在错误的库上执行 SQL、以及老库字符集不一致导致查询乱码的处理。

一、用 information_schema 生成数据字典

接手一个没有文档的数据库时,用 information_schema 可以一键导出数据字典。

1. 查询库下所有表

1
2
3
4
5
SELECT
  t.table_name 表名,
  t.table_comment 表说明
FROM information_schema.TABLES t
WHERE table_schema = 'your_db';

2. 查询字段明细

……

阅读全文

springboot cli&springcloud cli简单介绍

前言

尝试了下springboot cli和spring cloud cli 命令,整理了下参数和创建项目的介绍

1、下载

1.1 下载springboot cli安装包

官方介绍:https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.system-requirements

注意:

需要核对版本支持的jdk、maven、gradle、springboot版本,不能过于追求最新版本,比如springboot3.0.0.M1就只支持jdk17

……

阅读全文

vmstat介绍

前言

vmstat是virtual memory statistics 的缩写,它是Linux下一个非常有用的监控工具,除了内存之外,还提供 块 IO、CPU 时间 等额外的信息

1、语法

vmstat 命令的执行不需要特殊的权限,普通用户就可以执行,其语法形式如下

1
vmstat [options] [delay [count]]

delay 表示数据更新间隔,单位是秒,如果没有指定此值,表示系统启动以来的平均时间,而且此时只输出一次结果
count 表示输出次数,如果没有指定该值,但是指定了 delay 的值,则表示无限次

……

阅读全文

挖矿病毒4-容器挖矿病毒清理

前言

1月26日,运维同学收到告警邮件,告诉我某台测试服务器中了挖矿病毒,心想怎么最近挖矿这么猖狂…

1、分析准备

仍然下载是busybox

1
2
3
4
wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox 
chmod +x busybox
cp busybox /usr/bin 
busybox  top

2、按步骤排查

剩余步骤跟挖矿病毒2-分析和排查思路一样,只是所有的命令前面是 busybox command
不过这次是容器挖矿,ECS 排查步骤仍然走一遍,但是没啥收货,但是恶意进程还是可以找到的

……

阅读全文

挖矿病毒3-分析和清理过程

前言

1月23日,公司邮箱收到说阿里云报了挖矿病毒的警告

1、分析

这次思路改进了些,起初有个只是定时任务没被清理,阿里云通过定时任务关键字"pool.minexmr.com:4444"报了蠕虫病毒,但是根据关键字查看,这像挖矿
然后 top 了半天没看到结果,怀疑是top被篡改了?然后进了/usr/bin/核对下 top 的时间,发现没差异呀,但是本着稳妥起见,还是下载 busybox

……

阅读全文

OTP动态口令:原理与java实现

前言

对外网开放的后台管理系统,只用静态口令认证有几个先天问题:用户为了好记会选有特征的密码、明文传输时可被截获、内部人员能拿到密码冒用。OTP(One-Time Password,一次性密码/动态口令)是最容易落地的双因素认证增强手段,这篇整理它的原理和一套 java 实现方案。

一、静态口令的风险

  1. 便于记忆的密码往往有特征,容易被猜测和爆破
  2. 非加密传输时认证信息可被直接截获
  3. 合法授权者(包括内部人员)可以复制密码冒用,事后无法追责

静态口令从根本上无法确定「现在操作的人就是账户本人」。

……

阅读全文

一些正则小细节-不定期补充

前言

记录日常工作碰到的一些正则小细节

1、group分组

需要通过()把提取的参数圈起来,这样才会产生分组

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
private static String collectMapperId(String value) {
        String result = "";
        String regId = "id=\"(.*?)\"";
        Pattern pattern = Pattern.compile(regId);
        Matcher matcher = pattern.matcher(value);
        if (matcher.find()) {
            result = matcher.group(1);
        }
        return result;
    }

对比如果没有(),是没有分组效果的

……

阅读全文

sdkman的使用

前言

多sdk版本管理工具

1、安装java jdk

1
sdk install java

2、安装指定版本的 java jdk

1
sdk install java 8u131

3、安装本地包

1
sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT

4、移除 java jdk

1
sdk uninstall java 21-graalvm

5、查看当前生效的 java jdk

1
2
3
sdk current java
# 查看所有本地包的当前版本
sdk current

6、查看支持的清单

1
sdk list

7、查看软件的版本

1
sdk list java

8、临时切换版本

1
sdk use java 8.0.232.hs-adpt

9、切换默认版本

1
sdk default java 11.0.5.hs-adpt

10、sdk 版本升级

1
2
3
sdk upgrade springboot
# 本地所有sdk全部升级
sdk upgrade 

11、sdkman 版本升级

1
2
3
sdk selfupdate
# 强制重新安装
sdk selfupdate force

12、查看 sdkman 的版本

1
sdk version

13、离线模式

1
2
3
4
5
sdk offline enable
  Forced offline mode enabled.

sdk offline disable
  Online mode re-enabled!

当电脑没有网的时候,离线模式会进行自动切换.

……

阅读全文

mysql大表的数据清理

前言

mysql的表日积月累也会出现过千万的大表,有些历史数据可以定期归档清理的,保留最近的数据即可。但是delete table_name where id = ‘’;这种方式只是逻辑上的删除,不会释放表空间和索引的。因此需要在历史数据归档后做表分析才行

1、大表归档大量数据

先远程备份,可以开发成shell脚本,设置crontab定期备份

……

阅读全文

Google Hacking:搜索引擎语法的信息收集技巧

前言

Google Hacking 指用搜索引擎的高级语法发现互联网上意外暴露的敏感信息——登录页、密码表格、备份文件、目录列表。对渗透测试者它是信息收集的第一步;对运维和开发,它的价值在于自查:用同样的语法搜自己域名,看看有没有不该暴露的东西。

一、常用操作符

操作符 作用 示例
site: 限定站点 site:example.com admin
filetype: / ext: 限定文件类型 filetype:xls 密码
intitle: 标题包含关键词 intitle:"index of"
inurl: URL 包含关键词 inurl:admin login
allinurl: URL 包含全部关键词 allinurl:auth_user_file.txt
intext: 正文包含关键词 intext:"password"
"" 精确短语 "Login:" "password="
- 排除 filetype:xls -site:example.com

二、典型用法

搜暴露的账号密码文件:

……

阅读全文

最近文章

分类

标签

其它