给容器设置网络

  1. 通过pipework给容器添加、配置、期望网络(这个就不说了)
  2. 如果在不重启容器的情况下,禁用容器的网络,然后在需要的时候在启动呢?
    1. 禁用容器网络: ifdown eth0
    2. 启用容器网络: ifup eth0
  3. 如果容器中没有ifup、ifdown、甚至没有ip命令呢?
    1. 通过nsenter -t pid-of-container -n   (进入容器网络名字空间,但是文件系统还是宿主机的)
    2. 执行ip相关命令:

       

      注意: 这里使用的是ip命令,而不是ifconfig、ifup之类的,因为ip命令不参考本地文件系统中的相关配置,而后者会参考本地文件系统相关网络配置;因为我们需要ip命令,所以使用的是宿主机的文件系统,而不是容器的文件系统,所以在这里设置容器网卡的时候,不能使用ifconfig、ifup之类

    3. 在宿主机上使用ip netns exec 也能达到和使用nsenter相同的效果,但是似乎没有发现一个比较好的办法根据pid找到网络名字空间,所以还是nsenter更方便些

paramiko模块学习

第一步:安装

 

rpmbuild 之 devel

我们见过比较专业一些的软件会包含多个rpm包,如:

phpor.1.0.0.el7.x86_64

phpor-docs.1.0.0.el7.x86_64

phpor-devel.1.0.0.el7.x86_64

phpor-debuginfo.1.0.0.el7.x86_64

那么,一个spec文件如何build出来多个rpm包呢?

首先,我们以devel为例,参考: https://stackoverflow.com/questions/2913130/building-both-devel-and-normal-version-of-a-rpm-package

可见,devel是以子包的形式出现的

示例:

http://kmymoney2.sourceforge.net/phb/rpm-example.html

rpmbuild 安装到BUILDROOT 下面的文件和目录都要打包的rpm包中,否则会报错(rpmbuild会认为你遗忘了),如果不想打包,就提前删掉

rpmbuild 之 /usr/lib/rpm/check-buildroot

rpm打包之前会执行: /usr/lib/rpm/check-buildroot, 其逻辑为,检查将要打包的文件中是否包含buildroot,因为这只是build时候的临时目录,如果出现在打包文件中,就可能会出现问题,起检查方法简单粗暴:

如果包含,就会报类似如下的错误信息,然后退出

关于check-buildroot脚本:

其一:

通过mktemp来创建临时文件,根本不需要自己制造随机文件名

其二:

保证在脚本退出后删除临时文件

其三:

注意,这里 ” || : ” 的用法,保证test为假时脚本退出码为零

xfs bug

 

 

windows 路由之metric

如下图来看, 虽然172.16.22.29存在一条更精确的路由,但是该精确路由的metric比默认路由的metric更大一些,最终还是选择了默认路由,看来metric的影响力还是很大的

添加路由是指定metric参数吧,如下:

明明指定的metric为9,结果却是19(默认网关的metric+9)

 

可以通过网络设置来修改接口的跃点数(metric),最小值为10(设置为更小的值也没有用)

相关参考: http://blog.csdn.net/liqfyiyi/article/details/8788206

what is loginuid

4294967295 is just (unsigned long) -1. -1 means that loginuid was not set. This is normal behavior for processes that were not spawned by any login process (e.g. for daemons). loginuid is -1 by default; pam_loginuid module changes it to your user id whenever you login (in a tty/in DM/via ssh), and this value is preserved by child processes.

可惜的是proc.txt并未对此文件有过说明

用途:

追踪进程发起者

Spring Boot Reference Guide

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-command-line-runner

 

http://docs.spring.io/spring-session/docs/current/reference/html5/

 

http://docs.spring.io/spring/docs/4.2.9.RELEASE/spring-framework-reference/htmlsingle/

 

https://spring.io/docs/reference

http://www.jianshu.com/p/3942cce05f71

 

http://www.mkyong.com/tutorials/spring-boot-tutorials/

redis 之 appendonly.aof

  1. redis.conf 中默认配置的dir为 “./” ,即为当前目录,一些人会想当然认为是redis.conf 所在目录,而appendonly.aof 默认写在该dir下; 其实,”./” 为进程的cwd
  2. redis的config set dir命令可以修改redis进程的cwd
  3. redis的appendonly.aof 的位置会参考在config appendonly yes 被执行时的dir的值,在config appendonly yes后修改dir的值不会立即生效

遇到过的问题:

  1. 程序一直在tail -f 的方式同步appendonly.aof ,在下午18:16的时候,appendonly.aof 变到了/tmp/appendonly.aof (原本下意识地认为/tmp/appendonly.aof 只是18:16之后的数据,行文至此,才意识到,/tmp/appendonly.aof中不是18:16后的数据,而是全部数据);目前确认进程没有被重启过,目前能够想到的能够完成这个切换的操作为:

    但是似乎没有谁会去执行这么复杂的命令