AYAYA.22.12.04

昨天实在是困得批爆,设置好截图压缩之后就睡了,从下午睡到了晚上🤔一觉起来截图还有两小时半才压缩完,我打算拿这点时间搞点antics🤔

比如,我研究下如何将github actions的日志文件实时传递回某台服务器🤔有114514种方法可以选择,什么netcat啊,什么ssh啊,但最后由于某种申必原因,我最终确定了用ssh🤔

很不幸的是我那ipv6小鸡的ipv6地址还是没法被github action连上,我有比较确切的证据可以迫真论证,azure的机子压根就不支持ipv6(全恼🤔好在我那坑爹玩意还有ipv4 nat功能,我设置一个nat端口映射之后终于可以连了(恼🤔还有一种方法是用什么cloudflare access来折腾,但我寻思这套玩意装在github actions里得大费一般周折,先不折腾了,以后有兴趣了再去研究🤔

当然,github actions是彻头彻尾的无头系统,不可能搞输入密码那样的交互式登录,我需要设置密钥登录,而且还需要将known hosts里面的东西也预先填上🤔接下来它开始报错,貌似我这边好几台机子的host key和它机子上的就是不一样,那没啥好办的,只能加一条参数来完全跳过host key检查了(悲🤔话说github actions这破玩意连个ssh都需要加sudo,可真够屑的(半恼🤔

还有私钥文件的权限也得设置好,比如设成400,接下来就可以搞了,将这个函数用&的方式并行运行,再运行主函数,前者只有检测到log文件之后,才会去对其执行tail -f,然后立即管道到ssh,ssh里面执行的命令是将当前的数据流(因为最前面写了cat,和split --filter有点像)写入某个日志文件里🤔然后我登进那台小鸡tail -f那个日志文件就可以看进度了(确信🤔

终于,在玩了大半年github actions后,我第一次可以有机会实时观看某个runner的进度,而非像以前那样只有跑完才能拿到日志文件,甚至有些时候我还拿不到日志文件,因为它中途卡住了,根本跑不完(恼🤔

所以这个玩意有没有可能添加进project cosette里面?这个我就不清楚了,到时候再说🤔

bruhfei

很快,那个破ipv6小鸡的nat服务器就被橄榄了(悲🤔我尝试了从cloudflare access到什么sslh之类的各种方案,都连不上🤔但更离谱的是,几个小时后我的github小号都被扬了,之后用某域名注册的号也被风控(全恼🤔

所以我只能切回主系统用某易邮箱撸一个号了🤔现在看来,我开始怀疑ssh连接能瞬间橄榄github账号(确信🤔那么我只能用http的方式传递日志数据流了🤔

某台小鸡卸掉nginx装apache,好家伙,根本不用配置就能用cgi-bin🤔我随便写了一个cgi-bin脚本,这玩意极其简单,post请求的请求体直接便乘了stdin,我只需要一句cat > filename.txt就能完成保存日志文件的任务,接下来我只需要在github actions的脚本里照常将tail -f的数据流管道进curl,应该就vans了(确信🤔

除了它什么都没出,别说日志文件了,连curl请求都没发起🤔我寻思它八成得等日志文件打完才能开始curl上传,首先等它打完那我原先的上传脚本早就将日志上传到discord drive上去了,其次tail -f就不可能结束,除非手动ctrl+c🤔也许curl这种东西和gpg一样压根就不是流式玩意,它只不过是可以接受stdin作为输入而已(恼🤔

而用我之前最喜欢(大嘘)用的split --filter也没啥卵用,它还是卡在那里等tail输出完🤔我后面想到一个坑爹主意,将tail -f的输出转存到某个文件,然后对这个文件每读出并上传第一行就删除掉第一行,然后循环🤔这个玩意基本上只能输出五行东西,接下来它就什么都不输出了(悲🤔

我现在已经懒得折腾tail -f了,干脆将整个日志文件用cgi-bin上传到小鸡上得了,只不过小鸡那边需要完全覆盖而非之前设定的追加🤔这样其实和上传到discord drive也没什么本质上的区别,只不过我每两秒上传一次而已🤔而且这么搞我那边就别想用tail -f来实时看进度了,毕竟现在每两秒日志文件就会被覆盖一遍,按照tail的搞法整个文件都会重新打印一遍🤔

也许我可以写个什么申必脚本在接收到的stdin和本地文件之间迫真比较,并将多出的部分追加到本地文件的后面而非直接覆盖整个文件,这样也许tail -f还能用,只不过便乘了每两秒更新一次而已(确信🤔

但无论如何,至少我可以半实时地看日志了,再怎么说也比搞完才能看日志好(大嘘🤔

AYAYA

在我一番迫真查stack exchange后,我找到了找出上传到小鸡的新日志文件(和原来的日志文件相比)新增内容的申必代码了,就是:diff --changed-group-format='%>' --unchanged-group-format=''🤔现在这个日志远程传送的脚本非常完美了,我没有用到禁忌(大嘘)的ssh,没有用到睾贵的ipv4 vps,我只用了一台ipv6垃圾鸡套cloudflare,就完成了这套玩意🤔接下来也许我可以去整什么onedrive转三盘还是双盘来着,等等,我寻思度盘还是单独用某台大盘鸡上传得了(恼🤔

接下来还有什么antics可以搞一搞?也许我可以把cloudflare worker版的任意url转guilded(单文件)脚本改写成bash版并cgi-bin化,然后要么放在我那台小鸡上,要么放在我白嫖的那个webhost上🤔

发表评论