分类 电脑 下的文章

iredmail - 通过 curl 来增加域名

需求:从一个含用域名列表的文本文件中逐行读取,通过 curl 提交给 iredadmin

尝试:

##
# Configurations.
##

rm tmpcs.txt
rm cookie

# Path to temporary file which will store your cookie data.
cookie_path=cookie

username=postmaster@anqun.org
password=ps88888888
login_url="https://mail.anqun.org/iredadmin/login"
create_url="https://mail.anqun.org/iredadmin/create/domain"
# action_url="$create_url/$domainname"

##
# Logic. Most likely you shouldn't change here anything.
##

curl -i -b $cookie_path -c $cookie_path -d "username=$username&password=$password" "$login_url"

curl -i -b $cookie_path -c $cookie_path -o tmpcs.txt --request GET "$create_url"

csrf_token=$(grep -oP '(?<=<input type="hidden" name="csrf_token" value=")[^"]*' tmpcs.txt)


while read -r line; do
   # 使用该行内容作为变量值来执行 cURL 命令
   data="csrf_token=$csrf_token&domainName=$line&cn=&submit_add_domain=Add"
   curl -i --cookie cookie --data "${data}" "$create_url"
done < domain.txt

初试 GPT-3.5 Poe 助手

约在一年前,王亮建议我多了解一下当时热门的 ChatGPT ,因为他觉得好玩,且较多人有这方面的需求。我不以为然,因为当时我觉得用谷歌搜索就够了,不必额外打开另一个页面或软件来做同一件事。

过年时,有个客户要求在阿里云的虚拟机上安装 FreeBSD 9.3 系统。FreeBSD 9.3 系统版本较老,是约在十年前发布的,阿里云官方提供的 FreeBSD 9.3 系统模板中,最低版本是 FreeBSD 11。我在年初一,尝试用常规的方法来安装 FreeBSD 9.3,但遇到了“拦路虎”—— FreeBSD 9.3 里自带的 VirtIO 驱动无法识别到阿里云新版本的虚拟机硬盘。经翻查资料,知道阿里云官方是提供了适合 FreeBSD 11 和 12 系统使用的 VirtIO 补丁,但没有旧版本 FreeBSD 9.3 的。

我要解决的问题,是如何修改阿里云的补丁,让它能在 FreeBSD 9.3 系统里使用。会读,会改程序代码,这是程序员必备的技能,但我仅是个“民工”,如同在电脑城里组装电脑的“师傅”,是装装 Windows 系统的菜鸟而已。哪怕是只有几行,几十个英文单词的代码,我都看不懂,不知道那是干什么用的。因为不知道怎么入手,很难用谷歌搜索关键字来查找到解决方法。我迫切地希望有个“老师”来给我讲解程序的代码。我想起 Poe 的“助手” ,抱着试试看的心态,一个问题接一个地向它提问,它解答了,且效果令我惊奇。我以前买过如《计算机C语音入门》之类的书,但根本没看懂,没学到一点儿的C语言编程知识,更没有实践紡程过,但现在“助手”它能即时讲解,内容简要并有指引性,我觉得它很实用,且3.5版本的 GPT 现在是免费的。

在这两个月的时间里,我先后两次通过工单请求阿里云客服让工程师花点时间为 FreeBSD 9.3 写个补丁,但他们拒绝了,说那是个很老的系统,新的虚拟化环境不支持,要用就得用老的虚拟机。阿里云官方不愿意写补丁,我又不好意思去 FreeBSD 官方社区里问,因为那儿写了,“结束支持的系统版本最好不要提问”。我只好每天,或隔几天,或在睡觉前,又或者在五、六点早醒时,断续着,在“助手”的帮助下,不断地尝试办法,推进测试的进度。例如,先从 FreeBSD 9.3 内核中的重编译过程中,剥离掉 VirtIO 模块,这样可以减少测试时编译所花的时间,仅重点测试 VirtIO 模块的编译和加载结果。然后又在不同的 FreeBSD 版本和不同的主机商虚拟环境中,测试 VirtIO 官方补丁的结果。最后,不断地在 VirtIO 补丁的程序代码中添加上 printf 的打印输出信息,看看驱动程序在加载过程中的逻辑和结果。得益于“助手”和谷歌搜索,滚泥水般反复测试,在约两个月后,我在阿里云实机测试,终于能成功运行 FreeBSD 9.3 系统。

在这件事情里,我没有写出程序代码,但在 GPT 助手的讲解和引导下,经过很多次的实机测试,再以测试结果中的关键词不断地在谷歌里搜索,最后查找到网友的解决方案。我对 GPT 助手的“博学多才”很惊讶,更难得的是,它“诲人不倦”啊,能一步步地为我讲解程序代码里的逻辑和函数(作用)。我是个“小白”,我对计算机编程是零基础的,但“助手”它能在我的普通提问中,让我了解了“中断”、“向量”等名词。如果这是在现实中,估计老师会对我的提问感到厌烦甚至是动怒,因为有时我是傻瓜般来回地提问。

GPT “助手”能给普通人在学习和了解知识上带来明显的效果。我希望以后能使用到它的场合越来越多,希望它能给社会带来普遍性的好处。

inbucket - apache - 反向代理 websocket 设置 - RequestHeader unset Origin

问题:如果想通过域名来访问 inbucket 的页面,在 apache 里设置反向代理后,inbucket 的 monitor 页显示 disconnected 。

尝试:Monitor 页的信息是调用 WebSocket 信息显示的,需要在 apache 的反向代理设置内容中,有相应的内容,如:

RequestHeader unset Origin  

RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:9000/$1 [P,L]

ProxyRequests Off
SSLProxyEngine on
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/

参考:

xampp - incorrect file format 'db' - repair table db use_frm

现象:xampp 中的 mysql 服务不能成功启动。日志中有如:Fatal error: Can't open and lock privilege tables: incorrect file format 'db' 的错误。

尝试:

  1. mysqld --skip-grant-tables # 手工启动,且跳过权限表
  2. repair table db use_frm; # 连接到 mysql 命令台,对 mysql 库的 db 表进行修复

如果返回修复成功的提示信息,再关闭 mysql 服务。重新正常启动。

参考: