guilded dir drive v4.22.08.04

到现在guilded drive已经来到了第三代,它第一代就是个单纯的管道玩意,第二代加上了临时文件和多线程上传,第三代加上了检验checksum的功能🤔

那么问题来了:有没有可能在不产生临时文件的情况下实现第二代那样的多线程上传功能?🤔

我今天大致折腾了下,它是可以的,但需要一套相对复杂又相对比第二代简单的方法:

  • 首先,和前几代一样,需要将一个每分块大小*线程数这么大的数据流分片用split --filter传送进临时脚本1🤔

  • 和第二代不同,在临时脚本1里,接收的数据流并没有暂存到某个文件里,而是接着用split --filter传送进临时脚本2,此时大小被设置为上述的每分块大小🤔

  • 而临时脚本2并不是负责上传的脚本,它只不过将数据流照原样传送进临时脚本3,但在之后加了一个&,所以它是临时脚本3实现多线程上传的关键🤔

  • 临时脚本3才是真正的上传脚本🤔

和第二代一样,这一代多线程上传脚本也需要在上传完成后标记上传的部分属于哪一个线程🤔但考虑到这么多的split --filter的subshell特性,我最后决定将partno这一玩意用文件的形式传送进临时脚本3:

  • 在临时脚本1的开始,将0写入/tmp/counter这个文件🤔

  • 然后在临时脚本2的开始,从这个文件里读出值,将其加1,然后再次写入这个文件,再将加了之后的值传送进临时脚本3🤔

  • 这样,临时脚本3接收到的partno参数肯定是正确的partno参数,证明过程略(🤔

  • 在临时脚本1的split后面加上sort这一坨玩意,将多线程上传的结果进行排序和去除partno🤔

通过这种方式,我们再也不用什么head什么tail来切割临时文件了,整个代码的可读性直接提升了114514倍(迫真🤔

不过我好奇代码写成这样,它还能做流式上传不?比如我现在开了16个线程,每个线程200MB分片,这玩意是要占用3.2GB内存空间,还是不占用?🤔如果curl被我配置成了自动重试,那么当它重试时,是从什么地方读取要上传的内容呢?还是curl会把这部分数据流缓存进它的内存空间?🤔

还有一个问题:既然它现在是流式(迫真)上传了,那么checksum和上传基本上是没什么可能兼得了(恼🤔以前我们可以通过将临时文件读两遍来同时做checksum和上传,现在怎么搞,把管道也拆成两份?等等,stdout这玩意支持塞进两个程序里吗🤔

thonkeqing

另外我之前发现某个片子下载后tar提示数据流有错误,排查发现有一个包完全没有上传上来🤔而且我这次测试脚本的时候也发生了一次这种现象🤔

考虑到我上个月初可是拿这玩意备份了所有的vultr快照,现在好了,我慌的一批(迫真🤔

那么在流式上传过程中,有没有办法像传统读文件上传那样设置重试功能?🤔我的意思是除了在curl里面加重试之外的方法,比如经典检查guilded返回值外层套while法🤔cat -能重复cat很多遍吗?🤔

实测cat -并不能重复很多遍,只有第一遍能接收塞进脚本里的数据流,后面都是空的🤔看来它的确是流式传输啊(确信🤔

thonk.22.08.04

今天将storage box拿出来用🤔刚好hax站长要砍掉它的hax母鸡,要我们在810之前完成备份,那么我就用storage box备份一波🤔

看来全球经济是真的⑧行了,我们可以大致算下,hetzner的德国母鸡最便宜可以到37欧元一个月(那个34欧元的是芬兰的,但hax这次被砍的全是德国母鸡),砍掉15台,那就是一个月节省555欧元的运营成本(大嘘🤔这点钱说难听点也就是欧洲壬半周的工资,结果hax站长就绷不住了,看来欧洲意识形态魔怔壬跟风制裁俄罗斯是真的自作自受了(吴慈悲🤔这现在还是小事,我倒想看它们今年冬天的时候怎么办(🤔

首先,它当然是有ipv6的,而且至少hax的机子和它在同一个机房,ping基本上只有半毫秒🤔但woiden貌似不是,storage box和德国节点ping十几毫秒,而和波兰节点ping到了二十几毫秒🤔而和我的大量存在的美国vps之间,它达到了150毫秒🤔

当然,备份又不是直播和在线游戏,不需要ping多低,我们只看传输速度🤔话说我从来没做过当前系统dd,以前dd时我至少得启动另外一个系统🤔所以我根本不清楚备份档到时候能不能用,但我目前也没有别的选择了,毕竟hax并没有什么选项让我挂载iso啥的(恼🤔

但为啥win系统可以对当前系统进行备份,而不用担心当前系统的文件写入会导致备份档出现不一致问题?🤔因为win系统各种备份软件其实备份的不是硬盘本身,而是硬盘的一份卷影副本🤔这是ntfs的高级特性之一,它可以将当前分区的状态便乘一个临时性的只读快照,接下来对这个分区写入什么都不影响这个快照(确信🤔

linux有这种文件系统吗?我记得某个文件系统可以有这种功能,但它反正既不是ext4也不是xfs🤔

但无论如何,备份开始了,我按照它的说明,管道左边dd,管道右边ssh然后搞了一个dd of=wiebitte114514.img,输入密码后便开始备份了,速度还行,15MB/s🤔同时开启了剩下两台小鸡,三个可以并行15MB/s🤔它说我可以同时保持10个连接,那么150MB/s应该是可以跑出来的(确信🤔

接下来既然hax都备份了,要不要顺便把woiden也备份了?🤔然后我发现woiden这坑爹玩意,挂载的rootfs居然不是常见的/dev/sda之类的,而是/dev/loop🤔而如果你对一个loop设备文件尝试dd的话,它会无限循环(全恼🤔所以woiden我只能用tar来迫真备份了🤔

但用tar的话,这玩意恢复时就毫无意义了,首先/proc虚拟文件系统它压根就不是文件,备份和恢复都没啥意义,同理/dev🤔其次它听起来几乎和win系统里将C盘根目录打包成rar再将其解压到C盘根目录一样扯淡🤔我不清楚linux会发生什么,但在win系统里这么做,只会收到一大堆系统文件不能覆盖的警告(全恼🤔

thonkeqing

接下来我们搞一个好玩的,它这storage box不是支持checksum吗,要么测试下它的checksum性能?🤔

由于它本身不支持time命令,我们只能在另外一台机子上搞time,然后用ssh给它输入sha512sum🤔输入密码的时间基本上忽略不计,但它也支持密钥登录,提前将公钥导入进去,执行这段命令的时候就不需要卡在输密码环节了(确信🤔

它输出的时候由于某种申必原因,它是一次性吐出来的,而非像常见linux命令那样每次吐出一行🤔最后测下来15GB文件花了83.015秒,平均速度185.02MB/s🤔还行,尽管它的确不如那些vps的block storage,但这段checksum也没用我们自己的计算资源搞啊🤔这部分甚至可以设置成异步,我不清楚bash支不支持异步这种高级编程概念,但node.js肯定支持(确信🤔

luminethonk

接下来我还想看下woiden和hax的几台小鸡都用的什么cpu🤔hax的三台都是amd的r5 3600,和hetzner的最低配置母鸡基本上完全一致(确信🤔但woiden就有意思了,一号机和二号机都是波兰节点,但也是r5 3600🤔三号机是德国节点,却是个非常垃圾的至强d1540🤔

这就非常有意思了,已知hetzner压根就没有波兰母鸡,它的母鸡只有德国和芬兰🤔所以,我发现woiden基本上没有在用hetzner,至少我有的这几台机子如此🤔woiden也许有在用hetzner的母鸡(比如上次由于端口扫描差点被橄榄的那台),但那台不是我的小鸡用的🤔

所以这就意味着woiden还用了另外一家的母鸡,它是比hetzner便宜吗?还是有别的好处🤔这就非常有意思了,我想去了解下🤔

wiebitte

破案了,我现在基本上可以确定,woiden的波兰节点用的就是mevspace的波兰母鸡🤔配置和hetzner差不太多,网络也和hetzner一毛一样,价格是45美元一个月🤔

当然那是let上面的帖子,现在打开它的官网看,那个配置是39.5欧元一个月🤔奇怪,它的母鸡页面链接是点过的(紫色),我以前搜过这家?可能那时我想找个美国的母鸡,所以并没有对它产生太大兴趣🤔

它还有存储节点,也是39.5欧元,但硬盘给了两个4TB的🤔尽管4TB硬盘仍然是狗都不用的垃圾玩意,但这至少比hetzner的2TB硬盘良心多了(迫真🤔等等,它不支持加硬盘?那当我没说🤔

其实我现在觉得大盘鸡的硬盘会比母鸡的硬盘好使很多🤔比如同样是2TB硬盘,大盘鸡能在闲时跑出300MB/s,母鸡基本上最多只有不到150MB/s(恼🤔而在数据安全方面,大盘鸡基本上用了raid10或者raid01,而母鸡就算用了raid1,它也架不住这不知哪一年产的破硬盘同时挂啊(全恼🤔然后说到我目前对大硬盘机子唯一的用途,挂pt/bt,那大盘鸡当然比母鸡不知高到哪去了(确信🤔挂pt需要用到六核cpu和64GB内存吗?这些东西能加速discord drive的上传速度吗?我看未必🤔

bruhfei

草,我某个垃圾大盘鸡和storage box之间搞scp的速度慢的批爆,都到了KB级别(恼🤔看来,我只能用webdav来下了,它在设置好http基础认证后完全可以128线程撸,就这样它勉强上了22MB/s🤔

另外一台大盘鸡多线程能跑80MB/s,但wget单线程居然只有不到1MB/s?🤔我现在有点担心它挂载到vps上之后的io性能了(恼🤔

bruhfei.22.08.03

草,这都过去快24个小时了(准确点来说是21个小时),那两台机子才备份了370GB/400GB,wiebitte?🤔而且目测它们都没有压缩出什么东西,是xfs文件系统的特性,还是我那申必lvm配置的问题?导致它最后那些空闲空间没有被压缩掉?🤔反正无论如何,我的评价是:不如不管道gzip(大嘘🤔

与此同时,我的cuties impact大号已经练出了两队双风永冻队,可真是太草了,因为我现在刚好有成型的两个风dps风元素精通,而且还有甘雨/ayato和yelan chan/ayaka两组永冻组合🤔如果我愿意打深渊的话,我可以用两组双风永冻队雷普9和10,11和12就算了(恼🤔

hetzner thonk

由于待在hax中文群,我得知hax/woiden使用的是一家叫做hetzner的欧洲主机商的母鸡🤔hax的站长发了一个通知,有壬间之屑用woiden的机子做内网端口扫描,导致他们的某台德国母鸡被hetzner封了两周🤔所以今天我也跟风注册了个hetzner的号🤔

它的母鸡的确挺便宜的,比如基础款,6核cpu,64GB内存,两块512GB的nvme固态或者两块2TB的hdd,才34欧元一个月🤔考虑到hax/woiden的配置是每台小鸡512MB内存、7GB或者5GB硬盘,这个母鸡跑100台kvm小鸡都没问题,每台小鸡的成本大概是0.34欧元(确信🤔

但这个配置(在我看来)坑爹的地方是只能一次性买两块hdd,没法改成一块大的,而对它的其他配置来说也是如此🤔更别说2TB的垃圾盘性能有多烂,我是非常清楚的,因为我有好几块(🤔而且它ip给得非常少,只有一个ipv4,不像别的母鸡动不动5个起,加ip还要加一笔极其离谱的初装费(恼🤔还有内存默认居然不是ecc的,ecc内存还要加5欧元,它这套坑爹配置真的不是用来清某些过时硬件的库存的吗(恼🤔尽管我知道数据中心硬件都是被艹了114514次的玩意,但我可以放心地拿2TB垃圾盘做离线存储并不代表我可以放心地将其接着挂在数据中心里7*24在线啊(🤔

既然它默认配置那么拉,那么加硬盘呢?加硬盘的话,它只有四个盘位,最多只能上三块hdd,最后一块盘位只能加nvme,连sata固态都加不了(恼🤔再说了相同容量的sata固态比nvme固态居然要贵,让壬很难不怀疑它那nvme固态是不是什么chia挖过矿的qlc垃圾(全恼🤔而且更生草的是,对它的默认nvme母鸡加两块2TB的机械硬盘算下来是52欧元,而对它的默认hdd母鸡加两块512GB的nvme固态算下来是46欧元,考虑到它们现在配置基本上完全一样了,wiebitte?🤔

它稍微高级一点的配置稍微正常了点,至少硬盘是两块8TB的了,内存是ecc了,但此时的价格也到了54欧元,调教成我最喜欢(大嘘)的nvme系统盘+sata数据盘配置就60欧元了🤔而且上面说的配置问题仍然存在,相同配置的nvme母鸡加两块6TB硬盘是84欧元,相同配置(大嘘)的hdd母鸡加两块1TB的nvme固态是74欧元,什么大脑降级定价(恼🤔

或者,去买它的专门用来搞存储的母鸡啊,4块16TB硬盘,74欧元,不支持加nvme系统盘(话说我要么问下他们把其中一块机械硬盘换成相同价钱的sata固态吼不吼啊,就说我要搞ssd cache),而且还要99欧元的初装费,就离谱,而且这个空间我肯定用不完,我本地都没有64TB🤔话说我要是有64TB的seedbox,我是不是就可以彻底征服任意pt啊(吴慈悲🤔还是我需要换家有10Gbps无限流量的母鸡啊(🤔

storage box

所以至少今天我也对它那些母鸡没啥兴趣,哪怕它还有便宜机子拍卖或者说捡漏,最便宜的能有30欧元还是26欧元来着🤔我这几天统计了下,it方面的每月固定支出高达550,我肯定没什么想法买个母鸡,再说我现在用dedicated server干啥,我没啥可干的🤔

它还有卖小鸡的,小鸡配置还行,2GB/20GB,只要3.49欧元,稍微加点钱还能搞一个cpu和硬盘翻倍的配置,换算成美元也能将vultr按在地上雷普(确信🤔除此之外它还有一个神奇的玩意叫做storage box,顾名思义就是共享的文件服务器,可以用别的vps和它连接,而且不像各种vps商提供的block storage,它并不限制用什么vps连,也许可以用它把几台不同位置不同厂家的vps串起来用?🤔

我觉得这玩意也许可以买一个玩玩,所以我最后注册了个号,然后发现它居然要验证身份🤔草,看来我只能再注册一个号了,然后由于我没有挂代理,解锁了另外一个选项:预充20欧元🤔

这个我还是比较熟悉的,如果钞能力能解决很多事的话,那就用钞能力解决,再说了20欧元也就不到140块钱,这算个什么事(迫真🤔

而现在既然我已经充了20欧元进去,不开它几个月的storage box实在是说不过去,这玩意1TB只要2.9欧元,够开至少半年了,准确点说是6.8个月🤔就是它不清楚为啥只有1TB、5TB和10TB这几个选项,就是没一个2TB或者3TB,我感觉1TB有点少,5TB又有点过多🤔它的小鸡我就免了,除非vultr彻底橄榄它的某个旧套餐,导致我不得不再迁移一次本站(恼🤔

买后需要等上几分钟,直到它发来邮件通知这玩意开通了🤔然后去它的一个叫做robot的网站管理,它的vps和母鸡还有其他玩意貌似有不同的管理后台🤔

在robot里面可以开启它的各种文件服务,比如开启samba服务后理论上来说就可以在win系统里像打开局域网共享文件夹一样打开了,开启webdav后就可以挂载到某个盘符了,尽管这两个我都没有在本机挂载成功过(恼🤔samba也可以挂载到linux上面,尽管我非常奇怪它为什么没有提供nfs服务🤔

ssh就更不用说了,顺便一提它有两个ssh服务,22端口只提供sftp,23端口提供shell access,但这个shell access并没有提供跑discord drive等东西的能力,甚至不支持管道和重定向,它最多只支持些文件操作,常见checksum操作,和使用dd来读写文件的能力,没错,它既没有cat,也没有重定向,所以只能用dd🤔但它能使用ssh大法(甚至有官方教程)还是挺令我震惊的,这差不多意味着它完全可以在不需要任何辅助vps的情况下备份恢复别的vps了,实在是牛批🤔

这玩意在存储界可以说是没有对手了,首先单TB价格它居然比backblaze还要便宜,而后者是对象存储,基本上只有http下载文件的能力,挂载它用倒也不是不行,但文件api的费用会很快超过存储费用🤔而和各种大盘鸡以及vps内置的block storage相比,frantech的block storage是5美元/TB,而且它还经常性没货🤔letbox的block storage相对便宜些,3美元1TB,5美元2TB,但它的小鸡不是无限流量的,而且我感觉它的网络其实也不怎么样(当然有github actions之后,我觉得几乎所有vps的网络都不怎么样,它们怎么可能和微软的数据中心比网络🤔但它,1TB只要3欧元,5TB只要10欧元,而使用它(甚至备份vps)绝大多数情况下居然都用不着一台额外vps🤔甚至对象存储的应用之一,提供文件下载服务,也用不着vps,直接用cloudflare workers撸就vans了,它能自动完成登录webdav获取文件,甚至验证点用户身份啥的(确信🤔

bruh.22.08.02

突然想把我的某两台上古大盘鸡再备份一遍🤔撸好脚本,随便跑一个livecd,设置好ssh开干,然后发现它不仅tar+加密慢到个位数MB/s,检查checksum时居然能卡到掉线🤔草,我一个月150就在维持这两个寄吧?🤔

当然也有可能是因为它跑图形界面ubuntu live cd占用了大量内存🤔看来我恐怕得换我经常用的system rescue cd了,而且还不能启动图形模式🤔这次它倒是不卡了,但上传时的速度慢得离谱,50KB/s?wiebitte?🤔

更离谱的是我用主力大盘鸡上传guilded,它也是这个速度🤔这就极其离谱了,看来guilded drive的好时代,这么快就结束了?🤔

我估摸着它要么对那个机房的ip段限速了,要么对某种请求头限速了,反正它肯定设置了限速🤔比如我用浏览器版guilded上传脚本,就能正常上传,而且也没有检测到限速🤔所以,恐怕那些脚本都得改一改了(全恼🤔

thonkeqing

最后排查下来,我只能说它这限速基本上只算意外,很快它三台机子都恢复了正常速度,但保险起见,我还是给curl前面加了一大堆请求头,让它看上去更像是从浏览器上传的(大嘘🤔

不过另外一方面我也从来没有在大盘鸡上跑过我前几天写的多线程guilded脚本🤔这次跑了下,效果非常爽,四个线程就足以用完我的1Gbps带宽🤔下次我可以考虑改成两个线程🤔

无论如何,那两台旧大盘鸡已经开始了备份,考虑到它不到10MB/s的垃圾速度,没个两天两夜估计它搞不完(悲🤔我也许对其进行了gzip压缩,应该能消灭掉它们没占用的大量磁盘空间,但其中一台大盘鸡的文件系统现在处于损坏状态,那我就没啥好办法了(🤔反正单盘xfs+lvm就是屑就是了,我实在想不出来当时怎么装的那几台机子(全恼🤔

bruhfei

一早上加下午过去了,它居然只备份了262GB和292GB?🤔而且我记得那两个盘114514天之前就被我腾差不多空了啊,它是怎么压缩到超过250GB的(恼🤔

mona impact 4th(大嘘

今天万叶池子就要结束了,我的某个垃圾小号还是没抽到(悲🤔与此同时,我的稻妻amber小号试图再捞一次稻妻砂糖酱,结果金光,mona chan🤔问题是我这个号已经有yelan chan了(恼🤔

这可实在是太草了,而且此时离万叶大概也只有不到40发🤔所以,看在mona chan kawaii的份上,我就只能笑纳了(🤔

不过这个号的流浪大地貌似只有一套,我要是给mona chan用的话,甘雨就得再搞一个套了🤔还好绝大多数时间我用不上甘雨(确信🤔

luminethonk

今天决定买个12V 10A电源来接某台星际X牛的垃圾nas,我非常怀疑上次没启动成功是因为12V电源太拉🤔当然也有可能是因为我没给它插一个msata固态(🤔

wiebitte.22.08.01

打了一晚上cuties impact,然后接着逛les🤔发现了一个英国的nat vps,最低配256MB内存+50GB硬盘,价格是三个月3英镑🤔它还有些高配,什么2GB内存+200GB硬盘,三个月7英镑,听起来还行(迫真🤔话说我上次按照三个月来付款还是十年甚至⑨年前用godaddy迫真虚拟主机的时候,那时应该是三个月50块钱还是60块钱来着,反正它不是说无限存储吗,最后我往里面塞了将近400GB的rutracker无损音乐,然后吃了一发警告信🤔还好那时我有存储vps,所以将那些无损音乐光速导出到存储vps里面,然后润了(恼🤔其实那玩意表面上是个虚拟主机,但它却有ssh access,我寻思跑个discord drive或者guilded drive应该也没什么问题,可惜那时这两样东西都没有(恼🤔

另外这是英国vps对吧?🤔いいよ!来いよ!把stacy blackmon的迫真个壬信息填进它的表单里!表单里!!(错乱🤔来,我们复习(迫真)一遍:3什么什么house,7什么什么close,harrow,harrow,uk,插入某六位申必邮编🤔

然后,它就被脑瘫maxmind系统橄榄了🤔不错,我其实也不是很需要什么256MB内存50GB硬盘的垃圾vps,还是那句话,恁寄吧谁啊(全恼🤔

所以我可能需要找另外一个ipv6或者nat车玩,

  • 首先它配置至少要比hax/woiden高,也就是内存大于或等于512MB,硬盘大于5GB🤔

  • 价格在每月1美元以内,当然年付3美元啥的倒也不是不行,但年付12美元是肯定不行的🤔

  • 如果是存储vps这种类型的就更好了🤔

找不到也没关系,反正这玩意就是个玩具🤔

thonk

现在看来,“存储vps”是一个极其充满误导性的术语,毕竟现在都2022年了,不是2012年,如果有一堆数据真的只需要存储,乃至简单的下载(需求)的话,甚至都用不上什么vps(确信🤔

比如,只需要拥有度盘账号就能存储一大堆数据(迫真🤔当然,这是所谓的“仅存储”需求,更进阶的存储+简单访问需求,有从discord drive/guilded drive到backblaze/amazon/cloudflare(没错,cloudflare也有s3风格的文件存储服务了,不过价格是backblaze的整整三倍,反正我没兴趣)的一系列免费和收费玩意可以使用🤔而往这些东西里面塞数据,甚至也用不着一台vps,比如github actions肯定可以通过rclone搞这个,再早一些我甚至能在ibm cloud里面跑rclone将rule34或者pixiv拖的图片塞进backblaze,如果ibm cloud的垃圾容器都可以的话github actions肯定更加可以(确信🤔

所以我觉得这些存储vps以后干脆回归本质(迫真),叫大容量机械硬盘vps或者简称大盘鸡得了🤔那么现在还剩什么数据处理的需求非大盘鸡不可了?🤔我想来想去只能想出一个,而且也是我那两台2TB大盘鸡目前几乎唯一的用途:处理bt/pt种子🤔

原因也很简单,很多bt/pt种子都以体积大到离谱而出名,比如我去年至少下过好几个大型数据泄露系列,每个都有丧心病狂的700GB到1.1TB那么多,它们不可能或者说很难被分解到什么几十台github actions机子里(恼🤔更别说和十几年前迅雷离线仍然能用时一样,有些种子又大又得挂好几个月才能下完,挂超过一年都有可能(悲🤔而我现在又是三个pt站的会员,pt需要长期做一些体积大到离谱的种子,至少目前我没有实现本地做种,而且未来至少一年都不打算,所以现在还是全靠vps做种,而且每次做完种我还要把下下来的种子转存各种drive,反正每次都是好几个TB的流量就是了(恼🤔

也只有在这种情况下,我需要一些硬盘容量大而且最好无限流量(再不济也得是硬盘空间的10到15倍)的机子(悲🤔而且它最好是小容量ssd+大容量机械硬盘的组合🤔开启checksum校验功能的一代discord drive和多线程tar/dd流式上传drive都需要临时空间,这部分空间肯定最好也是ssd🤔

反正至少我目前的主力vps都满足这几个条件,不满足的我基本上逐步开始备份数据并且润了🤔对了,在guilded drive开发出流式上传之前,备份vps出于显而易见的原因也得用到大盘鸡,备份到大盘鸡之后再转存discord drive或者别处(🤔我曾经干过用2TB大盘鸡备份500GB大盘鸡这种坑爹玩意,还连续干了两次🤔我寻思哪天它们能彻底下线,这样我就不用每个月掏30加元续费了(恼🤔话说对着它们挂guilded drive,需要挂多长时间🤔

至于做站用vps,那是另外一码事了,我五六年前可能还会用大盘鸡做站,但现在看来,一个网站的静态资源可以全部外包到别处,无论是像discord drive、guilded drive这样的广义图床(确信)站,backblaze这样的对象存储(甚至用自己的子域名来提供入口),还是像github pages或者cloudflare pages这样的连网站本身都完全静态化了的玩意🤔但我对纯静态blog是比较抵触的,因为它首先没有全站检索功能(也许google自定义搜索可以用来做这个,但像我这样经常每篇文章修改114514次的话,我估计google哪怕收录了,搜索结果的准确性也会打一个不小的折扣),其次修改起来也极其不方便🤔如果是做wp站的话,vps要求其实不高,只要硬盘全ssd就vans了,存储空间都不做什么要求,这台机子也只不过512MB内存10GB硬盘而已,在设置好swap之后它几个月都不会崩一次🤔访问量超过十万一天肯定会是另外一种情况,但我寻思应该只需要将核心拉到两个、内存拉到2GB乃至4GB就vans了(确信🤔百万的话建议直接转静态,wp也有全静态页面插件(吴慈悲🤔

thonkeqing

我又试了一下all in one wp migration,就是那个免费版本只能下载到本地再上传的🤔由于我改了wp参数,现在上传10GB备份档都能随便上传,上传完成后不到一分钟就完成了恢复🤔

另外一方面,还好这个站目前我没有成功套上cloudflare,不然的话,它根本不可能完成恢复,因为cloudflare有100MB的上传限制(恼🤔

所以,另外一个插件是怎么做到半小时才完成恢复的?我暂且蒙古(🤔

pikapods支持随时改配置,所以我完全可以在恢复的时候改成最大配置,恢复完了改回去,或者我也完全可以不改配置,反正现在这边插件根本用不了几分钟(确信🤔

又尝试用最低配置跑了下全程,源站备份花了54秒,下载一分钟多一点,上传三分钟半,恢复51秒,总计六分钟半,这个时间还行(确信🤔

luminethonk.22.07.31

昨天除了撸出了多线程guilded drive外,我还把那些将近1TB的种子按照传统discord drive搞法打包成了分卷rar,做了checksum,然后用一代脚本上传到了discord drive上🤔这部分玩意自然没个十个甚至⑨个小时是传不完的(恼🤔

所以,接下来我们做什么?要不把discord drive也便乘流式文件夹上传得了(🤔只不过这个脚本应该比单文件discord drive简单多了,它只会生成一个链接列表文件,下载时只需要按照这个列表来curl然后流式tar解包就vans了(确信🤔最多我只需要加一个单独的checksum文件,或者我也可以将这两部分放进同一个文件里,用某个符号隔开(确信🤔

但discord drive和guilded drive不同之处在于,除了单文件大小外,discord drive是可以有文件名信息的,这部分信息我填什么?🤔

AYAYA

在11451.4秒的瞎鸡巴折腾后,这玩意也被我撸出来了,而且我还把它移植到了cygwin最小环境里🤔最后分片文件名决定用分片的checksum,这样我就不用在列表文件里再加一个字段记录checksum了🤔而链接列表文件上传时文件名是最初扔进tar的文件夹名,外加日期,搞定🤔

其实这个脚本比单文件discord drive简单多了,因为它是基于多线程guilded目录上传脚本魔改的,而非任何discord drive脚本🤔而且由于这类目录上传脚本,就像我上一篇里说明的原理那样,它们是tar制作好某个大小的包,才会去调用subshell脚本来单线程或者多线程上传,我也完全用不着写什么多线程调度,因为本来就没什么东西需要调度,每次生成的小段数据流肯定能被所有线程一次性上传完毕🤔那么也就没有一大堆临时文件,它基本上只有两个临时文件,一个是这一部分数据流的暂存文件,一个暂存链接列表,没了🤔

不过这个时候,那个cygwin最小环境是不是应该改名discorddrive了?因为它不再只有singlefilediscorddrive了🤔管它呢,我可不想改一大堆脚本(恼🤔

接下来我还需要写一个对应的下载脚本🤔基本上拿guilded目录下载脚本魔改一顿就vans了,无非是由于discord drive不像guilded drive那样可以直接下,需要写一个不用代理的版本和用代理的版本而已🤔什么?guilded也有两个版本?那没事了(确信🤔

话说为啥我有三个guilded下载脚本?🤔原来第一个脚本是几天前搭配powershell用的,我当时发现powershell的管道有问题,导致解压速度慢的批爆,所以最后放弃了纯powershell,转而搞半powershell半bash,那玩意就是当时的产物🤔而某种程度上来说我往guilded drive里面加了114514个新内容,考虑到向后兼容,那玩意被保留了起来(确信🤔

但无论如何,这四天收获还是挺大的,从尝试powershell化bash脚本(然后几乎失败)开始,到最后我把几乎所有的discord antics和guilded antics都便乘了批处理版本(迫真),考虑到这个月一开始我就在研究guilded antics,可以说是最好的结束这个月的方式了(大嘘🤔

pikapods

撸完discord drive(现在是不是该叫第三代了?)逛某个叫做lowendspirit的vps垃圾佬论坛(lowendtalk据说卖给某个申必金主了,所以这个新论坛是上个垃圾佬论坛的精神续作),想在里面找个ipv6 vps玩玩🤔它有一家1TB的存储vps,两年48美元,问题是只给了一个月4TB流量,wiebitte?🤔以我玩存储vps的经验,如果它的流量没有硬盘大小的10倍的话,那么它最后只能放着吃灰🤔拿来挂pt都不怎么行,我当年挂u2的时候一个月随便用掉30TB流量🤔

然后我发现了一个叫pikapods的玩意,它是个怎么说呢,容器服务,但不是那种用docker hub上的镜像生成容器的服务,而是有它自己的容器仓库🤔比如它有wordpress容器,开启之后还能搞一个二级域名,然后用cname来绑自己的域名,但我没尝试成功过(半恼🤔

但我要说的是,现在它每个注册账号能白嫖5美元,不用绑信用卡啥的,直接注册🤔按照它目前的收费,撸一个wp容器只要1.64美元一个月,拥有1/4核的u,512MB内存和10GB存储,反正比我现在用的那个便宜多了(确信🤔这要是白嫖的话,可以嫖三个月,而且和域名不一样,到期了直接导出wp所有玩意,然后再开个账号,导入就vans了(确信🤔

fun fakt:我试图将它的资源分配拉到我的存储vps那么多的级别,也就是两个核心、2GB内存和1TB存储,收费11.41美元🤔有意思,这价格和我目前用的存储vps相比有没有可比性暂且不提,它的硬盘114514%是ssd,1TB的ssd可实在是太牛批了,除了不能命令行跑discord drive之外🤔

所以我目前暂时开了一个wp容器,登上去感觉还行,只需要填一个用户名和密码就能完成设置,装md插件也能随便装🤔装了另外一个md插件,发现它的在线编辑器仍然能被thonk表情卡住,这就非常尴尬了🤔

试了下wp自带的导出和导入,基本上能导入所有文章和相关metadata,除了文章的内容不是md格式,而是html🤔草,那这不导了个寂寞🤔

thonkeqing

不过如果是wp的话,其实可以通过装插件来备份和恢复全站,不仅包括文章啥的,整个数据库和整个webroot(包括插件和主题)都能包括在内🤔

我试了两个这种插件,其中一个叫做什么all in one wp migration的,只能备份不能压缩,而且只能浏览器下载和上传,我尝试(往那个容器里)上传备份档时遇到了上传限制(恼🤔但另外一个叫做backup migration的插件不仅能备份和压缩,还能用网站自己的http服务器提供一个链接,在目标站也装这个插件,然后输入这个链接,就能从源站下载备份档并开始恢复🤔

它这个恢复过程貌似有点慢的离谱,可能是因为它只有1/4个u⑧🤔我要不重新开一个核心数和内存大的,然后看它支不支持中途缩配置🤔

barbruh

草,换了台双核8GB的容器(它的白嫖账号能开的最大容器)10分钟了,它才恢复了个66%?wiebitte?🤔实在是难绷🤔我记得这玩意只有1/4核时也能随便打开和编辑页面啊🤔不过这备份档的wp_posts有十万甚至⑨万行可还行,我无端猜测用php来恢复这么多行数据库项可能也的确没有mysql命令行乃至直接dd镜像快就是了(确信🤔

看来,搞不好这破容器的确不太适合跑wp这种上古webapp,考虑到如果只是想用md,而且外链啥的全部挂在了discord drive或者guilded drive上,是不是可以考虑一些比较轻量级的webapp?🤔但它的blog分类webapp真的只有一个wp,别的玩意也许支持md,也许轻量级,但它们不是blog(恼🤔

bruhfei

在长达20分钟的恢复过程中,这玩意居然中途出错了,原因是内存空间耗尽,而且更生草的是它居然只给wp分配了64MB内存🤔这简直比某带学的jsp教务系统还要傻逼,什么脑瘫配置(全恼🤔

我用sftp登上去一看,它有一个upload.ini文件,可以配置占用内存和运行时间啥的,都往大里改,然后重启下容器,再跑一遍恢复🤔大约半个小时后,这次终于恢复完成了,再次刷新后它彻底便乘了源站🤔除了固定链接那里需要重新设置下,然后点一次保存,不然固定链接就是没法正常运作,wp老毛病了(半恼🤔

这么说吧,这玩意尽管作为白嫖资源貌似没什么github actions(只能跑6小时)或者hax/woiden(需要每周续一次)好玩,毕竟它连个ssh access都没有,但拿它做站的话实在是最好不过了,一次可以撸三个月(确信🤔三个月后它有没有倒闭还是个问题呢(🤔

thonkeqing.22.07.30

这几天bash脚本批处理化(迫真)的antics还在继续,guilded上传脚本也被我魔改好了🤔

但它现在至少存在两个问题:

  • 上传速度实在是太慢了,哪怕梯子加速后还是⑧行🤔毕竟这玩意是流式上传的,所以至少目前,它只能搞成单线程,我这边加上梯子最高也只有3MB/s,反正比discord drive差远了(悲🤔

  • 由于路径转换的问题,尤其是涉及到win到linux的转换,输进tar命令的路径都便乘了绝对路径🤔但tar的话,在我知道如何进一步设置前,如果输进去了绝对路径,它会把这一大坨路径除去根目录的/都保存起来的,到时候解压的时候也全部解压出来🤔而我更想达到的效果是只保存那个目录本身🤔到此解决方案是要么看tar有没有啥设置搞这个,要么cd到这个绝对路径的上一层目录,然后在那里tar那个目录,这样tar记录下来的目录结构就是我要的了(确信🤔

但这么搞可能会产生新的问题,tar之后split还需要在一个subshell里执行上传的脚本,那个脚本的当前目录会便乘什么?🤔如果它会便乘比如我们要处理的目录相关的玩意的话,那么上一个脚本里的当前目录这个参数,我们是不是要给它传进去?🤔

thonk

另外,我觉得用guilded drive来大规模保存之前下的将近1TB的种子,可能是一个好主意🤔因为种子自然是一个种子下载出一个目录(有时候种子下载出来的只有一个文件,但我在的pt强制要求一个种子必须建立一个目录),而guilded流式上传脚本刚好可以将一个目录便乘一个guilded drive链接,所以一个种子就便乘了一个链接,到时候下载时也是一个链接便乘了一个种子对应的目录,完美🤔

而discord drive就没那么方便了,对于旧discord drive来说,我还得对每一个目录手动rar,手动验checksum,还要手动上传,尽管我当时处理u2的时候的确写了一个半自动化玩意,但它还是麻烦🤔单文件discord drive?它只能拆分单文件,我是不是还得将一个种子对应的目录手动压缩成单个rar文件?(恼🤔

而guilded drive就没那么多麻烦,直接对着一个目录写一个for循环,将每一个子目录塞进脚本撸就vans了(确信🤔

现在已经搞了好几个小时了,平均下来20MB/s,一分钟1.2GB,基本上和旧discord drive的1GB到1.5GB一分钟持平了(确信🤔当然,旧discord drive可是有验证每个包checksum的功能的,不然50MB/s都能随便上🤔

至于guilded drive生成的链接没有任何信息这一点,,,其实我每次处理前将ls出来的目录列表贴在discord频道里就vans了,由于for循环肯定是顺序执行的,贴出来的目录顺序肯定和生成的guilded drive链接顺序是完全一样的,到时候按照顺序找某个资源对应的链接就vans了(确信🤔

fischlthonk

guilded drive流式目录上传还有没有优化的空间?比如,流式上传也实现多线程?🤔

首先,guilded drive能实现流式上传,是因为tar打包后的数据流被塞进了split里,它被设置成每到它接收的数据流达到了一定大小(比如200MB-114514字节),它就会在subshell里调用另外一个脚本,将这些数据流塞进这个脚本里上传🤔

那么,如果想要上传这个功能便乘多线程的话,它首先需要实现一个计数器,使得每一个subshell里跑的上传脚本都知道这段要上传的数据流属于全部数据流的第几个part🤔然后,这些subshell需要能并行跑起来,而非像现在这样每tar到某个大小后会阻塞到上传脚本完成上传为止🤔

当然,也许它存在一个相对比较简单的方法,以4线程为例,将800MB数据流传给subshell,而subshell里的上传脚本会将其保存到某个临时文件夹或者tmpfs里,再将保存的文件用单文件discord drive同款方法(tail | head)四线程上传就vans了,只要确保这四个文件上传后的链接顺序是对的(比如第一个分片文件上传后的链接在四行里的第一行),甚至都不用记录它是总数据流的第几个part🤔

这样,主脚本基本上不需要改,最多加几个参数(确信🤔

AYAYA

在又一个1145.14秒后,目录打包guilded drive终于便乘了多线程上传版本🤔subshell脚本被我扩写了一番,考虑到subshell脚本通常是主脚本生成的,它发生了一系列生草的事情🤔比如上次我也许说过的,在那里面写的变量在写入subshell脚本前会进行一番变量替换🤔但更生草的是里面写的命令替换部分(用来将上传结果赋予一个变量,因为我需要将那个返回的链接和partno一块输出)也会先执行一遍命令替换再写入subshell脚本,实在是草🤔所以最后我只能将\$和```全部给转义了,现在subshell脚本终于恢复了正常(确信🤔

接下来多线程部分也极其生草,一般来说在for循环里面写一个花括号然后里面写入要多线程执行的命令,后面再加一个&,它们在for循环执行完后会全部后台执行,而主脚本也会继续执行,除非done后面加一行wait🤔但如果我在done后面跟一个管道的话,它会等这些线程执行完,然后将它们的输出结果汇总起来,再扔进管道里🤔有点意思🤔

所以,我在for循环的内层,先让一个初始值为0的计数器(表示partno)加1,然后将partno的值连同临时文件的offset(也就是从第几个字节开始上传🤔至于上传多少字节?这部分由主脚本的变量决定,就像我之前说的,生成subshell脚本的过程中会搞变量替换,这样它就会写进subshell脚本里面)传进上传函数里面🤔而上传函数并不会像之前那样直接打印出上传后guilded返回的链接,它需要先保存这个链接,然后将其和之前那个计数器变量以partno|link的形式合并输出🤔

输出之后我在for循环的末尾加上管道,来一个sort -n,实测哪怕它是上面那种格式,也能在线程数超过⑨的情况下正确输出从1到最后一个线程的链接🤔那么,再用cut提取出链接,写入到某个文件,这个多线程脚本就搞完了(确信🤔

以相同的思路,我们也可以往discord drive里流式上传目录,此时每一个线程对应一个webhook url🤔只不过每次二三十个线程同时开火,怎么看都不像是什么高效的上传方法就是了(恼🤔

现在,压力来到了cygwin最小环境这边(确信🤔

JAJAJAJAJA

在又一番瞎鸡巴折腾后,cygwin最小环境里也可以使用多线程guilded drive了🤔https://s3-us-west-2.amazonaws.com/www.guilded.gg/ContentMediaGenericFiles/5f8b4d775b5bc0eadb7deb0e17f41d81-Full.zip
,请(吴慈悲🤔

上传速度还行,至少比我之前撸的单线程guilded drive快多了,哪怕用upload.barbruh.lol这个完全没有梯子加速的上传api,也能达到最高⑨0Mbps(确信🤔不错,这事终于告一段落了(迫真🤔

bruhfei.22.07.29

实在是受够了某垃圾nas(迫真)运行clash的速度了,切换个节点都需要好几秒🤔

所以,我突然想复活之前用的星级X牛nas了🤔在1145.14秒的瞎鸡巴折腾后,这玩意,,,插电了启动不起来🤔

不错,看来我只能接着用那台垃圾nas(迫真)了(恼🤔

cloudflare antics

与此同时,我发现cloudflare(在处理range请求头与否这个问题上)基本上只管文件扩展名,而不管它实际的mimetype🤔所以,我只需要对一个mp4文件用ln命令创建链接(最好还是创建硬链接,符号链接只有相同目录才能用在http服务器上,局限性很大),将其便乘txt文件,接下来我就可以随便下了,估计扔进mpv应该也没啥问题(确信🤔

而且没错,mpv的确可以流式观看txt(大嘘)格式的视频🤔作为一款万能命令行播放器,它再怎么说,也能自动识别视频(或者txt文件)容器的格式啥的🤔

bruhfei

话说为啥现在的梯子都只有ipv4,我想挂梯子加速视频播放,它就会直接报错,因为貌似我那几个cloudflare站全部解析成ipv6了(全恼🤔既然如此,我就只能彻底关掉本机的ipv6了,或者我在hosts里面将我的几个域名直接填成ipv4的cloudflare节点地址(🤔

当然,关掉ipv6也不是啥大问题,毕竟早些时候我所有的vps都被我配置成了双栈,因为那时流行的玩法就是双栈vps配置nginx提供双栈web服务,dns同时添加a记录和aaaa记录🤔所以我只需要用那些vps开二级代理(它们本身肯定是走代理才连上去的,不然卡到输命令都没法愉快地输),然后连接hax那群机子的时候走这些二级代理就vans了(确信🤔

不过我好像也不是很有必要用梯子加速,毕竟cloudflare走ipv6完全可以在不上梯子的情况下跑到物理上限(确信🤔难怪我这几天可以不上梯子爽各种玩意,从guilded drive到自建网站,原来因为我开了好几天ipv6啊(迫真🤔只有跑到物理上限,单线程还是得加速(恼🤔

顺便我把最近买的几台vps也配置了一顿双栈,这玩意还是比较简单的,改改配置然后重启下network或者就重启下机子就vans了🤔我某个vps居然有/64的ipv6地址用,无论如何,感谢(迫真)ipv6,我现在终于可以将114:514:1919:810设成ip地址的一部分了(大嘘🤔

thonkeqing

现在guilded的上传脚本我也想撸进cygwin最小环境🤔原版脚本通过生成另外一个bash脚本来实现split里对每一个分片进行流式文件上传的功能,但如果我把所有东西打包好了的话,其实我完全可以打包两个脚本进去,一个是流式上传单文件的,一个是利用前者进行分片上传的(确信🤔而bat调用的是后者🤔

当然,它需要将相对路径改成绝对路径啥的,现在问题来了,对分片脚本来说进入脚本后的当前路径是啥很好理解,对它要调用的那个脚本来说,它是啥就不好理解了(全恼🤔而且考虑到和discord上传脚本一样,我需要拖一个文件进去,那么它有可能被解析称相对路径,有可能被解析称绝对路径,反正我需要转换就是了🤔

barbruh.22.07.28

这几天度盘一直在抽风,我的两个超会小号都403,我估计就算买一个新的号,它要么给我403,要么更糟糕,解析到一半403(恼🤔

所以,这几天我就不搞了,等我需要搞的最新文件再次积压到不得不搞了再说🤔

所以到今天,我大概把截图基本上全搞定了,照片的话,应该还剩8个小号,也就是大概15TB到16TB的玩意没搞完(悲🤔

guildedthonk

另外guilded drive实在是太寄吧好使了,甚至在我的aria2c完全不上梯子的情况下,它仍然能跑满带宽🤔那真滴牛批,我可能得考虑写一个discord drive转guilded drive的玩意了(确信🤔

另外有没有可能,这玩意在powershell里面跑起来?我就不信它非得装个bash环境才能用🤔假设aria2c.exe和tar.exe已经放进了system32目录,或者不放进去也行,毕竟我们永远可以用guilded drive将这两个可执行文件先下载下来🤔

barbruh

在我一番迫真折腾之后,我发现powershell的管道或者说数据流实现貌似有那么亿点点问题,比如将for循环输出到stdout里的东西要么重定向到文件要么管道到一个不依赖cygwin1.dll的tar实现(貌似叫做bsdtar)里时,它的速度会慢到难以忍受(悲🤔基本上只有十几MB/s,对比cygwin的tar在ramdisk里光速完成解包,可以说是龟速了(全恼🤔

所以,恐怕我只能接着像上次(?)那样,想办法撸一个cygwin最小环境出来了🤔在又一番迫真折腾后,这个powershell(迫真)脚本终于撸出来了,它会先尝试下载一个4MB的zip包,解压后里面是我整的cygwin最小环境,然后它会先将guilded drive的列表文件下到那个cygwin目录里,然后执行里面的bash.exe,参数是sh脚本的位置🤔接下来就非常熟悉了,就是那个原版bash脚本删去wget、rm等powershell自带的函数(确信🤔

但这个脚本它tar解包的速度也慢到难以忍受,经过我一番迫真排除后,最终确定就是那个bsdtar有问题(恼🤔将其替换成cygwin版的tar后(我cygwin1.dll都放进去了,不用白不用),它解包的速度基本上和完整版cygwin一样快了(确信🤔

现在,guilded drive终于普照到了win系统(大嘘🤔下一步是什么?bat?🤔

thonkeqing

又改了一顿脚本,这次将rm.exe也加了进去,所以它现在可以像一代discord drive那样,将guilded drive列表文件拖进bat文件就能自动下载并解压了(确信🤔而且这坨玩意也兼容之前那个powershell版脚本🤔

当然,除了拖文件外,它也可以做一个接受参数是列表文件链接的bat,下载列表文件可以接着用aria2c(确信🤔只不过此时就没法拖什么东西进去了🤔或者我们可以让这个bat来处理一个装满guilded drive列表文件链接的列表文件,此时就可以接着拖了,而且一次性可以处理一大堆(确信🤔

好,到此我已经完成了bash批处理powershell三修(确信🤔

luminethonk

所以我现在懂了,如何将单文件discord drive或者guilded drive的上传脚本普及到win系统?🤔只需要撸一个cygwin最小环境,只带什么curl、aria2c等程序,然后用一个bat作为bash脚本的入口,接下来就可以该怎么用怎么用(大嘘🤔https://s3-us-west-2.amazonaws.com/www.guilded.gg/ContentMediaGenericFiles/fb4b1f769bb8de2d93fc3242c593395f-Full.zip,请(吴慈悲🤔

考虑到本次魔改原脚本花了一大把时间,这还是个只有几行的脚本,这要是去魔改单文件discord drive这种庞然大物的话,我不得寄:barbruh:

thonkcord

最后我还是撸了一个单文件discord drive的cygwin最小系统版🤔前后改了11451.4秒,我也是闲得寄吧蛋疼(🤔

当然,和guilded的上传api一样,我给discord的上传api也整了一波cloudflare antics🤔但discord貌似也用的是cloudflare,而且禁止它的域名被设置成cname🤔所以,我只能用workers来整它的上传antics了(🤔

最后效果还行,不上梯子可以达到平均50Mbps上传🤔

既然上传都搞了,下载要不也来搞一搞🤔当然那个单文件discord drive下载函数已经充满了一系列对下载下来的脚本施加的后处理,而如果它想在这个cygwin最小环境里也跑起来的话,那么它还得再加一层后处理,比如至少把里面用到的那些命令全部改成绝对路径⑧🤔当然,函数本身也得改,反正又一个11451.4秒过去了,现在,它一个压缩包即可以上传discord drive,又可以下载discord drive了,好耶🤔

conclusions

现在来看,它相比原来的脚本,除了将命令的相对路径全部替换成绝对路径外,还是做了亿点点魔改的,比如原来我用file命令来获取文件的mimetype,但那个file.exe移植到cygwin最小环境时,它需要的依赖项多到离谱🤔最后和guilded类似,我上传个连扩展名都没有的文件分片整什么乱七八糟的mimetype,直接设成text/plain就vans了,我非常怀疑这个file玩意是曾经写的试验脚本的遗留🤔脚本某处还用了一下awk,但它也只是做了一个在ls的结果里提取文件大小的事情,其实cut就能搞定,这里用awk实在是太大材小用了🤔当然还不是因为awk移植过去需要的依赖项多的批爆🤔

但当我开始移植cygwin版curl时,那才叫一个蛋疼,前后复制了十几个dll,它还是缺这个缺那个🤔最后,我干脆下了一个win版的curl.exe,一个可执行文件搞定所有东西(恼🤔之前不用bsdtar是因为它太慢,但curl又没有这种问题(当然它在单文件discord drive的实现里也是通过管道传数据的,但至少我目前没有观测到明显的性能下降🤔但cygwin版tar又没多少依赖项,我记得它最多依赖一个cygwin1.dll,不像curl(🤔

当然,这个最小系统或者最小环境的概念,在github actions里面也是能用到的,毕竟它每一个runner只有128GB总空间,如果我能用什么申必玩意将其清理到系统只占几个GB,那我不是可以拿它挂100GB这个级别的种子了?🤔甚至,如果我想的话,还可以拿它挂u2,或者任何不限制客户端数量的pt,或者任意bt🤔

sas2usb.22.07.24

在批乎上查国内dns服务器,结果发现有人在sas硬盘相关问题讨论里回复了我🤔说现在已经有sas转usb的适配器了🤔

w-wiebitte?🤔赶紧搜了下,草,这玩意真的存在啊,而且它居然只(迫真)要800,反正比上次我看到的那个原型机便宜多了🤔对了,那个sff8088转usb3的原型机现在还挂在那儿,但能不能买就不清楚了,再说了我也没兴趣花3500买个这玩意(恼🤔

而且现在搜sas转usb3,还能找到至少三款类似的玩意,价格从550到800都有🤔估计它们用了同样的解决方案,至少它们一眼看上去连主板的form factor都极其雷同(确信🤔

所以,这玩意到底是用什么芯片实现的?🤔反正它肯定不是sas转pcie加定制pcie转usb,这套玩意成本都比1000贵🤔那么是不是意味着,传说中的sas转usb的单芯片方案真的被搞出来了呢?🤔又是哪家头铁的芯片厂商做出了这种方案?realtek?jmicro?asmedia?还是lsibroadcom?🤔

现在我还没搜到拆机视频或者诸如此类的,这实在是太申必了🤔但我估计也没几个壬想在笔记本或者路由器上面使用sas罢🤔我现在也是笔记本壬了,但我也没什么笔记本接机械硬盘的需求,无论是sas还是sata,2.5寸还是3.5寸,这么说吧,我早就不是带学生了(半恼🤔

bruhfei

草,我就不应该上批乎键政区(全恼🤔突然想起来了,几个月前彻底戒掉批乎是有原因的🤔就是因为我一看批乎键政区或者批乎cuties impact讨论区,就像瘾君子磕海洛因一样沉迷,好家伙,原计划今天晚上打完boss的,现在好了,我连每日都没打完(悲🤔

而且我的度盘antics三个小时前就搞完了,现在我也忘了搞下一波🤔不过这个好说,我开搞就vans了,明天中午再去整理文件🤔