Golang中exec.Command执行系统命令后Stderr错误重定向的详细研究

天锦 发表于 码农也得有格调 分类,标签:
经常用Golang中的exec.Command去调用系统命令,像这样:func main() {    cmd := exec.Command("showmount", "-e", "192.168.1.5")    result, err := cmd.Output()    if err != nil {        fmt.Println(err.Error()) &n...

MySQL报错Prepared statement needs to be re-prepared的解决办法

天锦 发表于 女票们的新建与保养 分类,标签:
近期设计的程序,有一个用到了视图,可能是逻辑上有点复杂了吧,用数据库工具调试表的时候没有什么问题,程序运行起来就报错Preparedstatementneedstobere-prepared。只要修改table_definition_cache值,调大一点就可以了。mysql>set table_definition_cache16384;具体原因是table_definition_cache定义了打开视图时缓存多少打开表的文件具柄数量,我这个视图逻辑复杂了点,就超出了缓存定义的空间,故而报错。把他调大就好了。...

ipip, sit, ip6tnl, vti, gre, gretap等常见隧道区别总结

天锦 发表于 码农也得有格调 分类,标签:
Linux已经支持多种类型的隧道,但是新用户可能会对它们的差异感到困惑,不确定哪一种最适合给定的环境。比如我在使用gre隧道时就搞不明白,都是gre隧道,为什么gre类型的不能把接口加到bridge里面,而必须要使用gretap。所以在这里做个总结。列数一下这些隧道协议的不同区别。此外,还可以iproute2命令获得隧道接口列表以及特定隧道配置的帮助ip link help本片文章将包含以下常用隧道IPIPSITip6tnlVTI和VTI6GRE和GRETAPIP6GRE和IP6GRETAPFOUGUEGENEVEERSPAN和IP6ERSPANIPIP隧道与字面意思一样,就是一个IPoverIP的隧道,在RFC2003中定义了的,他的头信息是这样的:它通常用于通过公共IPv4互联网连接两个内部IPv4子网。它的开销最低,但只能传输IPv4单播流量。这意味着...

GoLang中的strings.TrimRight()和strings.TrimSuffix()

天锦 发表于 某的代码片段 分类,标签:
TrimRight()和TrimSuffix()字面上都是删除字符串右侧的字符,但是二者还是有很大的不同的,先看一下我写的Bug吧,用来当作错误示范。期望的功能:有域名test.com,有全限定域名full.info.test.com.我需要把域名从fqdn中去除,得到主机名,使用TrimRight函数实现的代码如下:func main() {    fqdn := "full.info.test.com."    host := strings.TrimRight(fqdn, ".test.com.")    fmt.Printf("fq...

JetBrains全家桶在CentOS下无法正常使用中文输入法的解决办法

天锦 发表于 女票们的新建与保养 分类,标签:
在CentOS\Ubuntu等Linux系统下使用GoLand、PyCharm、IDEA等JetBrains全家桶软件时,中文输入法全拼输入1个汉字以上时,就无法输入了。解决办法是:在软件菜单栏点Help>EditCustomVMoptions…添加 -Drecreate.x11.input.method=true到最后一行,保存,重启软件即可。...

Linux Shell脚本的具名传参

天锦 发表于 码农也得有格调 分类,标签:
在linuxshell中编写的脚本,在需要传参的时候,通常是在脚本后面用空格隔开各个参数,从而实现把参数传到脚本里面:[root@public~]#bashmyscript.shparam1 param2 param3在脚本中通过$1、$2、$3这样一个美元符号加数字获取参数#!/bin/bashecho "param1 is $param1"echo "param2 is $param2"echo "param3 is $param3"可以看出,这种传参方式是强顺序相关的,当需要的参数多了之后,使用体验就会变的很糟糕。可以使用getopts进行具名获取#!/bin/bashwhile ge...

Windows 10 降低内存占用

天锦 发表于 女票们的新建与保养 分类,标签:
Windows10后台内存占用三大头:WindowsDefender、WindowsUpdate、WindowsStore。先是WindowsDefender,莫名奇妙的高磁盘占用(鬼知道他在扫描什么),以及长时间的内存占用。可以用KillWindowsDefender助手解决掉它。Kill_Windows_Defender_v4.rarWindowsUpdate在服务里面禁掉即可。WindowsStore主要是wsappx服务在占用内存,到注册表里找到以下两处的Start参数,将Start的值由3更改为4。即可禁用AppXSvc和ClipSVC服务\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AppXSvc\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service...

Calibre-web添加外部链接(友谊链接)

天锦 发表于 女票们的新建与保养 分类,标签:
Calibre是一款电子图书管理软件,Calibre-web则是其对应的Web服务器版本,对于喜欢藏书的同学来说,是一个不错的图书管理系统。Calibre-web很好用,但是习惯性的想在侧边栏放一些链接实现快速访问其他在线书库,或者是其他同学的书库,也就是常说的友谊链接。系统虽然还不支持这个模块,但是几个前端的小链接,手动修改还是不算太难的。找到layout.html这个文件手动添加修改就可以了。我用的是linuxserver/calibre-web的Docker镜像部署的,这个layout.html文件就在/app/calibre-web/cps/templates/layout.html中,vim打开修改root@calibre-web:/# vim /app/calibre-web/cps/templates/layout.html找到这里<ul ...

解决OpenWRT在虚拟机中PPPoE断线不重连的问题

天锦 发表于 女票们的新建与保养 分类,标签:
使用硬件路由刷OpenWRT系统时,PPPoE拨号一切正常,后面为精简硬件环境,撤掉了硬件路由器,改为软路由,也就是在虚拟机中运行OpenWRT,配置配置迁移后都还正常,拨号也能上网,但总是莫名奇妙的断网,登录后台查看接口状态,发现PPPoE接口刚刚发生了重连,也重新获取到了ip,但就是网络不通...只有手动重启该接口后,重新拨号,网络才能恢复。在网上查了一些资料发现有说在接口高级设置中启用LCP响应故障阈值能解决这个问题,实验后发现依旧无法保证重连后网络正常。无奈只能自己排查了。OpenWRT系统提供了一个接口的事件脚本,也就是在/etc/hotplug.d/iface/下添加脚本,系统会在接口状态发生改变时运行这些脚本。于是我就写了一个wan-pppoe的脚本,用来纪录发生断线重连的时候的一些细节信息,其内容如下:WAN_LAST_STATE="$(cat /var...

记一次NFS故障

天锦 发表于 码农也得有格调 分类,标签:
因编译某个远古时期的系统,需要用旧版的gcc,为此安装了Ubuntu14.04作为开发环境,资料都在一台CentOS7的服务器中存储,用NFS协议为其他主机提供文件服务,都挂载正常,唯独Ubuntu14.04这台新建的虚拟机无法挂载,报错:mount.nfs:accessdeniedbyserverwhilemounting10.1.1.5:/nfs/4TB解决方法是加上参数vers=3可以解决sudomount-tnfs10.1.1.5:/nfs/4TBnfs/-overs=3原因是Ubuntu14.04默认使用NFS版本过老,与服务器协商不了,指定使用版本3即可...