基于acme.sh脚本自动化白嫖SSL证书
简单介绍acme.sh 实现了 acme 协议, 可以从 Let’s Encrypt 生成免费的证书。支持一键脚本和 docker 部署.支持 http 和 DNS 两种域名验证方式。
acme部署通过使用域名服务商提供的 API 密钥,让acme.sh自动创建域名验证记录以申请域名证书. acme.sh 支持全球各种域名服务商的 API ,本文将以腾讯云(我的服务器在这)。其他例如阿里云、Cloudflare等 DNS API 支持,可以查看官方的文档:https://github.com/acmesh-official/acme.sh/wiki/dnsapi。
获取腾讯云dnsapi登录DNSPod控制台访问api密钥https://console.dnspod.cn/account/token/apikey。获取DNSPod Token,注意:是DNSPod Token,不是腾讯云API密钥,如下截图。
记录下id和token
12export DP_Id="1234"export DP_Key="sADDsdasdgdsf"
更多云服 ...
自定义Presto插件
遇到的问题根据国家发布的规定,我们需要把用户隐私数据进行加密存储,例如手机号、IP地址。我们的数仓是保存在AWS的S3存储系统中,数据通过Presto进行查询,很多时候找数据是需要精确到具体用户的。但此时我们的用户数据已加密,而Presto又不支持解密,如果使用程序解密费时费力,所以自定义插件就闪亮登场了。
基础版本我使用了AWS的EMR版本如下:
123JDK:1.8.0_92EMR版本:emr-5.30.1Presto版本:0.232
123JDK:1.8.0_201EMR版本:emr-5.24.0Presto版本:0.219
对了如果抄我的代码,请确认自己的是Presto维护作者,现在网上有两个版本的Presto,互相是不兼容的。一个是我现在的使用的com.facebook.presto,还有一个是io.prestosql,注意注意。我的程序的Presto SDK版本是0.232,测试是可以兼容低版本的,例如0.219。
源码地址:https://github.com/HWYWL/presto-third-udfs打包命令:mvn clean package -DskipTe ...
Caddy 反向代理
基本介绍和使用Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书、OCSP 装样、静态文件服务、反向代理、Kubernetes 入口等,强力推荐。
安装 Caddy12# 安装 Caddy 软件包yum install caddy -y
配置 Caddy12# 下载 Halo 官方的 Caddy 配置模板curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs https://dl.halo.run/config/Caddyfile
下载完成之后,我们还需要对其进行修改。
12# 使用 vim 编辑 Caddyfilevim /etc/caddy/conf.d/Caddyfile.conf
打开之后我们可以看到
1234567https://www.simple.com { gzip tls xxxx@xxx.xx proxy / localhost:port { transparent }}
请把 https://www.s ...
一个轻量级的定时任务管理器
ant-task一个轻量级的定时任务管理器
简介在Spring Boot中有一个自带的**@Scheduled注解,可以用于启动定时任务,使用很方便,但也存在着不足,例如定时任务直接写死、方法无参数、不能随时启停等等。ant-task就是为了解决这些问题而存在的,在解决问题的同时也一如既往的方便接入,ant-task**特性如下:
图形化界面管理
方便快捷接入
支持随时启停任务
支持动态参数传递
支持动态修改任务时间
支持Cron表达式
支持日志ID跟踪
注意:因为没有使用第三方存储,所以不适合分布式项目,下个版本更新
安装maven
12345<dependency> <groupId>com.github.hwywl</groupId> <artifactId>ant-task</artifactId> <version>1.0.3-RELEASE</version></dependency>
Gradle
1implementation 'com.github.h ...
飞桨PaddleOCR的简单使用
公司目前有一个需求是自动识别用户上传的银行卡和身份证,为了信息安全考虑没有使用第三方的API,而是自己搭建了一套,搭建使用如下。
环境配置123456789101112131415161718192021222324252627282930313233# 我使用是AnolisOS 8.5版本,一个Centos 8的衍生版本,完全兼容Centos 8。# 安装开发者工具dnf groupinstall 'development tools'# 可通过查找不同版本安装yum search python | grep -i devel# 安装python-devel(注意python版本)yum install -y python39-devel.x86_64# 创建软连接ln -s /usr/bin/python3.9 /usr/bin/python3ln -s /usr/bin/python3.9 /usr/bin/pythonln -s /usr/bin/pip3.9 /usr/bin/pip3ln -s /usr/bin/pip3.9 /usr/bin/pip# ...
小米路由器Pro(R3P)刷机教程
第一步解锁路由器SSH1.首先需要下载 小米路由器Pro 开发版的ROM固件,地址如下:
1ROM下载地址:https://bigota.miwifi.com/xiaoqiang/rom/r3/miwifi_r3_firmware_e9f31_2.27.120.bin
2.在浏览器输入192.168.31.1进入小米管理后台右上角 -> 系统升级 -> 手动升级
选择刚刚下载ROM文件,点击开始升级
3.等待重启
4.解锁ssh
1解锁工具:https://www.miwifi.com/miwifi_open.html
按照官网说明进行操作解锁
第二步连接ssh使用你喜欢的shell工具连上即可,我喜欢国产的,地址如下:
12官网:http://www.hostbuf.com/t/988.html下载地址:http://www.hostbuf.com/downloads/finalshell_install.exe
连上ssh
123地址:192.168.31.1账号:root密码:自己下载ssh解锁工具包页面的密码
能看这个界面就算是成功一半了。
上传刷机固件固 ...
Facebook ios 事件上报测试踩坑
重点提要
fbsdk至少要12.2.1
测试过程中,测试事件页面不能关闭
测试设备要安装fb app,允许跟踪(idfa权限),并且登录跟后台一样的fb账号
xcode工程配置要开启FacebookAutoLogAppEventsEnabled
fb后台
事件上报接入请查看官方文档
打开测试事件页面,测试期间不能关闭,上报成功会自动刷新页面
后台登录的fb账号要跟测试设备上登录fb账号一致
接入问题汇总
Facebook SDK的版本至少要到12.2.1,原因请看
接入文档中的配置不能漏,除了fb id之外,autoLog也要开启,如下所示
12<key>FacebookAutoLogAppEventsEnabled</key> <true/>
如果想看fb事件上报的客户端日志,在应用初始化的时候调用
1[FBSDKSettings.sharedSettings enableLoggingBehavior:FBSDKLoggingBehaviorAppEvents];
接入事件的时候,尽量使用fb定义好的标准事件,标准事件的上报能帮 ...
不积跬步,无以至千里|2021年终总结
2021年终总结「时光不负,创作不停」
2021年匆匆而过转眼又到年关,2021年只剩下一周,又到了一年总结的时候,回想今年发生了很多事情,不管是工作还是生活,特别是工作因为政策的原因变动很大,不过还好至少在技术上有了长足的进步,准备好爆米花我们一起吃瓜吧。
工作工作总结年初一切如旧虽有疫情但是大家都平安,这也是我进入公司的第三个年头,负责的是数据分析业务,总的来说就所有的数据都会经过我们这边,为所有的运营提供数据服务的支持。今年最大的收获就是接触到了大数据,以前一直写的都是业务层面的逻辑代码,也就是我们程序员经常自嘲的CURD工程师,在拧螺丝到造火箭的大马路上又近了一步,可喜可贺。
亿点点小细节在内部写过好几个工具,受到一致好评(自卖自夸),包括大数据集群的自定义函数组件、用于项目接口链路跟踪插件、甚至重写阿里云日志服务的SDK(真的太难用了)等等。说正经的其实为了避免麻烦好学习成本的问题,我会尽量用最简单的能接入的方式进行编写,但是在内部推广中还是会遇到各种问题。最大的问题还是不愿意去尝试,其实这个可以理解,毕竟要改动一个已经写好的东西还是挺麻烦的,但是在我的热情邀请(脸皮超厚)之 ...
大数据文件Parquet
简介是Hadoop的一种列存储格式;它提供了高效的数据存储和编码。使用Dremel文件中描述的记录分解和组装算法来表示嵌套结构,下面是官方的解释。
Apache Parquet is a columnar storage format available to any project in the Hadoop ecosystem, regardless of the choice of data processing framework, data model or programming language.
通俗点就是大数据全家桶的高效存储方式,它主要解决了如下几个问题:
把IO只给查询需要用到的数据,只加载需要被计算的列
空间节省,列式的压缩效果更好
可以针对数据类型进行编码(gzip、snappy)
开启矢量化的执行引擎(不再1条1条的处理数据,而是一次处理1024条数据)
SDK封装Parquet的具体原理我这边就不再赘述了,这边只讲使用。原生的api很难用,相当繁琐,所以我封装了一层。只暴露简单的api使用,里面复杂的逻辑全部屏蔽掉
通过反射自动生成MessageT ...
问题这样查,拒做背锅侠
技术的锅太多,到底该不该你背?话说这天一大早,那个悲催的中年架构师大刘又被手机微信群给炸醒。部门的运维兄弟在公司微信群里说:
短信的生产环境服务器 CPU 占用率过高,疯狂报警。是不是你们昨天上线看门狗导致的?
大刘迷了巴登的想了想,没错,昨天确实给短信服务装上了看门狗。但是看门狗服务肯定不会有问题(架构师必备的蜜汁自信),而且上线之前各轮测试也都测过了,没见过这个想象啊。
难道是测试妹子没测试到位?难道线上短信应用自身出现了问题?
生产无小事,小事更不能忽视,主要是怕扣绩效奖金。大刘迅速打开电脑,打开 VPN ,远程登上短信生产服务器,开始大刘最拿手的 2W1H 三板斧诊断之旅。
接下来的诊断内容有点烧脑,节奏有点快,请大家坐稳扶好。
1. 病号是谁(WHO)?大刘拿出控制台诊断仪器,输入 top 命令一探究竟。我勒个去,不看不知道一看吓一跳,PID 为 1878 的病号,CPU 占用居然 200% 多。
问题算是定位到了,但是 PID 为 1878 的病号到底是谁,难道真是昨天上线的看门狗 ?
虽然大刘久经职场,但是排查生产问题时,内心还是比较忐忑,毕竟这是生产环境。
说时迟那时 ...