自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Han的小站

一徐清风,半指烛光,觥筹已净,只余茶香。残卷一章,妙趣非常,忽闻帘响,愿闻其详?

  • 博客(291)
  • 资源 (5)
  • 收藏
  • 关注

原创 python class的实例方法,类方法和静态方法小笔记

参考定义:class A(object): X = 1 #实例方法 def foo(self): print("normal func") #类方法 @classmethod def class_foo(cls): print("class func, X = {}".format(cls.X)) #静态方法 @staticmethod def static_foo()

2021-02-20 14:09:34 518

原创 python cyclic import(循环导入)的小分析

踩了一个python循环导入(英文貌似叫python cyclic import)的坑,小小地研究了一下,分享给大家:首先明确几个逻辑:1. import XXX的时候,实际上是解释器对XXX模块进行一次解析(执行),比如下面的代码会打印"B executed": # a.py import b # b.py print("B executed") 2. python在多次import同一个模块的时候,会将import的模块的信.

2021-01-26 14:41:58 796 1

原创 恼人的Windows 10语言栏设置

最近被Windows 10系统的语言栏给折腾了,于是腾出点时间整理一下:最近Windows 10系统更新之后莫名其妙多出来一个名叫“简体”的输入法选项,导致输入法里面有“English/简体/Chinese”三个输入法,这个“简体”输入法用着特别不舒服,不显示输入选项,所以每次要按”Ctrl+空格“两次才能从英文切换到中文输入。。。尝试了一些方法,最后找到了通过注册表来删除这个输入法的...

2019-12-03 15:50:55 5061 1

原创 原 [Excel]Excel函数和用法(13)——常用公式大全

除了前面介绍过的最常见的公式,比如VLOOKUP,SUMIF,COUNTIF,SEARCH等等,下面的这个表格列出了EXCEL从A到Z开头的所有常用的一些公式(排除了很多数学公式和金融公式),希望对大家有所帮助:貌似不能直接贴进来,所以只能上图了:...

2019-03-03 01:04:59 851

原创 [Excel]Excel函数和用法(12)——复杂求和公式应用

求A列非空数据的和(数组公式):{=SUM(A:A*(A:A<>""))}统计A列非空数据的数量(数组公式):{=SUM(1*(A:A<>""))}统计A列数据中能被2,3,5整除的数的个数(数组公式):{=SUM((A:A>0)*(MOD(A:A,2)=0)*(MOD(A:A,3)=0)*(MOD(A:A,5)=0))}统计...

2019-03-01 16:11:03 1534

原创 [Excel]Excel函数和用法(11)——返回表格或区域中的值或值得引用,INDEX函数

