随笔- 447  评论- 127  文章- 7 
  2020年7月14日
摘要:一、环境准备 项目地址:https://github.com/dvarrazzo/py-setproctitle 安装:pip install setproctitle 二、重命名进程名 2.1 单进程中实现进程重命名 import setproctitle # 获取当前进程名 # Windows可 阅读全文
posted @ 2020-07-14 18:47 诸子流 阅读(106) 评论(0) 推荐(0) 编辑
摘要:一、说明 之前写了一篇“Python执行系统命令教程”讲了如何执行系统命令。 除了执行系统命令外,我们有时还需要动态地执行一些python代码,有经验的朋友就会知道可以使用内置函数eval实现这一需求,如eval("print(__file__)"),这还是比较简单的。 但如果要动态执行一个函数,讲 阅读全文
posted @ 2020-07-14 18:46 诸子流 阅读(102) 评论(0) 推荐(0) 编辑
  2020年7月9日
摘要:一、获取文件路径实现 1.1 获取当前文件路径 import os current_file_path = __file__ print(f"current_file_path: {current_file_path}") __file__变量其实有个问题,当文件被是被调用文件时__file__总是 阅读全文
posted @ 2020-07-09 18:38 诸子流 阅读(299) 评论(0) 推荐(0) 编辑
  2020年6月23日
摘要:一、背景说明 os.walk()应该是当前python中遍历目录最推荐的函数,之前用python写了一个用于收集系统用到的第三方组件的脚本,在测试时使用os.walk()遍历了部分目录,并通过了全网的测试。但在改成遍历根目录后,被业务反馈说脚本占用内存过高导致了内存告警。 在直观感觉上,只遍历目录又 阅读全文
posted @ 2020-06-23 19:48 诸子流 阅读(48) 评论(0) 推荐(0) 编辑
摘要:一、高CPU占用 1.1 使用长时间任务 高cpu很自然会想到的是让操作系统不停地在做事,而不停做事的有做一件很久的事和做死循环两种实现方式。 但是现践来看不管是哪种实现都只能占用一定比例的cpu,在cpu原本空闲的情况下很难使cpu占用到百分之八九十。 # 计算/dev/zero的sha1值 sh 阅读全文
posted @ 2020-06-23 19:43 诸子流 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一、系统资源使用限制的必要性探讨 对于一个脚本,最基础的限制是要限制单进程实例以保证了不会存在多个进程实例、在运行程序主体逻辑前检测系统资源剩余量确保自己不是压夸系统的最后一根稻草、设置程序运行超时时间以保证进程实例不会无休止地运行下去。 进一步,在部署有可用性要求较高的服务的主机中,我们还需要关注 阅读全文
posted @ 2020-06-23 19:39 诸子流 阅读(29) 评论(0) 推荐(0) 编辑
摘要:一、背景说明 以前就感觉进步的速度和博客的数量成正比,所以很长一段时间内想不通为什么很多博客为什么到最后很少甚至不在更新了,直到最近自己也快成为断更的一员。 这段时间其实碰到和解决了挺多典型的问题,但上班高负荷运转下班没心思周末觉得太耗费时间,就导致一直拖着没写。 但Python执行系统命令这个问题 阅读全文
posted @ 2020-06-23 19:17 诸子流 阅读(78) 评论(0) 推荐(0) 编辑
  2020年5月26日
摘要:一、背景说明 说实话自己是做安全的,平时总是给别人代码找茬,但轮到自己写代码有时比开发还不注重安全,其中有安全脚本一般比较小考虑安全那么处理安全问题的代码比重将会大大超过业务代码的问题也有不是专职开发添加一项功能还没开发那么熟练的问题。由于安全脚本一般不是对外开启服务的,所以一般也不会暴出什么问题。 阅读全文
posted @ 2020-05-26 18:55 诸子流 阅读(237) 评论(0) 推荐(0) 编辑
  2020年3月27日
