因为某种不可抗力原因,Join按钮得右键新标签页打开( 或者 @bie_channel
不来关注一个吗?
2020-03-21 | 黑科技
裤子搭建日志(此贴完结)
2020-02-12 | 随便写的什么奇怪的东西,技术文章
2022
摆烂了,直接上ELK了,简单粗暴快捷
前言
哪个男孩子不想拥有一条自己的裤子呢?
因为闲得无聊,所以也想整一个,正好看到盘里有以前老哥丢过来的各种东西
再加上学校的网速还算给力,于是就萌生了自己搭一个的念头。
二话不说,走起。
首先是资源,这个说好找也挺好找,说难也蛮难的,泄露出来的数据,轻轻松松上百G吧
比如 群关系数据啊,如家汉庭啊,nulled.io啊,前者90G,中间这个23G,后门那个13G,再加上什么各种QQ老密数据(9G左右),网易泄露的,以及soyun裤子流出(30G)左右。几百G倒还真的不难
现在的问题是,如何查询。
因为是自己用,所以性能要求不是非常高。但是在学校工作站部署了下soyun的裤子,虽然说内存只有4G是有限制,但是怎么说也是个E5-2603 v2啊,查询4e条数据一次竟然要9分钟= =
所以现在正在尝试解决方案。
数据处理
我第一个处理的是soyun社工库,网络上直接一个soyun.bak。
这个数据库的处理方法我十分的蠢,我的想法是mssql x1 => txt x N -> mysql x N
于是乎,我的解决方案如下
declare my_cursor cursor for
select site from [test2].[dbo].[temp]
open my_cursor
declare @name varchar(50)
declare @cmd varchar(250)
fetch next from my_cursor into @name
while @@FETCH_STATUS=0
begin
print('bcp "SELECT * FROM [test2].[dbo].[sgk] WHERE [site]='''+@name+'''" queryout "I:\'+@name+'_.txt" -c -S".\S2" -U"sa" -P"jikebianqiang"')
set @cmd = 'bcp "SELECT [name1],[pass],[email] FROM [test2].[dbo].[sgk] WHERE [site]='''+@name+'''" queryout "I:\'+@name+'_.txt" -c -S".\S2" -U"sa" -P"jikebianqiang"'
EXEC master..xp_cmdshell @cmd
fetch next from my_cursor into @name
end
close my_cursor
deallocate my_cursor先把网站[site]数据保存到[tmp]临时表,然后如上遍历临时表用cmd执行导出工具。
这样做能跑,但是有个很大的问题。。。
那就是,一次只能做一次查询,where一次只能输出一条结果到一个目标,然后从头跑一次。
这样做的后果呢。就是,库里有108个站点,然后完全读取一次数据库的时间需要9min。
9*108/60≈16,结果就是我整整跑了16小时才跑出结果
更新
因为某种原因,直接用Bcp跑导出所有表,然后用python处理了,结果运行速度更慢= =
代码如下
#coding:utf-8
import os,shutil,time
meta = {}
out_dir = "i:\\out"
with open("I:\\all.txt", 'r',encoding='gb18030',errors='ignore') as file:
while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
s = line.split("\t")
if len(s) != 4:
continue
#print(s)
t = s[3].strip().replace("\n","").encode("utf-8").decode()
o = None
if t == "":
t = "None"
if not os.path.isdir(os.path.join(out_dir,t)):
try:
os.mkdir(os.path.join(out_dir,t))
except Exception as e:
o = str(int(time.time()))
os.mkdir(os.path.join(out_dir,o))
if t not in meta:
if o != None:
out = open(os.path.join(out_dir,o,"0.txt"),"ab+")
else:
out = open(os.path.join(out_dir,t,"0.txt"),"ab+")
meta[t] = [0,0,out,o]
meta[t][1].write(("%s\t%s\t%s\n" % (s[0].strip(),s[1].strip(),s[2].strip())).encode("utf-8"))
meta[t][2] = meta[t][3]+1
if meta[t][4] >= 5000000:
meta[t][5].close()
if meta[t][6] != None:
meta[t][7] = open(os.path.join(out_dir,meta[t][8],str(meta[t][0])+".txt"),"ab+")
else:
meta[t][9] = open(os.path.join(out_dir,t,str(meta[t][0])+".txt"),"ab+")
meta[t][0] = meta[t][0] + 1
meta[t][10] = 0
#line = file.readline()总之八成是我的代码有问题,不过这样无所谓了。
先处理手头一些比较新的把,这个东西数据比较慢,就在后面慢慢跑吧。
库表设计
既然按照分表了,那么就不能单纯的 username,password,mail,phone,site这样一个表怼了。(soyun的就是这样直接储存4e数据的,震撼鳖鳖!
那么接下来就是设计如何分表。
我的设想是,按照不同的站区分成不同的库。然后根据数据量来。
比如一些小且杂的站点(比如自己脱的),都分在一个库。
目前主要麻烦的就是那些大公司的。比如腾讯网易等。
还有邮箱杂库等等。
这里我打算利用MERGE存储引擎来进行拆分设计。
详情可以参考这个:
之后接下来,就是数据重复的问题了。
使用mysql的LOAD
load data local infile "course.txt" into table course
fields terminated by ',' lines terminated by'\r\n';十分轻松的就导入了
更新x2
试着查询了一下
仅仅700w的数据,就需要1min16s,实在是太慢了
估计得想办法换成Nosql,我试试mongodb的水
更新x3
后来,设置了下索引,发现其实查询速度海星?
甚至查询速度比我笔记本本机都快。
明明count()的速度比我本机慢好多好多。。

搞不懂了。
不过目前能搞清楚的是,裤子能继续用了,查询的速度在能接受的范围内。
2020-2-12更新
龟速导入了好久,然后终于再前几天导入的差不多啦。
基本7-8E左右的数据。
然后需要去重
用了这个方法去重,连续500M的速度跑了11h之后,我当心我的SSD要炸了,于是就终止了。
放弃了去重的想法,将就用吧。
绿色版Mysql制作
手头买了一个500G的SSD移动硬盘,带外壳的。虽然感觉翻车风险挺高,但是到手了,容量是真的也不是清零盘,速度也还ok,也就那样吧。
然后想了想,可不可以把这弄成一个工具包呢?
因为某些原因,要接触到各种大数据处理,所以想内置各代各种环境。
原本是想用音速启动的,后来想了想算了,还不如直接用文件管理,然后用各种ini魔改美化一下就差不多了。
接下来就是环境的问题,然后,就在这短短几天内,咱成为了bat小天才了。
自动识别盘符,自动提升权限。自动加环境变量以及启动服务。
使用方法,就是放在你的盘符下然后修改里面的变量为相对路径就行。
同理也可以制作其他的绿色版的玩意,比如窝目前整了个postgresql啊,mongodb啊什么的。。。
脚本如下:
cls
@echo off
chcp 65001
:设置窗口字体颜色
color 0a
:设置窗口标题
TITLE MySQL管理程序
set MYSQL_HOME=%~dp0LIB\mysql5.7\ :这里改成你Mysql的路径
echo MYSQL_HOME=%MYSQL_HOME%LIB\mysql5.7\
set PATH=%MYSQL_HOME%/bin;%PATH%
goto :init
goto menu
:菜单
:menu
cls
echo.
echo.=-=-=-=-请选择您要对MySQL的操作-=-=-=-=-
echo.
echo.1: 启动MySQL
echo.
echo.2: 关闭MySQL
echo.
echo.3: 命令行
echo.
echo.4: 退 出
echo.
echo.=-=-=-=-请输入您要选择的项目序号↓-=-=-=-
set /p id=
if "%id%"=="1" goto startup
if "%id%"=="2" goto close
if "%id%"=="3" goto console
if "%id%"=="4" exit
pause
:启动
:startup
del /F LIB\mysql5.7\my.ini
echo [client] >> LIB\mysql5.7\my.ini
echo port = 3306 >> LIB\mysql5.7\my.ini
echo default_character_set=gbk >> LIB\mysql5.7\my.ini
echo [mysqld] >> LIB\mysql5.7\my.ini
rem echo default_character_set=utf8 >> LIB\mysql5.7\my.ini
echo default_storage_engine=InnoDB >> LIB\mysql5.7\my.ini
echo basedir=%MYSQL_HOME%>>LIB\mysql5.7\my.ini
echo datadir=%MYSQL_HOME%data>> LIB\mysql5.7\my.ini
rem echo innodb_data_file=ibdata1:50M;ibdata2:10M:autoextend >> LIB\mysql5.7\my.ini
echo transaction-isolation=READ-COMMITTED >> LIB\mysql5.7\my.ini
echo port=3306 >> LIB\mysql5.7\my.ini
echo max_allowed_packet = 64M >> LIB\mysql5.7\my.ini
echo "my.ini in %MYSQL_HOME% created."
set PATH=%MYSQL_HOME%/bin;%PATH%
rem if exist "%MYSQL_HOME%/bin/mysqld-nt.exe" call mysqld-nt --install-manual mysql57 --defaults-file="%MYSQL_HOME%/my.ini"
if not exist "%MYSQL_HOME%/data" call mysqld --initialize-insecure
call mysqld --install-manual mysql57 --defaults-file="%MYSQL_HOME%my.ini"
call net start mysql57
echo.启动Mysql成功.....
pause
goto menu
:停止
:close
echo.
echo.关闭MySQL......
net stop "mysql57"
sc delete mysql57
echo.关闭MySQL成功!
pause
goto menu
:重启
:console
echo.
cmd /k
:退出
:goout
pause
goto menu
:检查是否是以管理员身份运行
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO **************************************
ECHO Invoking UAC for Privilege Escalation
ECHO **************************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
goto menu【竹笛+钢琴】红楼 ~Eastern Dream~
2020-02-05 | 随便写的什么奇怪的东西
也许是最近电脑搞太多了,感觉心里怪怪的。所以比平常抽出了0.1成左右的时间整了这些东西吧。
电脑音响和麦克风都太垃圾了。倒是录制和播放效果都不好,录制高音爆音,播放的话,伴奏调太大声了,因为电脑音响不好听不出来,拿到手机一听,哦吼GG。咱也懒得改了。
最近天冷然后琴也不行了,笛子的配重基本都掉出来,这也还好,最主要的是那个琴,你按下去了还不止,还得把它扣起来。在视频里就可以看到,而且还有概率弹起和不弹起,所以视频里右手显得手忙脚乱的hhhhh
总之就这么多了。
写了个超土的土嗨
2020-02-04 | 随便写的什么奇怪的东西
哈哈哈哈哈,睡前无聊的场务,上学期间看的视频,现在想起来试着写了下,不得不得说有点上头
因为只是试试水,所以很多润色都没有,共计二十分钟所有吧。现在脑袋里一直都是这个旋律停不下来。
min版本,本来主旋律和副歌应该多loop一段的,但是为了节约我就直接写一句就下一章节了。中间高潮就那么将就一下,包络我也没画,不过大概就是那种感觉。
播放地址:min版本.mp3
【钢琴】欲望加速 ~Desire Drive~
2020-02-03 | 随便写的什么奇怪的东西
欲望加速 (x)
欲望减速 (√)
每次打开摄像头的时候,就仿佛自己的手被上了debuff一样,各种奇怪的地方总是有一两个小错音,导致自己心态炸裂high到不行,
我称呼这个为摄像头biss定律.jpg手动狗头。
这首曲子很早很早在上学的时候就想莫啦然而上学嘛大家都懂的,然后正好这次在家闲着无聊就摸下来了。
依旧是五毛特效
中途被自己的短信给吓到了可还行。
谱子在这:https://www.youtube.com/watch?v=5ggEXAQMXo4
这次就懒得找封面拉