INDEX的两种语法:INDEX(array, row_num, [column_num])INDEX(reference, row_num, [column_num], [area_num])array和reference都可以制定单元格区域或者数组常量,比如:=INDEX({"A1","A2","A3";"A4","A5","A6";"A7",&

2019-03-01 11:50:38 2508

原创 [Excel]Excel函数和用法(10)——数组公式的使用方法与隔列求和

编辑好公式之后,按Ctrl+Shift+Enter就可以把公式保存成数组公式数组公式可以用于单个值与数组的计算,也可以用于数组与数组的计算,数组公式返回的结果是数组。例如:数组与数组的计算:单个元素与数组的计算:使用数组公式进行隔列求和:偶数列求和:{=SUM(IF(MOD(COLUMN(A1:F1),2)=0,A1:F1,0))}奇数列求和:...

2019-02-28 14:21:42 4175

原创 [Excel]Excel函数和用法(9)——MID/SUBSTITUTE/MOD函数

MID函数用于字符串截取:语法:MID(text, start_pos, length)例如:SUBSTITUTE函数用于文本替换:语法:SUBSTITUTE(text, old_text, new_text, [instance_number])第一个参数是要替换的目标文本,第二个参数是要查找的文本,第三个是要替换成的文本,如果不指定第四个参数,会替换所有找到符合条...

2019-02-28 14:19:26 3047

原创 [Excel]Excel函数和用法(8)——返回单元格地址,Address函数

语法:Address(row_num, col_num, [abs_num], [a1], [sheet_text])前两个参数定义行列号:第三个参数指定是否使用绝对引用或是相对引用(分别对应格式 $B$1, B$1, $B1, B1):第四个参数是定义返回的显示类型,指定0会返回R1C1这种形式,R后面的数字表示行号,C后面的数字表示列号,如果指定1则会显示通常的形式,比...

2019-02-28 14:15:50 5931

原创 [Excel]Excel函数和用法(7)——返回文本对应的引用,INDIRECT函数

INDIRECT返回指定字符串对应的单元格的对象引用,返回值可灵活应用于其他公式计算。语法:INDIRECT(ref_text, [a1])例如:我们在Sheet1中的B2写了一个数字2,在Sheet2中使用INDIRECT引用Sheet1!B2这个单元格:进一步解释一下第二个参数:第二个参数指定ref_text的格式是R1C1(行列序号)还是B2:实际应...

2019-02-28 14:12:24 3715

原创 [Excel]Excel函数和用法(6)——按照多个指定条件计数,求和,求平均数。COUNTIFS/SUMIFS/AVERAGEIFS

语法:COUNTIFS(criteria_range1, criteria1, criteria_range2, criteria2, …)例如,统计A列性别为男的,年龄在5-13之间的,姓A的数量:SUMIFS和AVERAGEIFS语法和用法类似,只不过第一个参数要写需要求和/平均值的Range。以SUMIFS语法为例:SUMIFS(sum_range, criteria_ran...

2019-02-28 14:04:46 6550

原创 [Excel]Excel函数和用法(5)——跨表查找匹配的字段,VLOOKUP函数和HLOOKUP函数

语法:VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])例如,在B1:C24这个Table里面查找F列对应的Name的值,返回B1:C24这个Table第2列的值:第一个参数是要查找的值,第二个是要查找的范围,第三个是查找到最后一个参数指定是否完全匹配:HLOOKUP其实和VLOOKUP类似,只...

2019-02-28 13:59:14 2892

原创 [Excel]Excel函数和用法(4)——查找字符串,SEARCH和FIND函数

区别:SEARCH大小写不敏感,FIND大小写敏感作用:都是从左到右返回搜索到的字符串的起始位置SEARCH语法:SEARCH(find_text, within_text, [start_num])FIND语法:FIND(find_text, within_text, [start_num])如果指定字符串不存在在目标字符串里面的话,则需要用IFERROR来判断下例如:...

2019-02-28 13:54:14 17398

原创 [Excel]Excel函数和用法(3)——在公式条件中引用其他单元格的值,&的用法

如果我们希望在公式的条件中引用其他列的值作为条件而不是写具体的值,可以参考下面的方法:=AVERAGEIFS(B:B,A:A,"=" & E:E)高亮部分引用的是对应每行的E列的值,结果:...

2019-02-28 13:49:52 7838

原创 [Excel]Excel函数和用法(2)——?和*的用法

?代表单个字符,*代表任意数量的字符例如,在COUNTIF中使用通配符来匹配名字以A开头的Name的数量:

2019-02-28 13:45:13 1012

原创 [Excel]Excel函数和用法(1)——绝对引用"$"的用法

如果我们希望公式拖拽的时候,横向拖拽的时候列号不自动增加,在列名前加$,如果我们希望行号不自动增加,在行号前面加$,比如:我们再行号“1”前面加了$,然后拖拽之后,行号不变,所以全都是A1+B1的结果。列同理:如果希望行列都为绝对引用,那就可以写成$A$1这种形式。举个具体的例子,我们创建一列数字:B列我们希望这么计算:B1=A1,B2=SUM(A1:A2),......

2019-02-28 13:41:34 21891

原创 [Azure]Azure Storage Access Policy使用小实验

Azure Storage的Container除了可以设置Public Access Level之外:还可以定义一些Stored Access Policy:Stored Access Policy是属于单个容器的,不同容器之间的Stored Access Policy是互相独立的。Stored Access Policy可以用于生成SAS Token(Shared Access Signatur...

2018-03-06 18:22:06 953

原创 [Azure]通过waagent代码找到临时磁盘的设备名

Azure的Linux虚拟机默认会有一个临时磁盘,正常情况下设备名是/dev/sdb,但是由于设备识别顺序是随机的,所以重启的时候,临时磁盘的设备名可能未必是/dev/sdb,那么waagent是如何将/dev/sdb挂在到/mnt/resource下的呢?waagent相关代码都在/usr/lib/python2.7/site-packages/azurelinuxagent目录下(具体分析过程...

2018-02-28 17:51:23 997

原创 Automatic Maintenance导致CPU跑满

今天使用电脑的时候突然发现超级卡,看了一下,CPU持续100%:感觉莫名其妙,机器上面什么也没跑,看资源管理器里面有一个名字叫TiWorker的进程在搞事情:看描述并不是病毒,又看到右下角提示"Maintenance in progress":应该是找到原因了,看起来就是这个不知道要干啥的维护在作怪。打开Action Center(右下角),先把这个搞事情的Maintenance停掉再说:停掉之后...

2018-02-27 14:29:11 1370

原创 [Azure]使用Powershell导出所有订阅下的ARM虚拟机的信息

针对脚本中涉及到的知识点说明:1. 脚本输出结果调用office的excel模块输出到一个excel的sheet中2. 脚本中包含了通过powershell控制excel的cell格式,例如对齐方式,边框样式等等,行列宽度高度自适应(autofit),以及锁定(freeze)首行首列的方法3. 由于ARM模式下虚拟机,IP,网卡这些资源都是独立的,互相之间引用,如果拿到每一台虚拟机信息

2018-02-07 16:32:35 880

原创 主从域控和DNS同步问题Trouble shooting

环境搭建:准备至少3台机器,一台主DC & DNS,一台从DC & DNS,一台作为测试的客户端。 首先搭建主DC(主DC和从DC我们都用Server 2012来搭建,2008也OK,只要Forest和Domain的功能级别选对应的就行):先在Server Manager中选择Add Roles and Features,安装ActiveDirectory Domain

2018-01-29 18:03:49 8512

原创 [Azure]Azure虚拟机代理服务(waagent)代码简单分析

我们在Azure中创建一台CentOS7.4的虚拟机,首先我们看一下/sbin/waagent这个执行文件:import osimport impimport sys if __name__ == '__main__' :    import azurelinuxagent.agent as agent    """    Invoke main

2018-01-23 17:59:32 1253

原创 使用xperf收集并使用Windows Performance Analyzer查看Windows性能信息

首先需要安装Windows Performance Toolkit,然后使用其中的xperf工具进行信息收集,下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=39982下载之后我们安装的时候只选择Windows Performance Toolkit就好了:安装完成后,我们打开一个cmd窗口,使用下面的

2017-12-14 17:24:45 10197

原创 关于机器访问自己内网IP的问题讨论

对于一台机器来说,他在访问自己的内网地址的时候究竟是怎么样一个原理呢?我们通过几个小实验来探究一下。 这个实验里面有3台机器,机器A,地址是172.31.100.107,机器B用于辅助测试,地址是172.31.100.170,还有一台Linux机器C用于做scapy的测试,IP为172.31.100.222。 实验1在机器A上面psping它自己的内网地址和端口,进行抓包:

2017-12-13 16:16:30 2043

原创 redis的一些安全问题小实验

redis默认仅对127.0.0.1侦听,因此只有本地的redis客户端可以访问。但是如果redis服务希望提供公网访问,就需要向公网开放6379端口,这就存在一定的安全隐患,如果没有设置redis认证密码,则会导致很多安全隐患。 主要有两个隐患,首先通过远程的方式可以使用eval命令执行一些脚本,例如(如果没有认证的话就不需要-a了,这里面因为是咱自己的服务器,所以加了认证):red

2017-12-08 18:09:02 736

原创 CentOS 6.9 redis安装与基本配置(下)

上面我们安装好redis服务之后,接着我们来看基本配置。redis配置文件的默认位置/etc/redis.conf:egrep -v"(^#|^$)" /etc/redis.conf 进入redis命令行:redis-cli其中,6379是侦听端口。 查看所有配置:configget * 查看某个配置:configget logl

2017-12-08 15:35:08 1534

原创 CentOS 6.9 redis安装与基本配置(上)

使用下面的命令进行更新yum源并安装redis服务:rpm -Uvhhttp://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpmyuminstall -y redisserviceredis startchkconfigredis on 安装好之后,我们发现一个比较奇怪的问题(不确定

2017-12-08 15:34:41 2312

原创 Linux调整磁盘格式为GPT,格式化2TB以上的磁盘

如果磁盘大小超过2TB,可以使用parted命令来进行分区的创建。我们首先挂载一块4TB的磁盘:使用parted工具进行分区划分:注意上面我们使用mklabel gpt将磁盘分区格式修改为GPT格式,默认是MBR格式。如果不做修改,默认只能支持2.2TB的分区:使用mkpart做分区的时候会报错:partition length of 8587837

2017-11-30 15:30:47 20134

原创 [Azure] Azure负载均衡后的MySQL服务的一次TroubleShooting

工作中遇到的一个具体案例,拿出来简单分析一下,帮助大家了解一下MySQL相关的机制以及Azure平台负载均衡探测的原理。客户环境是在Azure环境中搭建了一个内部负载均衡,后端有2台MySQL服务器做了主从。从后端MySQL服务器上使用show processlist查看发现有一个168.63.129.16的IP进行MySQL的连接:168.63.129.16这个IP实际上是平

2017-11-29 16:23:05 565

原创 [Azure] 使用azure cli 2.0 利用Key Vault创建自签名证书导入nginx

链接参考:https://docs.azure.cn/zh-cn/virtual-machines/linux/tutorial-secure-web-server安装cli 2.0 的步骤这里略去。首先创建一个新的资源组:az group create --name dantstrg --location chinanorth需要注意一点:上面创建的资源组的名称一定要使用

2017-11-24 14:56:20 685

原创 nginx初学指南

nginx概述:nginx服务由一个 master进程和多个 worker进程组成,master进程主要负责读取和应用配置,以及维护 worker进程,worker进程负责实际处理请求。Nginx基于事件处理机制来高效地将请求分配给 worker进程,worker进程的数量可以在配置文件中预先定义好或者基于可用CPU数量自动调整匹配。 nginx

2017-10-24 16:38:41 587

原创 [Azure]ARM模式下批量清理未使用的托管磁盘

Azure ARM模式下提供了托管磁盘这种磁盘管理方式,虚拟机不用了之后删除掉,磁盘会残留下来造成资源浪费,可以使用下面的脚本进行批量清理。脚本调用 Invoke-Parallel 来实现并发操作,提高清理效率。内容和思路比较简单,脚本内容如下:$scriptSrc = "http://danielnorthstorage.blob.core.chinacloudapi.cn/fordow

2017-10-11 16:06:25 380

原创 Windows虚拟内存简介

在Windows系统中,系统内存本身的空间可能非常有限,但是通过虚拟内存(Virtual Memory),可以让程序可以拥有超过系统物理内存大小的可用内存空间。 顾名思义,虚拟内存是逻辑层面的划分。操作系统通过内存管理器(Memory Manager)将虚拟内存地址与物理地址进行对应。通常在系统中,虚拟内存的大小都要大于系统的实际内存大小,因此内存管理器会将一部分虚拟内存中的内容映射到

2017-09-30 15:13:00 8929

原创 使用Powershell解析Json的算法实现

Json格式解析可以利用递归的方式,主要的两大结构是数组和字典,所以利用这个规律交叉递归解析就可以了。即字典中递归调用字典和数组解析,数组中递归调用字典和数组解析,这样无论Json数据有多少层,都可以完全解析出来,不需要提前知道整个数据结构的情况。为了方便解析,这个脚本里面我们要求解析的Json的格式是标准的,需要用行进行数据的区分,例如下面这种数据格式:{ "name": "

2017-09-28 15:19:03 4794

转载 排查Linux机器是否已经被入侵

转载自:http://www.cnblogs.com/stonehe/p/7562374.html随着开源产品的越来越盛行,作为一个Linux运维工程师,能够清晰地鉴别异常机器是否已经被入侵了显得至关重要,个人结合自己的工作经历,整理了几种常见的机器被黑情况供参考 背景信息:以下情况是在CentOS 6.9的系统中查看的,其它Linux发行版类似 1.入

2017-09-20 17:17:29 5661 1

原创 [Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(托管磁盘)

对于ARM虚拟机,删除后,默认会保留磁盘文件,以及网络接口,IP地址等资源。所以如果不手工删除,这些垃圾资源会占用账号的资源,产生额外的话费,因此整理了一个脚本用于删除虚拟机的同时将这些垃圾资源清理掉。本脚本针对托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionNam

2017-09-08 19:33:39 478

原创 [Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(非托管磁盘)

对于ARM虚拟机,删除后,默认会保留磁盘文件,以及网络接口,IP地址等资源。所以如果不手工删除,这些垃圾资源会占用账号的资源,产生额外的话费,因此整理了一个脚本用于删除虚拟机的同时将这些垃圾资源清理掉。本脚本针对非托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionNa

2017-09-08 19:31:55 423

原创 [Azure]使用Powershell克隆ARM虚拟机(托管磁盘)

ARM模式下对多磁盘虚拟机捕获映像再批量创建需要对磁盘进行一般化操作,然后使用模板进行创建,整个过程比较复杂,因此为了简化操作,整理了一个用于克隆虚拟机的脚本。特别针对多网卡虚拟机以及网卡多IP的情况进行了逻辑处理。但是对于诊断等设置没有进行克隆。注意这个脚本针对托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true

2017-09-08 19:19:47 644

原创 [Azure]使用Powershell克隆ARM虚拟机(非托管磁盘)

ARM模式下对多磁盘虚拟机捕获映像再批量创建需要对磁盘进行一般化操作,然后使用模板进行创建,整个过程比较复杂,因此为了简化操作,整理了一个用于克隆虚拟机的脚本。特别针对多网卡虚拟机以及网卡多IP的情况进行了逻辑处理。但是对于诊断等设置没有进行克隆。注意这个脚本针对非托管磁盘的虚拟机。脚本如下:param( [Parameter(Mandatory = $true)]

2017-09-08 19:06:06 504

原创 [Azure]ARM中使用Azure Powershell批量规划虚拟网络

ARM模式中为虚拟网络和子网的创建提供了相关的命令,因此可以很方便地根据具体的拓扑来使用命令创建,节约人力时间。涉及到的两条命令:New-AzureRmVirtualNetworkAdd-AzureRmVirtualNetworkSubnetConfig刨去网络安全组的配置,我们单纯利用上面两条命令做了一个简单的脚本用于批量创建虚拟网络:Function Cre

2017-09-05 15:02:06 323

局域网文件和文本传输工具(C#源码)

C#源码,用于局域网两台机器间传输文件和文本,看到下载需要的积分变成47了,不知道什么原因。。。。改了一下,调整回0积分了。

2017-07-11

http error code

列举了所有http请求返回code代码以及每种代码对应的解释类型。文档类型为docx,分类清楚。

2012-04-12

WPF入门.pdf

介绍了WPF(Windows Performance Foundation)的相关知识,层次结构清晰易懂。对于界面和Web开发的朋友会有所帮助。

2011-11-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除