摘要:一、说明 早上看到Python使用pickle进行序列化和反序列化,然后发现面临的一个获取不到返回值的框架,似乎可以通过在框架中先序列化,然后在外部进行反序列化的方法来实现。就研究了一下pickle库的具体使用。 本身也没什么复杂,一方面还是怕忘记,另一方面是自从学Java听到反序化这个词开始就有一 阅读全文
posted @ 2020-03-27 18:22 诸子流 阅读(198) 评论(0) 推荐(0) 编辑
  2020年3月21日
摘要:一、背景说明 上上周末看《易经》其封面大概是这么一张图(其实还有各卦对应的五行但一下找不到这样的图),想着为什么一个卦用三层表示呢,辗转反侧突然想到这就是二进制啊,需要三位才能表示八个数(000-111)。 然后又去看占卦解卦原理,感觉就是给定一个输入 经过一定的算法流转 给出一个输出,最后一想这就 阅读全文
posted @ 2020-03-21 22:45 诸子流 阅读(148) 评论(0) 推荐(0) 编辑
  2020年3月20日
摘要:一、说明 从某个时候发现python的字符串变量自带的strip()方法,除了可以删除字符串头尾的空格,还可以用来删除头尾的字符串觉得很好用。也就一直这么用,一直也没发现什么问题。 今天在修复一个bug时使用了strip()方法但从结果看bug并没有按预期被消除,一是没怀疑strip()删除子字符串 阅读全文
posted @ 2020-03-20 20:06 诸子流 阅读(322) 评论(0) 推荐(0) 编辑
摘要:一、说明 return一直中,每中语言中其没没有很大差别,就不多说了。(shell语言return的是退出状态,可能差别是比较大的,感兴趣可参见“Linux Shell函数定义与调用”) 最早看到yield应该是哪们语言用来调整什么线程优先级的,记不清了,不过那里的yield和python中的yie 阅读全文
posted @ 2020-03-20 20:05 诸子流 阅读(315) 评论(1) 推荐(0) 编辑
  2020年3月13日
摘要:一、背景说明 最开始不愿意使用Python,一大原因是因为Python2默认使用ASCII编码处理中文可以说是一件痛苦的事情。仅从更换默认编码一项变换,就可以说Python3和Python2不算同一门语言。 Python3更换为默认使用Unicode(utf-8)编码,一直使用下来再没有遇到编码问题 阅读全文
posted @ 2020-03-13 20:12 诸子流 阅读(2203) 评论(0) 推荐(1) 编辑
  2020年2月29日
摘要:一、说明 时间的获取及时间各格式间的转换是比较常用的操作,但一是多种语言经常容易弄混,二是同一种语言同一个功能可能有不同的实现函数,导致每次处理时间经常要百度所以来记录一下。 另外个人真不喜欢同样功能有多种写法的形式,从理想角度说多种实现方式让不同的人都能以其喜欢的方式进行编写;但实际上当你忘记的时 阅读全文
posted @ 2020-02-29 12:15 诸子流 阅读(333) 评论(0) 推荐(0) 编辑
  2020年2月12日
摘要:一、客户端与python在操作数据库时的差别 在日常使用mysql客户端操作mysql和使用python代码操作mysql时,会发现他们不一致的地放: 在mysql客户端中,不管是执行select还是执行delete等命令,都不需要commit;但在python代码中我们经常要写conn.commi 阅读全文
posted @ 2020-02-12 21:42 诸子流 阅读(294) 评论(0) 推荐(0) 编辑
  2020年2月10日
摘要:一、说明 多线程这个东西,感觉一直以来都是用一次就要学一次,今天需要将之前写的脚本改成线程池的形式又学习了一轮。为了以后方便在这直接记下来。 二、多线程实现 2.1 多线程的基本实现 import threading import time import datetime # 该类是自定义的多线程类 阅读全文
posted @ 2020-02-10 18:36 诸子流 阅读(1659) 评论(0) 推荐(0) 编辑
  2020年2月9日
