Blog

  • 记录指定状态码的 nginx log

    在 server 里配置,记录 403 的日志

    server {
        server_name example.com;
        access_log /var/log/nginx_access_403.log combined;
        include block_inject.conf;
        location / {
            if ($status != "403") {
                access_log off;
            }
            #......
        }
    }
    
  • git 在每一次 commit 中清理文件

    有两个很大的二进制文件,在版本库中没有一点用处。
    使用核武器 filter-branch ,将每一次提交中出现这两个文件的时候删掉,然后重新提交,所以 commit 的 hash 值都会变掉。

    git filter-branch -f --tree-filter 'rm -f nginx/files/GeoLiteCity.dat nginx/files/GeoIP.dat' HEAD

    强制 push 到 origin

    git push origin --force

    你的合作者现在混乱了。需要将远端的 master rebase 过来

    git rebase --onto origin/master master master
    git fetch
    git reset --hard origin/master

    强制 pull 下来

    git pull --force
  • kvm 模板配置

    装好系统之后,在关机前,需要把网卡信息清理掉

    http://www.andrewklau.com/device-eth0-does-not-seem-to-be-present-delaying-initialization/

    关机后,压缩模板,使发布过程更快

    qemu-img convert -c g97m01st.img -O qcow2 centos.img
  • python随机取出列表元素

    dns 三台,分别选出一台和两台

    #!/usr/bin/env python
    import random
    
    resolv_servers = ['192.168.1.1', '192.168.1.2', '192.168.1.3']
    # 选出一个
    print random.choice(resolv_servers)
    # 选出两个,做为一个列表
    print random.sample(resolv_servers, 2)
    
  • python打乱列表顺序

    主要用到了 random 的 shuffle 方法

    一个 resolv 的列表,每一次执行都输出不同的顺序

    #!/usr/bin/env python
    import random
    
    resolv_servers = ['192.168.1.1', '192.168.1.2', '192.168.1.3']
    random.shuffle(resolv_servers)
    print resolv_servers
    

    同样,ansible 的 jinja2 模板里,定义了 resolv_servers,在不同机器下发时输出不同的顺序,使多台服务器均衡。

    {% for server in resolv_servers|shuffle %}
     nameserver {{ server }}
     {% endfor %}
    
  • kvm 静态及动态调整内存

    关机升级内存

    关机

    virsh shutdown dim12zv4

    编辑配置文件

    virsh edit dim12zv4

    找到

      4194304
      4194304
    

    都要调整到 8GB
    开机

    virsh start dim12zv4

    开机状态升级内存
    只能提升 currentMemory,天花板是 memory 值

    查看当前情况

    virsh dominfo dim12zv4
    
    Max memory:     8388608 KiB
    Used memory:    4194304 KiB

    调成 8G

    virsh setmem dim12zv4 8388608

    如果设置的值超过 max memory 会报错
    error: invalid argument: cannot set memory higher than max memory

    调整后及时生效。