手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:Linux

M9折腾记

 买了个 M8s 和 M9,M8s 买的比较早,还是 N6000,于是在上面装了个 sentry,准备替换掉我在轻量服务器上装的这个玩意。但发现有点小浪费,再加上sentry 是直接通过 install.sh 来安装的。很多东西没办法更好的处理,于是先买了台 M9,上了32G 内存,准备用来跑跑虚拟器啥的。考虑在上面再安装一下这个 sentry,将 M8s 和我的轻量解放出来。

先是安装了 ubuntu,有时候 你不得不承认 ubuntu 的兼容性是真的好。所有的驱动都认出来了。为什么这么说呢?因为我后面是想尝试用 omv 来处理,毕竟我还要管理 docker 之类的,用这个会更方便。而且我还特地买了1T 的硬盘。

结果 。。。omv 的安装在第一步就卡住了,网卡认不出。eth 不行,wifi 也不行。。从网上下了驱动。也没认出来。一下子傻眼了,在写的时候 ,我已经在下载 unraid 了。如果它能够跑出来,那我后面就改用 unraid 了。反正 unraid 也不贵。

说白了,就是给这个5-1找点事情做做

如何自动更新 SSL 证书?

 听起来好象没问题,因为 acme.sh 就是在做这样的事情,但事实上呢,经常失败。经常有客户跑过来说,怎么网站打不开了?所以找了个检查 SSL 证书的命令,然后放在 console 里跑一下,如果证书在7天内过期就使用 acme.sh 脚本运行一次。

检测的 ssl 命令是:echo -n Q | openssl s_client -servername blog.neatcn.com -connect blog.neatcn.com:443  | openssl x509 -dates -noout,可以看到类似这样的结果 :
 
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = yzhan.com
verify return:1
DONE
notBefore=Mar 25 05:19:28 2023 GMT
notAfter=Jun 23 05:19:27 2023 GMT
 
简点区分一下数据,notAfter=后的时间就是过期时间,在 laravel 下面就方便了。 Carbon类比较一下(PHP 的 DateTime 类也能比较)。laravel 10开始,new Process()还能多进程。写个简单的脚本,加到 crontab,就完事了。
 

multipass 如何更改磁盘

用了multipass后,在mac下建了一虚拟机,用来跑lnmp项目。原来是用valet的,但还是有点不太方便。所以就直接用multipass + zerotier ,然后远程指过来。有点小麻烦,但还能接受。

 
因为我原来也没有多轻松,是用了frp + valet 来做映射,frp是个客户端,得时刻与服务器通讯。
---
闲话不说,multipass在试用的时候,创建的磁盘是5G,结果用两天就满了,一查原来是composer/npm的cache太大了。于是就想着扩容。在没有去官方查资料的时候,先google搜了一下,结果能够搜到的都是改cpu / memory,连改磁盘大小的教程都几乎没有,唯一找到的一篇还是windows下的,说是用了hyper-dev,可以直接在开发工具里调整一下,还是可视化的。
 
网上搜到的改CPU/内存的都是说进入 /var/root/Library/Application Support/multipassd/xxxx.json里直接修改就完事了。事实上在经历过几次更新后,这个json文件也不在原来的位置了,而是在 multipassd/qemu的目录下。
 
但这个配置文件也还是只能改 CPU和内存,所以,改磁盘就改不了。
 
抱着试试看的态度查了下官网,结果发现,原来改这个玩意这么简单:https://multipass.run/docs/modify-an-instance#heading--set-the-cpu-ram-or-disk-of-an-instance,直接两句命令就完事了
multipass set local.primary.disk = 10G
其他可设置的是:cpus / memory 
local是本地,primary是instance的名称。
 
---
查一下官方资料,真是比啥都好,网上那些教程的时效性太短了。

找了台4c8g的机器装了sentry

sentry这个东西吧,你要不用它,其实也可以只是用它的话呢,你能收集到更详细的信息。平时的错误日志可能是会散的,比如你nginx访问返回500,这时候你还得看程序出错的异常,对应那个时间段 。然后如果当时记录的信息不够详细,你还要倒推,请求了哪些参数,能不能复现,这些参数有没有更方便的请求,带了哪些cookie,有没有session。烦

有了sentry之后呢,这些出错信息,自然也就都带过来了。至少看到出错日志的时候,我能够知道出错行数、出错内容、请求来源、以及请求的参数。甚至还有curl的代码给你。让你可以模拟请求进行复现。
 
为了装sentry。真的是很痛苦。因为之前买的小鸡都一般是2c4g。对于开发Web来说,2c4g足够了。但sentry要求,至少4c8g,20G空间。20G空间是小事。。。但4c8g真的太贵了。。。腾讯轻量云年购老用户5.5折都要1680一年了。心痛啊。
 
不过看在他可以收集:flutter、vue以及laravel的错误日志上,我还是购了一台。毕竟网页里的vue出错了。我没法让用户告诉我你打开f12把错误信息截个图我。。
 
先试试看用一年再说了。为自己的线个项目都建一个project。看看能不能改善现在的开发情况。
---
本来也想用官方的服务的,但sentry.io有时候访问还得爬梯子,速度也不尽如意,创建项目也没有那么多。所以才想了自建,就是成本高了点
 

Tags: sentry

rpm数据库修复

因为偷懒,在腾讯云上使用的时候,就直接用了bt面板的镜像,这个镜像用的是centos,也因此就有了yum 和rpm数据库的问题。

因为某次在更新的时候嫌慢,所以直接ctrl+c,然后。。。再次启动的时候就:
 yum update
错误:rpmdb: BDB0113 Thread/process 8643/139904725112896 failed: BDB1507 Thread died in Berkeley DB library
错误:db5 错误(-30973) 来自 dbenv->failchk:BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
错误:无法使用 db5 -  (-30973) 打开 Packages 索引
错误:无法从 /var/lib/rpm 打开软件包数据库
CRITICAL:yum.main:
 
Error: rpmdb open failed
 
---看这个样子,就是数据库坏了。
看起来没什么特别好的办法,只能重建,于是:
# mkdir /var/lib/rpm/backup
# cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
# rm -rf /var/lib/rpm/__db.[0-9][0-9]*
# rpm --quiet -qa
# rpm --rebuilddb
# yum clean all
 
yum clean all运行完后会显示 :
已加载插件:fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
正在清理软件源: centos-sclo-rh epel extras os updates
Cleaning up list of fastest mirrors
 
至此,修复完毕,因为用的腾讯云,所以直接将源切到腾讯:CentOS (tencent.com),先用yum version看看版本,然后下载相应的repo。最后运行:
yum clean all
yum makecache
 
世界清静了
 
 
Records:28412345678910»