摘要:一、 说明 1.1 背景说明 记得在学校的时候火的是大数据、云计算和物联网,毕业后网上就开始很多讨论人工智能(还有区块链)。当只是网上听说的时候总觉得比较遥远,心里并没有很大的重视,直到有一天忘了是下午回去上班还是下午下班,和他走在路上的时候他也得到了人工智能。 他说,你说我们算1+1就是按规定1+ 阅读全文
posted @ 2020-02-09 18:27 诸子流 阅读(154) 评论(1) 推荐(0) 编辑
  2020年2月7日
摘要:一、说明 1.1 背景说明 刚工作的时候我对版控制没什么概念,比如听说MariaDB是MySQL的一个分支还是不明白他们的代码到底是不是一样的。 后来弄公司的svn算是有了一些了解,但对于git到现在都不算太会用,每次上传项目到github总是一阵抓狂。写这篇博客的原因也是为了避免自己以后再操作时到 阅读全文
posted @ 2020-02-07 18:38 诸子流 阅读(97) 评论(0) 推荐(1) 编辑
  2020年2月3日
摘要:一、说明 背景一:大学的时候学网络编程,经常看到说socket有AF_UNIX、AF_INET和AF_INET6三个协议族,AF_UNIX一般不用、AF_INET是IPv4的、AF_INET6是IPv6的。基于这种说教一直以来写网络编程,上来协议族就写AF_INET,AF_UNIX是什么怎么用一直没 阅读全文
posted @ 2020-02-03 14:37 诸子流 阅读(178) 评论(0) 推荐(0) 编辑
摘要:一、说明 在前一家公司经常测出一些缓冲区溢出导致进程挂掉的问题,开发经常要求在调试模式进行测试,生成core文件给他们定位问题。 当时的调试模式启动只是修改某些配置文件重新启动即可,所以在很长一段时间内并不知道到底要如何生成core文件及core文件如何使用。 二、配置允许生成core文件 临时配置 阅读全文
posted @ 2020-02-03 14:35 诸子流 阅读(405) 评论(0) 推荐(0) 编辑
摘要:一、说明 2.1 背景说明 在上家公司的时候想实现应用进程不使用root用户启动,但开发反馈像配置网卡等命令就是得用root来执行的,领导朋友说可以通过setuid解决这个问题。 由于物联网设备毕竟是和硬件强相关的改造动作可能比较大又可能遗漏某些意想不到的地方,并没有着手处理root启动的问题。 所 阅读全文
posted @ 2020-02-03 14:34 诸子流 阅读(929) 评论(0) 推荐(0) 编辑
摘要:一、说明 自己写shell脚本进行调试时感觉是很烦心的,如果是在Linux服务器上直接echo打印还行但vim用着总没有Windows上的图形界面编缉器顺手,如果在Windows上写好传到Linux服务器上去那每次修改完总要有个文件上传的动作。 所以一直在寻找些类似调试的功能,在此做个记录。 二、直 阅读全文
posted @ 2020-02-03 14:02 诸子流 阅读(107) 评论(0) 推荐(0) 编辑
摘要:一、说明 在上家公司第一次听说”交叉编译“,但开发机环境配置一直没成功,后来也就不了了之了,所以一直不太懂”交叉编译“具体实现上是怎么个形式。 Python在Windows上和Linux上是有些差别的,在Windows上运行得好的程序在Linux上不一定没有问题,而在Windows开发好代码再传到L 阅读全文
posted @ 2020-02-03 14:01 诸子流 阅读(199) 评论(0) 推荐(0) 编辑
  2020年1月26日
摘要:一、背景说明 过年被肺炎困在家里实在无聊,早上想着要做什么的时候突然想到抖音上的代码舞(我也不知道叫不叫这名字)挺有意思,就来研究一番。 首先要知道Python处理图片/音视/视频一般都是pillow/opencv/ffmpeg组合,至于具体代码不知道这也好解决:内事不决问百度,外事不决问谷歌,码事 阅读全文
posted @ 2020-01-26 14:29 诸子流 阅读(506) 评论(0) 推荐(0) 编辑
  2020年1月4日
