
技术
文章平均质量分 77
清如許
关注微信公众号somenzz,后台回复【2048】,送你一份大礼
展开
-
使用 python 快速建立 FTP 服务器和客户端
使用 python 快速建立 FTP 服务器和客户端在运维工作中我们可能经常需要共享或传输文件,最简单快捷的方法就是搭建一个FTP服务器。那么我们有必要先了解一下什么是ftp。FTP 就是 File Transfer Protocol(文件传输协议) 它运行在TCP协议之上,使用两个端口:一个是数据端口,一个是命令端口,也称控制端口。默认情况下20是数据端口,21是命令端口。FTP有两种传...原创 2018-07-08 22:45:23 · 5305 阅读 · 1 评论 -
Python 基础系列--函数
在中学数学中我们知道 y=f(x) 代表着函数,x 是自变量,y 是函数 f(x) 的值,给定 x 可以计算出对应的 y。在程序设计中,函数的功能是一样的,给定输入,返回对应的输结果,变量 x 不在限制为数字,可以为任意的数据类型,比如字符串,列表,字典,对象,或者自定义的对象等,同样地返回值也可以任意的数据类型。函数的作用是对加工细节的一种封装,对外提供统一的接口,使用者无需关心函数对内的细节,...原创 2018-10-08 21:08:44 · 317 阅读 · 0 评论 -
花10分钟让你彻底学会Python定时任务框架apscheduler
文章目录安装基本概念介绍调度器的工作流程实例1 -间隔性任务实例2 - cron 任务配置调度器方法一方法二方法三:启动调度器方法一:使用默认的作业存储器:方法二:使用数据库作为存储器:调度器事件监听说到定时任务,你会想起 linux 自带的 crontab ,windows 自带的任务计划,都可以实现守时任务。没错,操作系统基本都会提供定时任务的实现,但是如果你想要更加精细化的控制,或者说任务...原创 2018-10-17 08:55:18 · 100729 阅读 · 20 评论 -
10 分钟搭建一个超好用的 CMDB 系统
CMDB 是什么,作为 IT 工程师的你想必已经听说过了,或者已经烂熟了,容我再介绍一下,以防有读者还不知道。CMDB 的全称是 Configuration Management Data Base,翻译下就是配置管理数据库,它存储与管理企业 IT 架构中设备的各种配置信息,它支撑服务流程的运转、发挥着配置信息的价值。在今天,无论是自动化运维、标准化运维、DevOps、甚至是时髦的智能运维,其实都...原创 2018-10-28 06:55:15 · 78155 阅读 · 10 评论 -
莫把实施细节当知识
曾看到这样一句话,是告诫年轻的程序员的:在软件开发中,技术变化如此之快,你花费了大量时间学习技术和工具,一旦这些技术被取代,你的知识将变得毫无价值,因为它们大部分都是实施细节。当我看到这句话时,我陷入了深深的思考,回想一下自己所学的那些技术:从编程语言、框架、第三方库,各种大型工具,数据库技术等。与那些不熟悉这些技术的人相比,自己学到的大部分的确是实施的细节。而实施的细节是如同软件一样时不...原创 2018-11-10 11:05:21 · 402 阅读 · 0 评论 -
学会正则表达式,玩弄文本于股掌之中
1950 年, 一位叫 斯蒂芬·科尔·克莱尼的数学家发表了一篇标题为《神经网事件的表示法》的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为"正则集的代数"的表达式,因此采用"正则表达式"这个术语。随后,肯·汤普逊将这一符号系统引入 Unix 中的 qed 编辑器 ,肯·汤普逊也是 Unix 的主要发明人。正则表达式的第一个实用应用程序诞生。目前,正则表达式已经在很多软件中得到广泛的...原创 2018-11-10 14:31:48 · 547 阅读 · 0 评论 -
用 Python+nginx+django 打造在线家庭影院
我喜欢看电影,尤其是好的电影,我会看上三四遍,仔细感受电影带给我的另一种人生体验,不同时期,不同年龄段看相同的电影,体验也会不一样。比如你上学时期看周星驰的电影可能就仅看到了笑点,工作之年之后再看,也许你会觉得这蕴含着深刻的人生哲理。以前下载的电影,放的到处都是,手机上,U 盘里,平板,台式机,笔记本上都保存有下载过的电影,而且有时候平板或手机空间不够,就不得不删除珍藏已久的电影,很是可惜。当要...原创 2018-11-29 08:46:59 · 4758 阅读 · 4 评论 -
分享一个IT专属的数学课,让这个冬天不太冷
凛冬将至。五年了,曾经一起学习的同学们已经不再是当初的模样,只要不是混吃等死的心态工作,都对自己的工作已经非常熟悉,大部分人已经成为大佬,开始带小弟,带团队了,还有一些人已经成为了经理。还有一小部分人像我一样,还在天天敲着键盘,盯着屏幕,努力地工作着。已经 30 多岁了,身边的人有转项目经理的,有转行做业务的,有考公务员的,坚守在技术岗位的,并不多。但并不是说一直做技术就没有前途,有的人就能走...原创 2018-12-08 15:18:49 · 365 阅读 · 0 评论 -
运维必备--如何彻底解决数据库的锁超时及死锁问题
之前有介绍过,我主要是做数据仓库运维的,业余也会动手写 python 程序,django 应用,vue 的 app,有兴趣可以加我好友一起学习。最近比较让我头疼的是数据仓库的 datastage 作业经常报 911 错误,最终问题得到了解决,在此总结一下,希望能帮到要解决 911 错误的朋友们。先介绍下数据仓库的概念:一个面向主题的、集成的、非易失性的、随时间变化的数据的集合,以用于支持管理...原创 2018-12-05 21:24:46 · 4839 阅读 · 0 评论 -
一文搞懂 db2 的锁(表锁、行锁、共享锁、排他锁)
锁,很好理解,每个人都在自己的房屋上安装有锁,你拥有了锁,房屋只有你能独占,别人不能访问。数据库中的锁也一样,只不过更加细分。db2 中基本的锁有两类:排他锁(X锁),也叫写锁,当某行数据正在被修改时,其他进程不能再读取或修改共享锁(S锁),也叫读锁,当某行数据正在被读取时,其他进程修改db2 事务的隔离锁的这种机制都是为事务隔离来服务的,这里就不得不说下什么是事务,事务就是数据库管...原创 2018-12-05 22:15:04 · 17210 阅读 · 0 评论 -
一条SQL语句提交后,db2都做了什么?
一直在做 db2 数据仓库的运维工作,对一些常用操作已经非常熟悉,但是总感觉自己学到是仍然是操作的细节,而不是真正的知识。如果你问我,一条 SQL 语句提交后,db2 都做了哪些工作,我可能会有点慌,因为我不能肯定的回答出来。于是,我就搜索一些资料,结合自己的理解,总结一下关于 db2 体系结构,db2 内存模型,SQL语句的执行过程,希望对正在使用 db2 的你有所帮助。为什么要学习架构?如...原创 2018-12-05 22:16:38 · 612 阅读 · 0 评论 -
运维必备--如何彻底解决数据库的锁超时及死锁问题
之前有介绍过,我主要是做数据仓库运维的,业余也会动手写 python 程序,django 应用,vue 的 app,有兴趣可以加我好友一起学习。最近比较让我头疼的是数据仓库的 datastage 作业经常报 911 错误,最终问题得到了解决,在此总结一下,希望能帮到要解决 911 错误的朋友们。先介绍下数据仓库的概念:一个面向主题的、集成的、非易失性的、随时间变化的数据的集合,以用于支持管理...原创 2018-12-05 22:28:40 · 2044 阅读 · 1 评论 -
工作后,为什么还要学习数据结构与算法
在学习计算机课程的时候,数据结构与算法这门课是最烧脑子的课程了,当时的心态,也就是为了学习而学习,也就是说为了考试不挂科而学,为了面试能拿到 offer 而学,也体会不到数据结构与算法有多强大的威力。以这种心态学习是最没有效果的,虽然当时明白了,但考试完、面试完,很快就忘记了。工作之后,你会发现,如果你不追求极致的性能,数据结构与算法基本用不到,大家都在学编程语言本身,学框架,学习一些 IT 工...原创 2018-12-18 08:24:31 · 2268 阅读 · 3 评论 -
Python-排序-冒泡排序-优化
这是我通过极客专栏《数据结构与算法之美》学习后的思考,分享一下,希望对你有所帮助。上一篇文章 工作后,为什么还要学习数据结构与算法 的思维导图展现了这个专栏的内容。说到算法中的排序,冒泡排序是最简单的一种排序算法了,甚至不学数据结构与算法的同学都会使用它。但是你有没有想过可以怎么优化?什么是冒泡排序:就像水慢慢烧开,气泡从下往上越来越大那样,第一次循环都把n个元素中最大的元素移动至最后位置...原创 2018-12-11 12:20:14 · 441 阅读 · 1 评论 -
Python-排序-选择排序-优化
以下是本人学习极客时间的专栏《数据结构与算法之美》后,自己动手敲代码实现,并写下当时的思考,希望对你也有帮助。系列文章:工作后,为什么还要学习数据结构与算法Python-排序-冒泡排序-优化选择排序的思想:将一组数据分为两部分,前面是已排序部分,后面是未排序部分,初始状态可认为位置 0 为已排序部分 (数组下标从0开始),其余为未排序部分,每一次都从未排序部分选择一个最小元素放在已排序...原创 2018-12-18 08:28:33 · 378 阅读 · 1 评论 -
解决 Ubuntu 18.04 无法关机的问题
文章目录定位问题解决问题本人双系统,从 16.04 升级到 18.04 使用起来很开心,过一段时间发现关机总是卡在那里,网上的方法都试过了,没用。定位问题卡在关机界面是按 F1 查看是哪个进程阻碍了关机程序的执行。我自己的看了下,发现是 rabbitmq-server is running…之前我学习了 Celery ,使用了 rabbitmq ,这玩艺是生产级别的消息中间人,果然够强悍,...原创 2018-09-29 16:46:38 · 19443 阅读 · 5 评论 -
Docker 容器从入门到痴迷
文章目录1. docker 是什么2. docker 解决什么问题1. 解决虚拟机资源消耗问题。2. 快速部署。3. 提供一次性的环境。4. 提供弹性的云服务。5. 组建微服务架构。3. docker 安装部署与使用1. 安装 docker 引擎2. 使用 docker1. 理解 docker 的架构2. docker 命令3. 卷的概念4. 自制镜像并发布4. docker 网络6. docke...原创 2018-09-28 23:15:30 · 1286 阅读 · 0 评论 -
Python 多线程操作
Python 多线程操作什么是线程:线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。 举个简单的例子来理解下: 假定有一 7 ...原创 2018-07-08 22:48:02 · 35528 阅读 · 8 评论 -
自动获取shell脚本的绝对路径,执行路径
文件名 test.sh#!/bin/shecho "脚本所在的文件夹名:"dirname $0DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"echo "脚本的执行路径"echo $DIRabspath=$(cd "$(dirname "$0")"; pwd)原创 2018-07-23 15:26:20 · 3301 阅读 · 0 评论 -
协程学习笔记
协程协程是轻量级线程,拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此协程能保留上一次调用时的状态,即所有局部状态的一个特定组合,每次过程重入时,就相当于进入上一次调用的状态。协程的应用场景:I/O 密集型任务。这一点与多线程有些类似,但协程调用是在一个线程内进行的,是单线程,切换的开销小,因此效率上略高于多...原创 2018-07-28 20:48:19 · 2110 阅读 · 0 评论 -
Python 多进程学习
运维的过程中我们可能需要编写并发的应用程序,多进程的学习是很有必要的。我们都知道进程是操作系统进行资源分配和调度的基本单位,在单核 CPU 里,同一时刻只能运维单个进程,虽然我们仍可以同时运行多个程序,但是进程之间通过轮流占用 CPU 来执行的。进程有三种状态,他们之间的转化关系如下图所示:随着技术的不断迭代更新, CPU 也越来越强大,目前家用电脑的 4 核 CPU 已经算低配置,服务器...原创 2018-07-16 09:53:15 · 555 阅读 · 0 评论 -
任务调度神器 airflow 之初体验
阅读本文大概需要 3 分钟airflow 是 apache下孵化项目,是纯 Python 编写的一款非常优雅的开源调度平台。github 上有 8971 个星,是非常受欢迎的调度工具。airflow 使用 DAG (有向无环图) 来定义工作流,配置作业依赖关系非常方便,豪不夸张地说:方便程度简直甩其他任务调度工具一条街。 airflow 有着以下天然优势: 1. 灵活易用,airf...原创 2018-08-14 14:38:53 · 7335 阅读 · 0 评论 -
自动化运维利器之 ansible 入门
阅读本文大概需要 8 分钟。ansible 简介ansible 是一款强大的配置管理工具,诣在帮助系统管理员高效率地管理成百上千台主机。设想一个主机是一个士兵,那么有了 ansible ,作为系统管理员的你就是一个将领,你可以通过口头命令,即一次下发一条命令(ansible ad-hoc 模式)方式让一个或一组或全部的士兵按你的指令行事,也可以将多条命令写在纸上(ansible p...原创 2018-08-07 16:40:09 · 694 阅读 · 0 评论 -
airflow 安装,部署,填坑
阅读本文大约需要 8 分钟。上一篇文章已经介绍过 airflow ,相信需要的人早已上网搜索相关资料,已经开始动手干了,没错,就是干,喜欢一件事件,请立即付诸行动,不要拖,时间一长,就凉了。Python 的包管理工具 pip 是一个非常优秀的工具,Python 相关的库都可以使用 pip 安装,airflow 也不例外。废话不多说,直接上操作步骤。截止目前 2018年8月14日...原创 2018-08-15 22:30:55 · 8530 阅读 · 1 评论 -
airflow 配置 CeleryExecutor
阅读本文大概需要 3 分钟celery 是分布式任务队列,与调度工具 airflow 强强联合,可实现复杂的分布式任务调度,这就是 CeleryExecutor,有了 CeleryExecutor,你可以调度本地或远程机器上的作业,实现分布式任务调度。本文介绍如何配置 airflow 的 CeleryExecutor。操作步骤CeleryExecutor 需要 Python...原创 2018-08-16 22:32:57 · 4952 阅读 · 0 评论 -
Python 骚操作-邮件转微信
阅读本文大约需要 2 分钟。今天是七夕,来一波浪的,如果你没有出去玩,不妨一试。在日常工作中,我们会经常收到邮件,有些是重要的邮件我们希望第一时间知晓,如领导发送的邮件,程序报警邮件。微信是我们使用频率最高的 app 了,因此如果能把邮件内容及时发送到微信,我们就可以及时获取邮件信息,进而采取相应行动。比打开邮件客户端再点击邮件查看要方便多了。需要安装第三方库 wxpy,wec...原创 2018-08-17 20:21:34 · 2668 阅读 · 0 评论 -
ssh协议的原理,你有可能还不知道
知其然,更要知其所以然大家都知道 ssh 命令,是用于远程登陆的,使用用户名密码或公钥进行认证。 如命令ssh user@host输入用户名密码,即可在客户端使用 user 登陆远程 host 主机。 当然也可以实现免密码登陆: 在客户端用执行ssh-keygen然后一直确认,将会生成公钥,存放在 /home/xxx/.ssh/id_rsa.pub 中,将...原创 2018-08-28 06:55:06 · 1747 阅读 · 0 评论 -
分布式异步任务神器-Celery
最近研究了下异步任务神器-Celery,发现非常好用,可以说是高可用,假如你发出一个任务执行命令给 Celery,只要 Celery 的执行单元 (worker) 在运行,那么它一定会执行;如果执行单元 (worker) 出现故障,如断电,断网情况下,只要执行单元 (worker) 恢复运行,那么它会继续执行你已经发出的命令。这一点有很强的实用价值:假如有交易系统接到了大量交易请求,主机却挂了...原创 2018-09-03 06:52:49 · 7068 阅读 · 0 评论 -
一文搞懂 RSA 算法
地球上最重要的算法如果没有 RSA 算法,现在的网络世界毫无安全可言,也不可能有现在的网上交易。上一篇文章 ssh 协议为什么安全 中的 ssh 协议也是基于 RSA 加密算法才能确保通讯是加密的,可靠的。1976年以前,所有的加密方法都使用对称加密算法:加密和解密使用同一套规则。例如:甲使用密钥 A 加密,将密文传递给乙,乙仍使用密钥 A 解密。如果密钥 A 在甲传递给乙的过程中...原创 2018-09-10 15:35:39 · 579 阅读 · 0 评论 -
如何部署一个健壮的 apache-airflow 调度系统
之前介绍过的 apache-airflow 系列文章任务调度神器 airflow 之初体验airflow 安装,部署,填坑airflow 配置 CeleryExecutor介绍了如何安装、配置、及使用,接下来介绍如何在跨多个节点来安装部署 apache-airflow:本文主要介绍以下几点:airflow 的守护进程airflow 单节点部署airflow 多节点(集群)部署...原创 2018-09-17 21:38:38 · 11854 阅读 · 4 评论 -
airflow 的使用之 Operators 介绍
主要内容1. Operators 简介2. BaseOperator 简介3. BashOperator4. PythonOperator5. SSHOperator6. HiveOperator7. 如何自定义Operator搭建 airflow 的目的还是为了使用,使用离不开各种 Operators,本文主要介绍以下几点1. Operators 简介Operators 允许生成特定类型的...原创 2018-09-27 22:40:44 · 18385 阅读 · 1 评论 -
Python 排序-插入排序-优化
以下是本人学习极客时间的专栏《数据结构与算法之美》后,自己动手敲代码实现,并写下当时的思考,希望对你也有帮助。系列文章:工作后,为什么还要学习数据结构与算法Python-排序-冒泡排序-优化Python-排序-选择排序-优化插入排序,我想你也并不陌生。可以简单地这样理解,插入排序就是就是往一个有序的数列中添中新的数据,插入之后保证数据列仍然有序,因此叫插入排序。那么具体是如何实现的...原创 2018-12-18 08:35:25 · 885 阅读 · 1 评论