最近需要erlang使用rsa实现签名验证
在网上搜了好久终于拼接成一份完整的代码
1 | -----BEGIN PRIVATE KEY----- |
1 | MIIEvgI...0kcd4bKcAc3CENaL3U03oLE58r |
1 | -----BEGIN PUBLIC KEY----- |
1 | ssh-rsa MIIEvgI...0kcd4bKcAc3CENaL3U03oLE58r |
简单逻辑就是将各种格式的key转换如下格式:
1 | -----BEGIN XXXX KEY----- |
然后调用public_key:pem_decode/1
, public_key:pem_entry_decode/1
加载key
若是从目录下加载,目录下的key名字必须是ssh_host_rsa_key
,ssh_host_rsa_key.pub
1 | -module(rsa_sign_verify). |
最近需要盘点公司的资产
部分centos主机关联不上具体的IP
又不方便关机
想到一个简单的方式:ssh远程后,播放音乐,用耳机听下
搜索了linux下的命令行播放器,发现大部分在centos6上没法使用yum安装
最后发现了aplay
,自带的,只是听个声,够用了
yum install alsa-utils -y
本来机器上已经有了,忽略
1 | [root@platform ~]# aplay -l |
显示有4个设备:
3个HDMI
1个ALC887-VD Analog,虽然名字不知道什么意思,但是很明显这个就是音频设备,Analog-模拟
找个歌曲,比如国歌,上传上去
1 | # -D 指定设备 |
开始播放了,找个耳机去机器上听下,现在可以确定IP了,😄
fpm
The goal of fpm is to make it easy and quick to build packages such as rpms, debs, OSX packages, etc.
1 | yum install ruby-devel gcc make rpm-build rubygems |
玩家反馈,ios15无法登录游戏,android和ios其他版本没有问题
分析发现,ios15将原本是一条数据内容分成三份发送
1 | ## 本来这应该是一条数据的 |
对应的协议格式:
1 | 0 1 2 3 |
对于使用mochiweb的websocket只要增加
1 | parse_hybi_frames(_, <<>>, Acc) -> |
其他语言也差不多的逻辑,数据不全就继续等待数据了
最近查看公司机器的内存占用情况,发现mongod大约占了50%的内存。
命令:ps auxc|head -1;ps auxc|grep -v PID|sort -rn -k +4|head;
原来内存默认使用的是(系统内存-1GB)*50%
(据说是3.4版本+)。
这也太坑了,服务器又不是专门用作DB的,还有其他进程也要吃内存。
运行中的mongod,也不敢restart,查询了可能的运行中清理内存。
注意:没有在正式环境中执行过,仅作参考。
关闭所有的数据库:db.adminCommand({closeAllDatabases: 1})
或者use admin; db.runCommand({closeAllDatabases: 1})
使用crontab
定时执行mongo --eval "db.adminCommand({closeAllDatabases: 1})"
?也许可以
有新的数据进来的话,会重新开数据库的
要安装cgroups
,正式环境中没有,没试过,不清楚进程会不会重启
cgcreate -g memory:DBLimitedGroup
echo 16G > /sys/fs/cgroup/memory/DBLimitedGroup/memory.limit_in_bytes
sync; echo 3 > /proc/sys/vm/drop_caches
cgclassify -g memory:DBLimitedGroup $(pidof mongod)
mongod.conf
增加wiredTigerCacheSizeGB=8
,然后mongod reload
或者/usr/bin/mongod --config /etc/mongod.conf --fork --wiredTigerCacheSizeGB 8
server端
下载地址:
安装到自己的手机上,然后点击右上角的+,添加需要共享的视频/音频
确保可以后台运行
client端
下载VLC for Android
安装到某盒子
或者智能电视
上
确保server端
和client端
在同一个局域网中
打开VLC,稍等片刻就可以在本地网络
中看到了
如果看不到的话,就重启
下server端
农历转公历是没有规律的,所以只能根据已有的数据转换
香港天文台的数据:https://www.hko.gov.hk/tc/gts/time/conversion1_text.htm#
自己转换出了一个lunar.db
(点击下载),用sqilte3
打开
1 | sqlite3 lunar.db "SELECT solar from lunar2solar where lunar=\"2023-02-22\"" |
自己随便写了一个农历转公历的接口,其实就是从lunar.db
中查询数据而已
很随意的,性能没法保证的https://tools.web.mingilin.com/lunar2solar/lunar2solar.php?lunar=2023-02-22
日期格式必须是YYYY-MM-DD
1 | $ curl --silent https://tools.web.mingilin.com/lunar2solar/lunar2solar.php?lunar=2023-02-22 | jq -r '.data | .[].solar' |
git for windows
ssh-agent
服务Win+s
搜索服务
,以管理员身份运行OpenSSH Authentication Agent
为开机启动ssh-add
增加私钥C:\Users\用户名
目录下,ssh-add %USERPROFILE%\ssh_keys\id_rsa
Win+R
->shell:startup
)1 | echo 启动win10_ssh-agent |
Win+s
搜索编辑系统环境变量
GIT_SSH=C:\WINDOWS\System32\OpenSSH\ssh.exe
git clone ssh://xxx
应该就可以正常工作了TortoiseGIT
git for windows
Settings
-> Network
-> SSH Client
)C:\WINDOWS\System32\OpenSSH\ssh.exe
Pageant
,添加私钥.ppkSettings
-> Network
-> SSH Client
)Your\TortoiseGit\Path\bin\TortoisePlink.exe
小米6手机(MIUI 11 20.1.16)中使用 DAVx5 显示缺少权限、无法同步 Tasks/OpenTasks 中任务。并且在 “设置” -> “应用权限” 中点击 “OpenTasks权限”/“Tasks权限” 开关无法打开。查看 DAVx5 日志发现以下四项权限被禁止:
令人困惑的是,MIUI 既不给出授权提示,在权限管理中也找不到自定义应用权限授权的地方。对 MIUI 的“设置”地毯式搜索后,终于找到了解决方法。
最后,建议再重新开启“启用MIUI优化”。关闭优化后,许多设置像是重置了一样,一来重新设置嫌麻烦,二来开启MIUI优化手机使用起来于我而言也没什么不足。网络上对MIUI优化众说纷纭,就看各位自行判断了。
最近要接手一些运维的工作
有时候需要远程更新下
对比了几个安卓的ssh客户端,发现termux
最好用了(可以很方便的将迁移sessions)(Termius
也挺好的)
termux-change-repo
1 | echo $PREFIX |
sshd
服务1 | pkg install termux-services |
默认端口 8022
现在就可以用ssh登录了,用sftp
发送文件了
1 | # ~/.termux/termux.properties |
pkg install busybox
, 使用busybox grep
1 | !/bin/bash |
个人经常使用的是tmux
, 使用tmuxinator
管理session
现在需要接手一些运维工作,但是默认安装的是screen
,因此需要一些screen
的知识
用惯了tmuxinator
,也想使用类似的工具管理screen
的session
其实就是简单的生成不同的
screenrc
配置,使用screen -c xxx.rc
调用不同的配置
1 | $ screentool |
附带源码
插件是极好的,就是股票不赚钱😂
原来股票精灵
挺好用的,现在已经废掉了😂
分享一个自用的web集成环境
在其他人的基础上修改的,现在实在找不到是在哪个基础上修改的,抱歉
只要有点开发基础,就可以快速的自定义组件,目前包括:
链接: https://pan.baidu.com/s/1xi2MzcR6P7lNrQ3JItYXUQ 提取码: w15d
1 | request_post(Url, Path, {data, Str}) -> |
xmerl
解析xml1 | scan_str(Str) -> |
proplists
转换为xml1 | export_xml(List) -> |
1 | notice_wx(UserName, PlayerId, Amount, OrderNum) -> |
nginx-quic是nginx正在开发中的支持http3的版本
目前网上大部分的文章都是基于源码编译安装的
但对于我这种只有一台垃圾服务器的玩家,源码编译不太现实
找了好久,终于找到一个可以直接yum安装的版本:
https://copr.fedorainfracloud.org/coprs/ryoh/nginx-quic/
其他发行版可能还是要源码编译。。。
安装后感觉是访问变快了,也可能是心理作用吧
For CentOS 7
1 | sudo yum install epel-release |
For CentOS 8
1 | sudo dnf install epel-release |
备注:nginx 与 nginx-quic 不能共存,注意备份数据
配置:
在server{}
中添加
1 | listen 443 http3 reuseport; # UDP listener for QUIC+HTTP/3 |
Firefox启动about:config
network.http.http3.enabled
设置为true
首次启动失败
1 | nginx: [emerg] cannot load certificate "/etc/pki/tls/certs/localhost.crt": BIO_new_file() ... |
是因为在/etc/nginx/vhost.d/http/00-default.conf
有配置本地签名
可以将其改名 00-default.conf_bak
或者在本地生成一个证书
1 | openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/localhost.key -out /etc/ssl/certs/localhost.crt |
nginx: [emerg] unknown "http3" variable
将 server{}配置中的
1 | add_header Alt-Svc '$http3=":443"; ma=86400'; # Advertise that QUIC is available |
改成
1 | add_header Alt-Svc 'h3-27=":443"; h3-28=":443"; h3-29=":443"; ma=86400; quic=":443"'; |
并且将log_format.conf(/etc/nginx/conf.d/http)中的$http3
去掉
LINUX下可以通过安装
putty-tools
,使用puttygen
转换
Windows下,PUTTYGEN
是不支持使用命令行的,可以使用WinSCP
实现命令行下转换:WinSCP.com /keygen private_key /output=vagrant.ppk /comment=vagrant
配合pageant.exe
,可以实现在vagrant中快速添加key,再使用**MTPUTTY**登录虚拟机
1 | @echo off |
备注:使用
vagrant ssh-config
可以查看具体private key文件位置、ssh端口等信息
1 | Vagrant.configure("2") do |config| |
个人使用Edge Beta浏览器
今天使用Google搜索的时候,会跳转到yahoo搜索,很是烦人
中间有个跳转链接是www.coolnewtabtheme.com/...
一开始有文章说在搜索引擎管理将yahoo的删掉,发现没用
正确的解决方案:
禁用所有的扩展,然后一个一个开启,然后验证Google搜索是否正常
个人最后排查出有问题的插件:TabSplit
,到Google Web Store
看了下,已经没有这个插件了
是否用Chrome浏览器
就不会有这种安全问题了???
Zeal是支持超多语言的离线文档查看器
默认只会下载最新版本,项目中使用旧版本的文档,需要旧版本的文档,记录下添加方式
以Erlang21.2
为例记录下,安装旧版本的文档
先从 https://github.com/Kapeli/feeds 查看Erlang.xml
,内容如下:
1 | <entry> |
通过 https://jlice.top/p/879df/ 文章获得历史版本链接模板:
http://sanfrancisco.kapeli.com/feeds/zzz/versions/{DocsetName}/{version}/{DocsetName}.tgz
替换后的链接:http://sanfrancisco.kapeli.com/feeds/zzz/versions/Erlang/21.2/Erlang.tgz
自定义xml文件名字:Erlang21.2.xml
1 | <entry> |
Add Feed
添加链接file:///E:/web/zeal/Erlang21.2.xml
E:/web/zeal/Erlang21.2.xml 是 xml的路径
在zeal安装目录下找到docsets/Erlang21.2.docset/Contents/Info.plist
文件,将erlang
修改为erlang21
重启后就可以使用erlang21: lists:seq
查询文档了
包括配置文件(stock.json)和代码(stock.ps1)
备注: 下载后将两个文件的编码修改为GBK(CP936)
下面是完整的代码:
1 | { |
1 | ## 使用powershell查看股票 |
记录下自己使用过的开源网盘:
KODExplorer
,NextCloud
芒果云是一个开源网盘,支持在线编辑和预览文件, 付费版功能更多, 该网盘不需要数据库支持
http://kodcloud.com/index.html
1 | yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm |
1 | server { |
不要折腾alias了,太麻烦了,直接root就可以了
root要求源码目录地址是/data/web/filemanager/
NextCloud是国外的一款开源网盘,相较于芒果云,个人感觉是客户端比较完善。但是,要求服务器偏高,无奈放弃。
PHP5.6
(安装方式)1 | rpm -qa | grep php |
MYSQL
(可选)1 | upstream php-handler { |
davfs
yum install davfs2
mount -t davfs https://nextcloud.web.mingilin.com/remote.php/webdav/ /root/ttt -o username=你的用户名
/root/ttt
目录下增删文件nextcloud
使用遇到的问题:
KODExplorer
就很好用了因为第一点,无奈只能放弃使用,虽然客户端确实很完善,有条件的同学可以试下。
]]>