普通视图

发现新文章,点击刷新页面。
昨天以前独孤伶俜

2021一团糟

作者 独孤伶俜
2022年1月22日 16:47

总结: 在家躺了一年,什么也没有做。什么都提不起兴趣,学java最长持续了10天就看不下去了。考研只看了政治马原。。。天天与游戏和枕头为伴。体重从20年底的130斤一度暴涨到快160斤,天天晚上望着微信运动的个位数的步数陷入沉思。。。几乎晚上就没正常睡过觉,熬夜到3,4点,却一点也没有任何睡意,感觉我像是一滩发臭腐烂的一滩臭肉。。。

年初辞了职,在家休息了1月开始准备考研,可笑的是只有政治能勉强看下去。。。

3月折腾着买了个nas,折腾了很久,很好玩,哈哈哈哈哈哈,我很享受折腾的乐趣

4月底去了趟兰州提档案,也算是转了转。

5月在酒泉报了驾校,科一科二很顺利,一次就过了,但是科三考了2次都没过,但是有点想家就先回敦煌的家了。

8月回到家开始躺尸

12月给自己找了点事情做,不至于发霉腐烂...也算让自己开始变得忙碌起来吧~

大体就是这样,总之糟糕的一年过去了,未来会是怎么样?我不知道,或许会更糟吧。但是那又会怎么样呢?

[Nas折腾记]黑群晖

作者 独孤伶俜
2021年4月6日 01:31

前段时间就一直一直在下载电影看,当时手里有一个500G和一个1T的笔记本机械硬盘,勉强够用吧。后来电影下满了,就得删一些,在下一些。麻烦的要死,刚好又在家,于是就想自己组个nas玩。说干就干,于是就看了半个多月,最后决定还是入了矿渣“蜜獾超存”,这个机子是6盘位机箱。cpu都是J900,主板可能根据版本不一样会有不同。我买的是最钙的版本,群晖下只认4盘的准系统,同时也不带内存和SSD,350快不包邮,邮费是到付的,快递送过来的时候我付了39元,还是蛮贵的。机子的做工真的不错,挺有分量的。

同时我在京东买入了8T的企业盘,希捷银河新8T那个。。花了我1260元,真的贵。。。由于我是要存电影为主。重要数据我都会离线异地备份的。所以我没有买两块盘做Raid1,打算用8T这一块硬盘单独存电影,另外两块笔记本硬盘组成JBOD用来装一些不是很重要的冷数据。

其实机器买回来我是不打算装黑裙,但是我发现Unraid无法实现我的需求,而且折腾成本相对大一点。最后还是投送黑裙的怀抱,真香啊~~

安装

这里直接参考张大妈阿文菌的教程:https://post.smzdm.com/p/andr83k3/ ,只不过我把他教程中推荐的3617,DSM:6.1.7换成了DS918+, DSM: 6.21, 主要是我想玩一下硬件转码。

DS918安装教程和3617的一毛一样,我这里还是放出阿文菌的教程:https://post.smzdm.com/p/ar0v2on7/

另外,我在屏幕直连的那个画面里加了一句"Hello World!"

Hello World.jpg

数据迁移

由于之前的那两个盘是NTFS格式的,so在群辉上不能直接挂载,google了一下, 把SATA模式改为eSATA就可以让群晖在系统里面识别成外接硬盘,群晖系统外接硬盘是可以挂载出NTFS的。

网上好多教程写的不是很好,我也是翻了好多篇才理解的,我还是觉定要自己写一下。备忘~

首先打开群晖的"存储空间管理员"这个套件,最底下有硬盘信息,把鼠标移到小方块上面可以看到硬盘编号,如下图:

diskInfo.jpg

把你已经使用的硬盘,未使用的硬盘,缓存盘可用插槽的数量加一起的总插槽数用记事本记下来,顺便记一下你要更改的磁盘编号,这里为磁盘2和磁盘4,然后登录ssh(具体方法请Google,很简单,不在赘述),执行sudo vi /etc.defaults/synoinfo.conf,按下回车之后会让你输入密码,你就输入你登陆DSM的密码就行。

找到这个文件的esataportcfginternalportcfg字段的配置,把后面0x后面的东西复制到记事本,我这里分别为esataportcfg="0x0"internalportcfg="0xffff"

