将m3u8.sqlite格式的文件转码成mp4的过程

个人习惯,比较偏爱将某些视频资料下载到线下进行离线播放。

分析m6u8.sqlite的数据内容

这次想看某投资app的视频,于是先利用app自带的下载功能将视频下载到手机上。发现手机上保存的是 m3u8.sqlite 格式,为了方便分析,于是把这些文件全部转到电脑上,文件大小200M,基本确认视频内容就保存在这个文件中。传到电脑上之后,直接开始使用Linuxsqlite3命令进行分析。

Continue Reading ...

flask编写一个简易版的DnsPod

DNS是当前互联网最重要的基础设施,一般企业内也会部署自己的私有DNS服务器,在我们公司就是部署BIND9做内部域名解析,用DnsPod做外部域名解析,为了配合Nginx的运维自动化,所以对外封装了DnsPodapi接口,对内自己用flask封装了一套api。目前的过程是使用数据库记录DNS的解析记录,通过模板生成DNS的配置文件,并推送到DNS服务器,然后reload生效,过程比较复杂。

Continue Reading ...

Python的重试模块retry

Jul 09,2020 Python retry

在某些场景下,代码执行出现异常的时候,我们希望代码能自动进行重试。比如,某个三方接口的token时效时间是30分钟,在编码的时候,我希望能主动尝试登录。如果接口返回401了,重新获取token,再用新token请求一次。 retry

Continue Reading ...

使用Nginx的Basic Auth认证实现不同的登录用户内容隔离

上传和下载文件是企业经常要面对的场景,本文提供了一个新思路,使用企业具备的现有工具(LinuxNginx),不需要安装任何其他软件,可以快速建立一个简单、可靠、带认证和用户隔离的文件上传下载系统。

upload and download

Continue Reading ...

如何使用普通用户管理docker?

Apr 22,2020

首先,比”如何使用普通用户管理docker“更重要的问题是:”为什么要使用普通用户管理docker“?

  1. 使用普通用户登录服务器执行管理操作才是符合运维规范的,而不是给所有人都授予root权限,这有利于权限管理的标准化。
  2. 恶意破坏很难避免,但是要尽量不让用户做傻事,虽然普通用户进入docker之后,可以拥有root身份,但是这是恶意操作,避免的难度太高。

Continue Reading ...

Jupyter Notebook服务搭建过程

每次使用Jupyter Notebook都是在本地终端运行jupyter-notebook启动的,家里的树莓派上面已经运行了seafile, transmission-daemon,minidlna.service等服务,这次想着把Jupyter Notebook也搭建到树莓派上,提供在线编程能力。下面是搭建的过程。

1_m87_Htb_9Pstq0UcvNJ49w.png

Continue Reading ...

ansible-playbook的用法笔记

sible是十分值得运维学习的技术,作为一个自动化处理工具,用好ansible可以让你你事半功倍。下面通过几个例子来演示ansible playbook的用法。例子中会有不同ansible playbook的写法,只是为了展现ansible playbook的灵活性,使用的时候,不用拘泥其中的任何一种。最基础的方法就忽略了,可以查看官方文档。

ansible-playbook.jpg

Continue Reading ...

Python编写简单的gRPC服务

Nov 18,2019 Python gRPC

感觉gRPC似乎一直在流行与不流行之间,似乎周围没什么人用,但是每隔一段时间都会听到一些gRPC的消息,今天刚好有团队要gRPC的支持,所以就自己也测试下怎么用Python来写gRPC的服务。RPC是远程过程调用(Remote Procedure Call)的缩写形式,基本可以理解为RPC就是要像调用本地的函数一样去调远程函数,gRPC就是Google开源的RPC框架。闲话不多说,show you the code!

gRPC

Continue Reading ...