摘要:一、说明 最近在做一些主机的自动化检查操作,每次都是定时主动去扫描。这种方式一是实时性不佳,二是扫描时会陡然给中心机很大的压力。后来想有没有一种主机上的配置如果发生变动就能主动上报的机制,如果能主动上报一又解决了实时性问题,二也解决了中心机压力的问题。 二、Shell脚本实现 2.1 基本使用 安装 阅读全文
posted @ 2020-01-04 08:39 诸子流 阅读(1156) 评论(0) 推荐(1) 编辑
  2019年12月28日
摘要:一、背景 上周五有个朋友说,防sql注入都用参数化的方法,但是有些地方是不能参数化的。比如order by后就不能参数化,她有个同事挖sql注入时找有排序功能需求的位置(比如博客常按时间排序),基本十之六七都能挖到sql注入。 某些地方不能参数化,这个问题在以前面试时有被问过,但回答不上来,后来也没 阅读全文
posted @ 2019-12-28 10:28 诸子流 阅读(1511) 评论(0) 推荐(0) 编辑
摘要:一、说明 之前写了“Linux shell脚本单实例模式实现”,python也是日常需要使用的,所以也想来看python中如何实现。 一方面,shell中没有类和类实例的概念,所以一般说“单实例”都是指“单进程实例”,没有设计模式中“单例”的概念;另一方面,由于单进程实例和单例都是强调“唯一一份”所 阅读全文
posted @ 2019-12-28 09:16 诸子流 阅读(413) 评论(0) 推荐(0) 编辑
  2019年12月22日
摘要:一、说明 1.1 关于可变参数 所谓可变参数,最主要就是指传递给被调用函数的参数的个数是不定的。 可变参数应该来说是很常见的,比如C的标准main函数就写成int main(int argc, ** char argv),再比如很常用的print()函数就是最典型的可变参数函数。 但一方面在很长一段 阅读全文
posted @ 2019-12-22 14:50 诸子流 阅读(233) 评论(0) 推荐(0) 编辑
  2019年12月21日
摘要:一、说明 1.1 linux为什么不升级python版本 2008年python3就发布了,到2020年1月1日python2.7就停止更新了,为什么主流的linux迟迟不去除python2自带python3。 我们经常听说服务器版操作系统为了保证稳定性,对于软件一般都只采用经过时间检验的稳定版本, 阅读全文
posted @ 2019-12-21 13:45 诸子流 阅读(492) 评论(0) 推荐(0) 编辑
摘要:一、说明 关于单例模式,最开始的是一些小工具,运行起来后再点击运行时会提示已经运行了一个实例,觉得挺有意思但也没有很在意 前段时间看了前领导的一段代码不太懂是做什么用的,同事查了下资料说是为了实现单例模式,讨论之下才知道单例模是是设计模式中的一种,具体表现也即上边说的只能运行一个实例。 上周被反馈说 阅读全文
posted @ 2019-12-21 13:45 诸子流 阅读(534) 评论(0) 推荐(0) 编辑
  2019年12月7日
摘要:一、说明 1.1 背景说明 json对象与string相互转换,这东西想写了很多次,但总觉得网上教程比较成熟,所以之前每次都放弃了。但今天又被string转json对象折腾了半天,实在受不了,所以还是要写一写。 1.2 问题明确 首先要明确,python里有json这个库,但并没有json这个类,所 阅读全文
posted @ 2019-12-07 15:20 诸子流 阅读(2344) 评论(0) 推荐(0) 编辑
  2019年11月2日
摘要:一、结构类操作 1.1 连接数据库 1.1.1 命令连接数据库 # 基础格式 mysql [OPTIONS] [database_name] # 常用参数格式 mysql [-h<ip>] [-u<username>] [-p<password>] [-P<port>] [-e<command>] 阅读全文
posted @ 2019-11-02 12:18 诸子流 阅读(152) 评论(0) 推荐(0) 编辑
  2019年10月8日
摘要:一、说明 1.1 背景说明 之前在N市,面试的是“IT系统安全工程师”的岗位但合同上签的是“集成工程师”的名头(前阵子找之前的邮件offer才注意到的),工作内容现在看来还是和当时离职时表述一样基本一半是系统集成的工作一半是安全的工作。其好处是一方面对数据库、中间件、大数据平台等技术有比较深入的了解 阅读全文
posted @ 2019-10-08 21:42 诸子流 阅读(297) 评论(0) 推荐(0) 编辑
  2019年9月18日
