Maple's Blog.

Maple's Blog.

keep coding and having fun

强关 esxi,数据损坏和修复
起因我家里用了一台 x79 平台作为 Esxi。这台机器有一个不算毛病的毛病,就是在大量传输文件的时候,会出现网口堵塞,也就是机器不死机,但是网络却无法访问。 前几天刚好在备份数据,网络却忽然不通了。因为我人在公司,于是我习惯性的使用米家 APP 去强关机器并重启。 黑群辉修复我在虚拟机整了一个黑群晖,使用两块机械硬盘和一块虚拟盘组成。因为虚拟盘是基于 SSD,所以相对速度较快,我一般作为主盘,用于安装套件。 进入群晖之后,显示盘损毁。因为群晖每个分区都会安装系统文件。因为这个原因,即使只剩下一个任意一个盘,也能正常开机。 尝试通过页面和指令进行修复。修复失败。 因为群晖的 Basic ...
Esxi 磁盘容量收缩
Esxi 支持精简置备和厚置备。对于我们设备容量比较紧缺并且对性能要求不高的个人用户而言。精简置备是首选。 但是精简置备存在一个问题,一旦跨磁盘移动之后,精简置备的容量会变成满容量。 所以实用指令进行收缩: 1vmkfstools -K xxx.vmdk 这个指令仅支持因为移动虚拟机导致的磁盘增大。 还有种情况是,一开始选择了厚置备,则可以通过转换的方式了来转成精简置备: 1vmfstools -i old.vmdk -d thin new.vmdk thin 指的是精简置备 完成转换的的 vmdk 默认就是是压缩过的。 注意一点,如果虚拟机中途达到过一个容量,再删除内容,这...
[Untitled Post]
aligo 实现类似 os.walk 的功能。 实测并不实用,仅当玩具。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212...
Nodejs 实现 Python os.walk()
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950const path = require('path');const fs = require('fs').promises;async function done (paths, root) { const files = await fs.readdir(root); const endDirs = []; const endFiles = []; ...
TypeScript Type 类型判断
TS 中官方支持的方法里,判断 Type 类型的有: typeof ,但是遗憾的只支持基础类型 instanceof,只支持类 也就是混合的自定义 Type 而言,官方是没有常见的函数来进行判断。不过 TS 也给了办法。 先说怎么判断,TS 的类是通过参数字段来判断是否是同一个类型的 Type。也是满足字段类型相同的变量,就可以认为是属于某一个 Type。 所以可以通过 in 来判断是否包含某个字段。 初始先定义一些类型: 123456789101112interface A { a: string}interface B { a: number ...
Python3 安装 mailer 失败
from: https://bobbyhadz.com/blog/python-error-in-package-setup-command-use-2to3-is-invalid 原因: mailer 是 Python2 的包。在 Python3 环境安装会因为 setuptools 默认版本过高,导致安装失败。 解决方案: 安装低版本 setuptools 1pip install --upgrade pip "setuptools<58.0"
TypeScript 重载
函数重载 1234567// 声明和实现写在一起function t1(p: string): number;function t1(p: number): string;function t1(p: string | number) { return typeof p === 'string' ? Number(p) : String(p);} 类方法重载和函数重载其实是一样的。 是需要在类的方法上面,写上声明。 之前查询说必须要基于类的声明实现,其实是不需要的。 不过如果是基于 interface 实现类,那相当于把 inte...
rabbtmq 笔记 & demo
基本首先熟悉几个概念: exchange 交换器,可以认为是消息 publish 的目的地。 所有消息都是推送到 exchange 的 queue 队列,consume 监听的位置 queue 其实和 publish 没有任何关系 只是为了方便多个消费者消费同一个消息 流程 创建 exchange,也可以复用已存在的 exchange。 如果 exchange 已存在则不创建 如果已存在的 exchange 的属性与代码配置的不符合则报错 consumer 创建 queue 如果已经存在则改为获取 queue,参数以存在的为准,如果链接的 queue 参数不符合就报错 ...
黑群晖新引导洗白(转载)
原文 在前面的文章中,我们利用ARPL引导将黑群晖安装好了。有朋友就问我,ARPL安装的黑群晖洗白和其他的不一样了,该怎么洗白?这篇文章为你解答。 原理其实洗白的主要就是修改引导里面的 sn 和 mac 地址。 我们只需要找到引导里面的 sn 和 mac 地址就好了。 而 APRL 引导中, sn 和 mac 地址都在 user-config.yml 中。 也就是说,修改这个文件就好了。 操作知道了原理,操作就简单了。 第一步,我们需要开启群晖的SSH,这一步相信大家都很熟悉,这里就不累述。 第二步, SSH 连接上群晖。 第三步,sudo -i 切换到 root 权限下。 第四步,创建...
廖雪峰 Python 教程笔记
教程地址: https://www.liaoxuefeng.com/wiki/1016959663602400 生成器和迭代器12345678910111213141516171819202122# 构建生成器def odd(): times = 0 while True: yield times times = times + 1 if times > 10: # break return 'some value'# for 循环for t in odd(): ...
avatar
Maple
coding & have fun