分类 技术 中的文章

centos8减少/home分区大小增加/root空间大小

最近使用虚拟机的方式弄了个centos8的虚拟机,体验最新centos系统,分配了127g的空间,由于实际需要,发现home空间有好几十g的空间,而我都是使用root用户,无需home空间,因此找到在centos8中把home空间调整到root的方法,这里跟网上找到的centos7是有差别的。

……

阅读全文

为padavan路由器配置ipv6穿透使内网主机均有ipv6

电信和教育网均有ipv6的支持,但是路由器上配置总是出错,这里讲下k2路由器刷了padavan固件后最终使得路由器下的主机均有ipv6的设置方法。 同样padavan的固件地址也放在这里,有公网ipv6的小伙伴们也可以使用这个固件设置好所有设备的ipv6.

固件地址:padavan

步骤:

  1. 在外部网络中开启原生ipv6支持
  2. 配置开机启动脚本进行ipv6的穿透

在外部网络中开启原生ipv6支持

首先登陆padavan路由器,地址192.168.123.1 login_router

……

阅读全文

使用requests和multiprocessing多线程暴力穷举破解lnmp默认mysql密码

博客以前使用的是lnmp程序搭建的web环境,但是在需要使用mysql的时候发现lnmp安装日志文件不见了,mysql的root密码已经忘记,记得当时安装lnmp是一路回车的,而lnmp默认密码是lnmp.org#加上5个随机数字,只有十万可能,而这种情况下穷举十万次必定能够找到密码,因此找回lnmp默认的数据库root密码的方式可以有两种:

  1. 关闭mysql服务使用安全模式登陆并修改root密码
  2. 使用requests和multiprocessing多线程暴力穷举破解

关闭mysql服务使用安全模式登陆并修改root密码

这是通用的mysql服务器重置root密码的方式,就是需要关闭服务器一段时间,可能会造成服务不可用,对于大型站点会造成数据库服务不可用,对于流量低的站点就无所谓了。

……

阅读全文

使用docker部署蜜罐记录ssh登陆密码

好久没更新博客了,今天登陆服务器发现ssh有被爆破的记录,ssh_爆破_记录,因此就想着不如记录下大黑客的密码,反向登陆下他的服务器试试。经过一番搜索,发现记录ssh登陆信息有两种方法,第一种是重新编译openssh并通过打补丁的方式记录ssh登陆密码,第二种方式是使用docker部署ssh蜜罐记录下ssh被爆破的密码。本文介绍第二种,使用docker记录ssh爆破记录。

本人环境centos7,ubuntu有所不同,自己根据环境可能需要更换某些环境相关参数。

主要步骤:

  1. 修改sshd服务端口
  • 修改sshd服务默认端口
  • 关闭selinux
  • 修改sshd配置文件,重启ssh服务
  1. 部署ssh蜜罐docker
  • 安装docker,启动docker服务
  • 编译ssh蜜罐docker,运行蜜罐

修改sshd服务端口

修改sshd服务默认端口

直接修改ssh配置文件/etc/ssh/sshd_config,找到#Port 22这一项并修改,这里改为2222

……

阅读全文

10个建议提高你的python数据分析技巧

在编程的世界里,经常一些小小的建议或者帮助就可以起到很大的作用。 比如说有个快捷键或者一个包简单应用就可以起到简化大量工作,达到事半功倍的效果,这里我就介绍几种我经常用到的小技巧。

1. pandas dataframe的pandas_profiling函数查看数据情况

在分析数据前,了解我们的数据是数据分析里面很重要的一个环节,虽然在pandas里面有一些像df.describe,df.info()函数虽然起到了一定的查看数据的功能。但是对于较大的数据和比较复杂的功能他们就不再提供了,而pandas_profiling里面的profile_report函数却可以得到比较详细的数据情况。 pandas_profile

……

阅读全文

python中的序列化与反序列化

有时候需要临时将数据存储起来,方便下次运行程序时可以直接调用,或者不同线程之间交换数据都是可以用序列化的方式把数据存储起来,然后调用,这里我们以pickle包来解释python中的序列化与反序列化。

什么是序列化与反序列化

  • 序列化:将python数据转换成二进制的数据流。
  • 反序列化:将二进制的数据流转换成pytho对象。

python模块pickle的实现

  • dumps():调用此函数将python数据对象转换成数据流
  • loads():调用此函数将存储的数据流转换成python数据对象

下面是python中使用pickle实例演示python中的序列化与反序列化

……

阅读全文

Python 数据可视化 - 00 后高考大军

00后大军高考结束了,网络上对这次高考的报道很多(毕竟00后小鲜肉嘛),很多都关注了今年的考生数据,并且用炫酷的图表展示。看着是不是有点小嫉妒,为什么图表还可以做得这么漂亮???是不是也想自己动手做一张???其实这些图表都可以用python制作出来的数据可视化的产物,所以当然是可以自己动手制作的啦

……

阅读全文

一行 Python 代码实现并行

一行 Python 代码实现并行

Python 在程序并行化方面多少有些声名狼藉。撇开技术上的问题,例如线程的实现和 GIL,我觉得错误的教学指导才是主要问题。常见的经典 Python 多线程、多进程教程多显得偏”重”。而且往往隔靴搔痒,没有深入探讨日常工作中最有用的内容。

传统的例子

简单搜索下”Python 多线程教程”,不难发现几乎所有的教程都给出涉及类和队列的例子:

……

阅读全文

最大回文字符串算法Manacher

在刷leetcode时有个求最长回文字符串的问题。

#官方题解提供了4中解决办法,分别是

1.暴力法, 2.动态规划, 3.中心扩展算法, 4.就是我们今天要介绍的Manacher方法。

在介绍算法之前,首先介绍一下什么是回文串,所谓回文串,简单来说就是正着读和反着读都是一样的字符串,比如”aba”,”上海自来水来自海上”等等,一个字符串的最长回文子串即为这个字符串的子串中,是回文串的最长的那个。

……

阅读全文

python查找两个数组公有值

生活中经常碰到需要获取两数组公有值,那么python如何优雅获取两个数组之间的公有值,这里提供多种简单实用方法。

1.使用set元组的 &

list1 = [1,2,3,4,5,6,7]
list2 = [1,3, 5, 7, 9]
set(list1) & set(list2)
#{1, 3, 5, 7}

2.使用set元组的intersection交集

list1 = [1,2,3,4,5,6,7]
list2 = [1,3, 5, 7, 9]
set(list1).intersection(list2)
#{1, 3, 5, 7}

3.暴力查询list元素是否在第二个list中

list1 = [1,2,3,4,5,6,7]
list2 = [1,3, 5, 7, 9]
[element for element in list1 if element in list2]
   # [1, 3, 5, 7]

4.实用set元组的减法

list1 = [1,2,3,4,5,6,7]
list2 = [1,3, 5, 7, 9]
set(list1) - (set(list1)-set(list2))
#{1, 3, 5, 7}
……

阅读全文

最近文章

分类

标签

友情链接

其它