admin 发布的文章

命令行下的json解析工具jq

今天想给寝室里做服务器的那台电脑做一个动态解析,恰好Dnspod提供了API,好吧就用它了。看了其官方文档发现它的返回结果是用的json格式,那么我想在Linux开机的时候自动将某个域名记录的值设置为本机IP,就得做一个shell脚本放在Linux开机启动项里面(虽然说写一个程序也可以,但那样太麻烦了,而且维护也不方便)。

DNSPOD的API的调用方法和我想象的不一样啊,我原本以为修改某个记录只需要类似下面的命令:

curl https://dnsapi.cn/?email=xxx@xxx.com&password=xxx&record=www.xxx.com&recordtype=A&value=1.2.3.4

结果事实上是这样的:

1.通过Dnspod API获得域名ID;
2.通过Dnspod API,提供域名ID作为参数,获得域名的记录的ID;
3.通过DNSpod API,提供域名ID、记录ID作为参数,更新该记录的值。

好繁琐,如果前两步返回的是纯ID倒还好,但实际上是返回的json格式的信息,还得把里面的域名ID或者记录ID解析出来才行。

网上找了一下,发现了jq这个软件,是专门用来在命令行下解析json格式的信息的。

因为使用很灵活,官网上也提供了一大堆示例,我就懒得写例子了,反正用起来挺方便的。

官网实例:http://stedolan.github.io/jq/manual/

下载地址:http://stedolan.github.io/jq/download/

Linux不能通过DHCP获得IPv6地址的临时解决办法

上周,学校校园网对我所在的宿舍进行了改造,改造前后,我认为最大的区别是:Linux系统不能自动获取IPv6地址了。

这是一个很奇怪的问题,网络改造前一切正常,改造后,我的Windows的PC直接插网线就能获取到IPv6地址,但Linux不管怎么样都不行,不同的发行版都试过,连OpenWRT都试过,但仍然不行,目前原因没找到。

于是没办法,只能手动配置静态IPv6地址和对应的网关了。

这里只说OpenWrt的设置方法,因为其他大多数发行版的IPv6设置方法网上已经烂大街了:

修改/etc/config/network文件,将IPv6设置为如下:

 QQ截图20141214013756

然后重新载入网络:

/etc/init.d/network reload


20分钟学习C++11标准

关于C++ 11标准

C++11标准为C++编程语言的第三个官方标准,正式名叫ISO/IEC 14882:2011 - Information technology -- Programming languages -- C++ 。在正式标准发布前,原名C++0x。它将取代C++标准第二版ISO/IEC 14882:2003 - Programming languages -- C++ 成为C++语言新标准。
C++11包含了核心语言的新机能,并且拓展C++标准程序库,并且加入了大部分的C++ Technical Report 1程序库(数学上的特殊函数除外)。C++ 标准委员会计划在2010年8月之前完成对最终委员会草案的投票,以及于2011年3月3召开的标准会议完成国际标准的最终草案。最终于2011年8月12日公布,并于2011年9月出版。2012年2月28日的国际标准草案(N3376)是最接近于现行标准的草案(编辑上的修正)。此次标准为13年第一次重大修正。

- 阅读剩余部分 -

fedora系Linux系统yum清理残余依赖项的办法

遇到问题

使用fedora系Linux系统时,经常会用到yum来安装软件,但细心的人就会发现,安装某个软件的时候可能会安装一大堆依赖的库或者组件,但使用yum卸载这个软件的时候却没有将这些额外安装的东西卸载掉,造成了资源的浪费。
那么,如何解决这个问题呢?
原来,yum有个名叫yum-remove-with-leaves的插件,通过它就能将当初安装某个软件所依赖的东西给清理掉。

使用方法

  1. 先按照yum-remove-with-leaves插件:

     yum install yum-remove-with-leaves
    
  2. 使用yum卸载软件的时候加上--remove-leaves参数,比如:

     yum remove wine --remove-leaves
    

这样,yum就会将当初安装这个软件所需要的依赖项一起卸载掉了。

迅雷路由挖水晶假死解决办法

出现假死,是因为迅雷路由上的系统时间和水晶服务器的时间不同步

使用putty连接迅雷路由

然后输入


ntpclient -h time.nist.gov


然后关闭挖矿服务,重新打开即可解决。