摘要:一、自定义窗口初始化大小 以前在Windows 7的时候感觉打开cmd时窗口初始化的大小还是比较合适的,但到Windows 10之后打开cmd窗口就很大一点都不适应 当然也可能是新电脑分辨率比较大的结果。 不管是什么原因,我们只想问有没有途径自定义cmd窗口初始化大小。答案是有的,其实不只是cmd, 阅读全文
posted @ 2019-09-18 23:16 诸子流 阅读(824) 评论(0) 推荐(0) 编辑
  2019年9月16日
摘要:一、说明 我对外设一直不是很了解,买的鼠标今天到了,使用时遇到了两个问题在这里记一下。 二、滚轮滚动慢处理 问题描述:在网页中滚动滚轮每次只能上下移动一点点,感觉很难受。 问题原因:此问题是滚轮滚动一次下移行数过小所致,将该值调高即可。 处理办法:控制面板 硬件和声音 鼠标 滑轮选项卡 将“一次滚动 阅读全文
posted @ 2019-09-16 19:26 诸子流 阅读(1427) 评论(0) 推荐(0) 编辑
  2019年9月15日
摘要:一、说明 关于电脑,在大学之前是知之甚少的。举几个例子,一是刚上大学时我还是分不清主机和显示器哪个才是电脑;二是应该是大一上学期陪窒友Z到电科买电脑,我问导购员XP和Win7什么关系 我一直怀疑问这弱智问题也是那导购员敢两百多的内存条卖我们六百多的原因之一;三是大概是大二下学期的时候一个同学和舍友W 阅读全文
posted @ 2019-09-15 23:20 诸子流 阅读(1757) 评论(0) 推荐(0) 编辑
  2019年8月28日
摘要:一、说明 一直以来都有把.py文件打包成.exe文件的想法,但总是不够强烈,每次拖着拖着就淡忘了。 昨天帮硬件部门的同事写了个脚本,然后今天下午的时候,他问有没有办法把脚本打包成可执行文件,这样方便以后交给别人的时候别人不用装Python也能运行。 习惯性操作,百度一下,看到标题都基本使用PyIns 阅读全文
posted @ 2019-08-28 18:00 诸子流 阅读(1916) 评论(1) 推荐(0) 编辑
摘要:一、背景说明 最早听说KDC和Kerberos应该是大三的《应用密码学》,当时感觉这套对称密钥分发机制比非对称密钥的PKI分发机制要好理解。但几年下来由于现实中使用SSL的场景比较比(主要是https)接触得也就比较多所以对PKI的认识反倒超过了KDC。 Kerberos的接触印象中只有某运营商大数 阅读全文
posted @ 2019-08-28 15:30 诸子流 阅读(1009) 评论(0) 推荐(0) 编辑
  2019年8月27日
摘要:一、说明 1.1 背景说明 syslog这个东西,最早接触是在Z公司做基线安全加固的时候有启用远程日志服务器一项,然后当时还写整理了一篇“rsyslog+loganalyzer远程日志系统搭建教程(CentOS6.8)”;这造成的结果就是一直先入为主地认为syslog就是做远程日志用的,近段时间碰到 阅读全文
posted @ 2019-08-27 14:05 诸子流 阅读(1306) 评论(0) 推荐(0) 编辑
  2019年8月26日
摘要:一、说明 以前看书的时候时常看到“域”这个词,后来听一些渗透的演讲通常会说进入内网后首先要找域控。在认知中“域控”应该是域管理服务器一类的东西,但毕竟没有实现过所以还是不太懂长什么样。 前段时间朋友电脑打不开,说是被设置了要在一段时间内向域控保持心跳,不然要重新输用户名密码登录;然后又讨论了一下域控 阅读全文
posted @ 2019-08-26 17:44 诸子流 阅读(7553) 评论(0) 推荐(0) 编辑