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...

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...

记一次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即可...

Go语言(GIN)搭建DDNS服务器

天锦 发表于 码农也得有格调 分类,标签:
最近由于异地组网的事情,节点都是动态的IP,在使用阿里云的API做DDNS时,由于阿里云的限制,最小的TTL也只能设置到600,IP更新一次就要折腾至少10分钟,期间就会造成长时间的断联,而且我内部的Kubernetes等系统又要使用基于nsupdate(RFC2136中的动态更新功能)来更新记录,所以自建一个标准的基于RFC2136定义的DDNS系统迫在眉睫!此外还要提供一个HTTP接口用以路由器设备使用curl来更新IP。总体架构首先使用bind服务作为DNS服务器,配置成允许使用nsupdate工具动态更新,完成兼容RFC2136协议的DDNS系统,然后再使用web语言来实现这个http接口。再网上搜集资料经常看到的都是基于php的,但是如果使用php的话就要使用exec或者system这种高风险的函数来调用nsupdate,一般为了安全起见,管理员通常是将这些函数都是禁用掉的...

AIX系统安装yum包管理器,使用bash替换ksh

天锦 发表于 码农也得有格调 分类,标签:
安装yum虽然AIX系统支持安装rpm格式的软件包,比使用smit安装软件方便一些,软件库也多一些,但是当你安装一个包依赖多个包时,挨个下载依赖包,挨个安装就过于麻烦。最好还是部署一个yum包管理器来管理软件安装方便一些。可以到https://www.ibm.com/support/pages/aix-toolbox-linux-applications-downloads-alpha 下载yum的rpm包和其相关依赖来安装yum,不错的是IBM提供了一个脚本实现了一键安装yum。该脚本下载地址http://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/yum.sh ,下载之后可以通过ftp上传到aix系统中,添加执行权限后执行安装就可以了。#chmod +x yum....

WiFiDog的深入配置,使用HTTPS访问认证服务器

天锦 发表于 码农也得有格调 分类,标签:
前面讲了WiFiDog的简单配置,也就是AuthServer这几个关键配置,在AuthServer配置中,默认情况下是使用HTTP协议与认证服务器通信,如今HTTPS协议逐渐成为各网站的主流,基本上都做了301重定向将HTTP引导到HTTPS上,我们的认证是直接在已有的网站中添加的模块,直接在网站中集成了针对WiFiDog的认证,如果我们实行全站SSL的话,WiFiDog的API接口会被重定向到HTTPS上,而默认的WiFiDog不支持HTTPS就造成了无法与认证服务器通信,我临时在重定向中做了规则,对UserAgent为WiFiDog的访问不做重定向,其他所有的来自80端口的请求全部做重定向,相当于给WiFiDog留了一个HTTP,临时解决的问题,但这终究不是办法。WiFiDog不支持HTTPS,WifiDog-TLS支持!在配置WiFiDog的配置文件时发现了AuthServer中有一...

OpenWRT安装Wifidog实现Portal网页认证上网

天锦 发表于 码农也得有格调 分类,标签:
Portal认证上网多用于WiFi营销,通过接入一个开放的WiFi网络,进行Web认证登陆后放行上网,协会有百来号人,直接公开密码不合适,直接设置成一个开放网络更不合适,必须要做认证之后方能允许上网,Portal认证便是一个很好的选择。先前使用的是iKuai的软路由,iKuai提供了集成Portal认证,我也对协会的网站进行了iKuai认证集成,用户可以直接使用协会网站账号登录上网,但由于种种原因,如今不得不将iKuai撤下,换成OpenWRT路由系统。OpenWRT安装Wifidog很简单,直接使用opkg安装就行[root@openwrt ~]# opkg update[root@openwrt ~]# opkg install wifidog配置网上有提到Web版的配置工具包也就是luci-app-wifido...

Bash脚本实现OpenConnect 自动添加路由

天锦 发表于 码农也得有格调 分类,标签:
最近在用OpenConnect进行多点异地组建虚拟专网,有一个主节点做OpenConnect服务器端,其他节点做客户端。OpenConnect服务器端可以下发路由各客户端但是客户端不能将客户端本地的LAN段路由反馈给服务器端,要实现各节点下的LAN段互访就需要手动在服务器端添加路由条目才行,而客户端拨号获得的IP是从服务器IP池中动态获取的,无法静态绑定(目前暂时没研究出来)也就无法手动设置永久路由。最终思路是使用occtl查看当前已经连接到网关的用户以及其获得的ip地址:root@gw:~# occtl show users      id     user    vhost  &nbs...

PXE实现Windows和Linux的双系统引导

天锦 发表于 码农也得有格调 分类,标签:
先前协会为了修电脑方便,部署了WDS服务器实现PXE网启,引导终端设备加载PE系统或是Window安装进程以进行系统的维护和安装。但是作为一个计算机社团,光有Windows是不行的,Linux对我们也很重要,所以有了这次双系统引导的折腾。在网上看了很多pxe引导的例子,觉得中国科技大学的PXE服务就是我想要的那种,既能引导Linux也能引导Windows,参考PXE是什么、中国科技大学网络启动服务、和中国科技大学PXE服务FAQ,最终选择跳坑科大的simple-pxe。simple-pxe是科大崔灏学长写的一个用于生成GRUB启动菜单的脚本,并不是一键安装的全套服务,所以还有很多要自己折腾的。在运行simple-pxe脚本前,要先准备好HTTP、NFS和TFTP服务环境。simple-pxe脚本使用到了bsdtar、curl、svn、和fatcat命令,fatcat在CentOS中没有...

Vivado的加速之路:Slurm Cluster!

天锦 发表于 码农也得有格调 分类,标签: Vivado的加速之路
相爱相杀,又爱又恨呀去年10月,我被Vivado的龟速所逼,研究了Vivado的加速之道,研究了如何在远程服务器上实现和综合,见文章《Vivado的加速之路:LaunchrunsonRemotehosts》当时看到了有两种远程方式,一种是简单的丢在远程服务器上运行的runsonRemotehosts,一种是Cluster集群的方式,当时使用的是Vivado2018,只支持IBM的LSF集群调度,由于LSF是商业软件,我连安装包都找不到,所以就只研究了runsonRemotehosts。最近升级到了Vivado2019,发现这次除了LSF之外,新添加了Slurm的集群支持,Slurm是一个开源的集群调度系统,资料也比较好找,软件包也能下得到,如今就来一探究竟!据说在我国首次获得世界TOP500计算机排名第一的天河一号计算机上使用的集群管理和作业调度系统,就是基于SLU...