用进制转换工具转换为2进制(工具:https://tool.oschina.net/hexconvert),把不足你的总插槽数的前面补0 如图:

HEX

然后从右往左,从右往左开始数数字,从右往左第一个就是1号盘,2号就是2号盘。第一行0代表关闭esata,1代表打开

这里我们要修改的是2和4号盘,所以就是把2号位和4号位的0改为1。

这里注意,两个参数要保证同步修改,2号盘如果打开了eSATA那就得对应把下面的SATA的关闭

修改完成如图:
afterfix

然后用进制转换工具再转会16进制,如图:
ToHEX

最后把这两个16进制的数字替换到刚刚那个文件的esataportcfginternalportcfg字段,修改后为: esataportcfg="0xa"internalportcfg="0xfff5", :wq保存屏退出文件,重新启动群晖,点开File Station即可看到你的硬盘成功以外接的形式被挂载。

当你的为文件被成功转移到新硬盘之后,就可以改回来,然后当成正常硬盘使用。

洗白 + 开启硬件转码

其实是没必要洗白的。因为我就是单纯当个文件共享服务器来玩,但为啥我还要洗白呢,因为我想折腾啊,哈哈哈哈!其次想看看这颗J1900极限是什么性能~

半洗白其实很好搞的,有三种方法~

  1. 淘宝花15大洋买一个现成的SN码
  2. 虚拟DSM
  3. 群晖在线官方的DSM

接下来我一个一个说

首先淘宝买一个,这个没什么好说的,同时这是最保险的办法。能用钱买到的东西就不要折磨自己受罪了~

虚拟DSM,这个以前是在Docker这个套件里面有个DDSM的功能,不过我安装的版本较新,点进Docker里面根本没有DDSM这个功能,后来还是google救了我一命,原来新版本的虚拟DSM这个功能移动到了Virtual Machine Manager这个套件。具体方法我这里说个步骤把,不说具体怎么操作了,这个套件就和你玩VMware一样一样的。

  1. 安装Virtual Machine Manager套件
  2. 映像->新增->从Synology下载Virtual DSM-xxxxx 安装文件->选择存储空间->应用
  3. 虚拟机->新增->Synology Virtual DSM->选择存储空间->选择cpu内存->网络->权限->应用
  4. 进入Virtual DSM之后控制面板里记住SN和MAC地址
  5. 替换到物理机即可半洗白成功
  6. 替换方法请百度,我懒得写了

群晖在线官方的DSM,这个方法我没试过,不过好像网上有人成功过。具体办法就是在https://demo.synology.com/zh-tw/dsm这个网址排队在线体验,进去之后把SN码和MAC地址记下来替换到自己的机器~

jellyfin开启硬件转码

第一步先安装Dockers套件,然后因为Docker HUB服务器在国外导致镜像老是下载失败,所以要先替换国内的docker镜像。

具体方法是,在注册表设置里面编辑第一个,启用注册表镜像然后把"http://hub-mirror.c.163.com"填进去,然后登录ssh终端,输入sudo vi /var/packages/Docker/etc/dockerd.json整理一下,如下图,最后输入命令sudo synoservice --restart pkgctl-Docker重启这个docker套件就可以了。

具体的安装方法请参照https://wp.gxnas.com/4912.htmlhttps://post.smzdm.com/p/a6lnxg3g/,对我要再次感谢阿文菌的教程。

不过这个jellyfin我目前是没啥用,等过段时间分享给群友看吧。

使用Docker重新安装Resilio Sync

为啥要重新安装呢,套件中心的Resilio Sync不好用吗?我来告诉你答案!在J1900这个cpu上确实不!好!用!!!

下载慢不算,还占用资源及其的高cpu能给我占用一半,内存2G随便没

所以就打算搞一下docker版本的Resilio Sync看看表现怎么样

Let·s Go!

在Docker的注册表里面直接下载Resilio/Sync这个镜像,下载完成后点启动,然后在容器里面停止掉这个容器,点编辑,参照下图的配置

SYNC1

SYNC2

SYNC3

完事之后启动容器,点击桌面上的快捷方式就可以了。

当时我发现还是占用奇高。。。算了,索性在不使用的时候关闭容器好了!

更改正确的cpu信息显示

CPUInfo_a

可以看到我的CPU是J1900,但是系统信息里面显示是J3455,天哪我那用得起这么好的CPU呢,决定把他改为正常的J1900。

首先下载https://github.com/FOXBI/ch_cpuinfo里面的2.2.1版本,把tar里面的ch_cpuinfo文件解压出来,上传到群晖的任意目录里面,然后登上SSH,执行此文件,执行方法就是cd到存放此文件的目录sudo ./ch_cpuinfo就可以啦,如果提示没有权限,请执行sudo chmod +x ./ch_cpuinfo

完成之后重启群晖,或者注销在在登陆就行啦

cpuinfo_b

建立软连接到DLNA串流目录中

由于SMB共享必须要输入账号和密码,于是我就想到了群晖的媒体服务器套件,看看能不能建立软连接到/Video文件夹下。

最开始试了 ln -s 和 cp -s 但是ln建立的软连接在我的电视盒子上识别不到,而cp -s建立的硬链接不知为啥又要耗费很多的空间。

还是在无意中试了试 mount --bind命令,哇塞,果然可以,在群晖的文件管理和我的电视盒子上面都可以完美的访问和查看数据~

关于mount --bindln -s的区别,请看这个知乎回答https://www.zhihu.com/question/21535469

接下去只需要编辑/etc/rc.local开机挂载就行啦,例如像我这样。

MountBind

未完待续。。。。

将fork项目和上游项目合并

作者 独孤伶俜
2020年7月27日 01:19

前段时间搞了个pac自动鉴别科学上网的项目,不过这个项目是fork自其他人的项目,原项目更新比较勤快,而我,咳咳,咕咕咕~

so我就要经常和原项目合并,以保持我的项目保持最新,白嫖,嘿嘿嘿。

那么就开始干吧~

首先将fork的项目clone到本地,之前已经在本地要pull一下,一定要保证本地的项目是最新的

然后将源项目添加进remote,名字随便起就好啦。

git remote add updata 原项目地址

之后将项目同步一下

git fetch updata

在之后git merge updata/master要是冲突的话,就先解决合并冲突。

最后git commitgit push orgin master 就行了

之后我会单独写一篇关于解决合并冲突的文章~

MySQL-事务浅谈

作者 独孤伶俜
2020年7月2日 20:01

事务是数据库中DML被执行时开启的一种数据保护机制,事务被用来完成系统的某一个功能,在执行DML语句时,数据库中的数据可能被改变时,数据库系统就会自动开启一个事务。

DML语句是数据库的INSERT、UPDATE、DELETE、SELECT等这些对数据库数据有实质性操作的语句,事务就是围绕DML语句而出现的。

事务最主要的功能是保证数据的安全性和一致性,在开启了事务的DML语句中,执行的时候要么全部成功,要么全部失败,在开始事务后执行DML,数据库会将标记数据标记在内存中,并不会马上将数据写入到硬盘中。

结束一个事务分为commit(提交)和rollback(回滚)。

  • commit表示事务中所有DML语句均执行成功,数据成功成功写入硬盘,
  • rollback表示事务中至少有一条没有成功执行,将会放弃这个之前所有执行过的DML语句的结果,硬盘中的真实数据不会改变。

事务四大特征(ACID)

  • 原子性(A):事务是最小单位,不可再分
  • 一致性(C):事务在所有的DML语句执行的时候,必须保证同时成功或者同时失败
  • 隔离性(I):事务A和事务B之间具有隔离性
  • 持久性(D):是事务的保证,事务终结的标志(内存的数据持久到硬盘文件中)

四大特征之一隔离性

事务之间互相具有一定的隔离性,通俗点说就是能否被互相访问。

隔离性有四种方式

  1. 读未提交:read uncommitted
  2. 读已提交:read committed
  3. 可重复读:repeatable read
  4. 串行化:serializable
  • 读未提交
- 事务A和事务B,事务A在未提交之前就可以被事务B访问到。此时事务B访问到的是`脏数据`
- 事务B访问到的可能是事务A在rollback之前的数据,数据有一定的风险
- 一般的数据库隔离级别都高于`读未提交`
  • 读已提交
- 事物A和事物B,事物A提交的数据,事物B才能读取到
- 这种隔离级别高于读未提交
- 这种级别可以避免“脏数据”
- 这种隔离级别会导致“不可重复读取”
- Oracle默认隔离级别
  • 可重复读
- 事务A和事务B,事务A提交之后的数据,事务B读取不到
- 事务B是可重复读取数据
- 这种隔离级别高于读已提交
- 这种隔离级别可以避免“不可重复读取”,达到可重复读取
- 比如1点和2点读到数据是同一个
- MySQL默认级别
- 虽然可以达到可重复读取,但是会导致“幻像读”
- 此级别下的事务始终保持数据的一致性,幻像读的祸根

可重复读参考

  • 串行化
- 事务A和事务B,事务A在操作数据库时,事务B只能排队等待
- 这种隔离级别很少使用,吞吐量太低,用户体验差
- 这种级别可以避免“幻像读”,每一次读取的都是数据库中真实存在数据,事务A与事务B串行,而不并发

注意

  1. 事务是数据库系统中最小的执行单元。
  2. 事务中包含的DML语句可以是1条或者很多条。
  3. 事务只和DML语句相关,没有DML语句就没有事务,但是DML可以选择不开启事务。
❌
❌