# 更新 最近博客没更新是因为一直在忙,毕设只做了一点,然后就去接外包了。 这次接的外包总的来说就是钱少事多。 --- # linux服务器遇见的问题 我完成了一大壮举,使用了**rm -rf /***,删除了服务器的所有文件,这次属实怪我,真成段子了。 ## 熟悉了部分命令 * rm 删除命令 * unzip解压命令 * lsof查看端口命令 * kill等命令 * mysql在linux的日常使用命令 * ls等获取路径和路径选择等命令 # 代码问题 ## Go 这次单子的主要逻辑和bug是数据库和json转换问题。 uc支付回调会重复多次,而这套游戏框架的源码有bug,自定义的命令完全不行,如:  只是简单的插入,他却使用自己定义的命令,无法正常插入表,打开的数据库连接和连接池设定也有部分问题, 由于无法正常插入而导致的重复服务器发货问题,还得自己解决。 好累.jpg。 uc回调后的数据被解析为byte字节数组,转化为string时,发生了不能将url编码过的encode编码解析,而应为位数不符合3特殊字符,而部分内容无法解析,如: ``` url.QueryEscape() ``` 这个命令完全不行,而我想了想,觉得可以使用这样的方案来解决: ``` str:=string(this.Ctx.Input.RequestBody) strbody,_:=url.ParseQuery(str) strbody["biz_content"][0], _ = url.QueryUnescape(strbody["biz_content"][0]) ``` 这样将没有正常进行转换的那一部分给转化,这样就能成功。 [scode type="blue"]友情提示:当字符没有经过encode正常解码(特殊字符同样)时,进行json的二进制流编码转化会报错。[/scode] 而json转化必定失败,于是只能这么操作: ``` ob.App_id=strbody["app_id"][0] ob.Client_id=strbody["client_id"][0] ob.Biz_content=strbody["biz_content"][0] ob.Nonce_str=strbody["nonce_str"][0] ob.Sign=strbody["sign"][0] ob.Sign_type=strbody["sign_type"][0] ob.Version=strbody["version"][0] ``` 这样我看着也非常蠢,有算法可以优化,但是钱给的少,没必要(冷漠脸)。 --- ## 上限服务器遇见过的问题 1. root 权限才能正常运行文件,需要给予权限进行端口占用 2. 使用Go生成的二进制文件需要足够的权限 3. beego的日志包和logrus包有bug冲突,判断时hook问题 4. linux有些时候数据文件夹不见了,可能是未挂载数据盘的问题 5. linux不要用高权限来做危险操作 6. rm命令,不要图方便用它 [scode type="blue"]不要用rm等危险命令了,我都成段子了。[/scode] Loading... # 更新 最近博客没更新是因为一直在忙,毕设只做了一点,然后就去接外包了。 这次接的外包总的来说就是钱少事多。 --- # linux服务器遇见的问题 我完成了一大壮举,使用了**rm -rf /***,删除了服务器的所有文件,这次属实怪我,真成段子了。 ## 熟悉了部分命令 * rm 删除命令 * unzip解压命令 * lsof查看端口命令 * kill等命令 * mysql在linux的日常使用命令 * ls等获取路径和路径选择等命令 # 代码问题 ## Go 这次单子的主要逻辑和bug是数据库和json转换问题。 uc支付回调会重复多次,而这套游戏框架的源码有bug,自定义的命令完全不行,如:  只是简单的插入,他却使用自己定义的命令,无法正常插入表,打开的数据库连接和连接池设定也有部分问题, 由于无法正常插入而导致的重复服务器发货问题,还得自己解决。 好累.jpg。 uc回调后的数据被解析为byte字节数组,转化为string时,发生了不能将url编码过的encode编码解析,而应为位数不符合3特殊字符,而部分内容无法解析,如: ``` url.QueryEscape() ``` 这个命令完全不行,而我想了想,觉得可以使用这样的方案来解决: ``` str:=string(this.Ctx.Input.RequestBody) strbody,_:=url.ParseQuery(str) strbody["biz_content"][0], _ = url.QueryUnescape(strbody["biz_content"][0]) ``` 这样将没有正常进行转换的那一部分给转化,这样就能成功。 <div class="tip inlineBlock info"> 友情提示:当字符没有经过encode正常解码(特殊字符同样)时,进行json的二进制流编码转化会报错。 </div> 而json转化必定失败,于是只能这么操作: ``` ob.App_id=strbody["app_id"][0] ob.Client_id=strbody["client_id"][0] ob.Biz_content=strbody["biz_content"][0] ob.Nonce_str=strbody["nonce_str"][0] ob.Sign=strbody["sign"][0] ob.Sign_type=strbody["sign_type"][0] ob.Version=strbody["version"][0] ``` 这样我看着也非常蠢,有算法可以优化,但是钱给的少,没必要(冷漠脸)。 --- ## 上限服务器遇见过的问题 1. root 权限才能正常运行文件,需要给予权限进行端口占用 2. 使用Go生成的二进制文件需要足够的权限 3. beego的日志包和logrus包有bug冲突,判断时hook问题 4. linux有些时候数据文件夹不见了,可能是未挂载数据盘的问题 5. linux不要用高权限来做危险操作 6. rm命令,不要图方便用它 <div class="tip inlineBlock info"> 不要用rm等危险命令了,我都成段子了。 </div> 最后修改:2021 年 10 月 16 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏
1 条评论
牛啊!玉衡!OωO