Category: Life

  • 使用 sar 查看系统监控

    安装

    yum install -y sysstat

    使用 sar 可以监控 cpu, 内存, swap, I/O, load, network实时以及历史指定时间的值

    定时任务文件

    /etc/cron.d/sysstat

    查看 cpu ,每 1 秒钟一次,共 3 次

    sar 1 3

    查看 内存使用

    sar -r

    查看 swap 使用

    sar -S

    查看 I/O,整个系统

    sar -b

    查看单个设备 I/O

    sar -d

    查看 context switch 上下文切换

    sar -w

    查看队列和负载情况

    sar -q

    查看网络情况

    sar -n DEV 1

    参考:

    10 Useful Sar (Sysstat) Examples for UNIX / Linux Performance Monitoring

  • ansible 读取 yaml facts

    默认 ansible 只读取 /etc/ansible/facts.d/*.fact,并且是 ini, json,或者执行能输出 json.

    对于机器上放了 env.yaml ,想要塞入 facts,可以做一个脚本,输出 json

    #!/usr/bin/env python
    #-*- utf-8 -*-
    
    import yaml
    import json
    
    env_dict = yaml.load(open('/etc/env.yaml'))
    print json.dumps(env_dict)
    
    ansible all -i hosts -l guest1 -m setup -a "filter=ansible_local"
    

    这样可以直接在 playbook 里用 ansible_local.env.cluster_name 变量了
    

  • vim sudo 保存

    没有用 sudo vim 打开文件,保存的时候没权限怎么办

    :w !sudo tee %
  • rabbitmq配置

    主机名要能解析到本机的ip
    要大于1GB内存

    rabbitmqctl cluster_status
    Cluster status of node 'rabbit@jpuyy-rmq-3' ...
    
    [
     {nodes,[{disc,['rabbit@jpuyy-rmq-1','rabbit@jpuyy-rmq-3']},
             {ram,['rabbit@jpuyy-rmq-2','rabbit@jpuyy-set-rmq-1']}]},
     {running_nodes,['rabbit@jpuyy-set-rmq-1','rabbit@jpuyy-rmq-1','rabbit@jpuyy-rmq-2','rabbit@jpuyy-rmq-3']},
     {cluster_name,<<"rabbit@jpuyy-rmq-1">>},
     {partitions,[]}
    ]
    

    查看队列

    rabbitmqctl list_queues -p vhostname
    

    查看 vhosts

    rabbitmqctl list_vhosts

    查看用户

    rabbitmqctl list_users

    查看 vhost 的用户权限

    rabbitmqctl list_permissions -p myhost

    查看某用户的权限

    rabbitmqctl list_user_permissions jpuyy
    rabbitmqctl add_vhost myvhost                                                   
    rabbitmqctl add_user jpuyy jpuyypass
    rabbitmqctl set_permissions -p myvhost    
    rabbitmqctl set_permissions -p myvhost jpuyy ".*" ".*" ".*"
    

    使用完整主机名

    /etc/rabbitmq/rabbitmq-env.conf 里配置

    RABBITMQ_USE_LONGNAME=true
    

    使用固定主机名
    /etc/rabbitmq/rabbitmq-env.conf 里配置

    NODENAME=rabbit@dl-ftc-prod-01
    
  • bash中减法计算

    做减法

    bc <<< "$new-$old"
    echo "$new-$old" | bc
    
    echo "$new $old" | awk '{print $1-$2}'
    awk '{print $1-$2}' <<< "$new $old"
    
  • python virtualenv

    开发测试环境在 virtualenv 里进行。

    安装 pip

    yum install python-pip
    

    curl -O https://bootstrap.pypa.io/get-pip.py
    sudo python get-pip.py
    

    如果遇到 ssl 错误

    python get-pip.py --trusted-host pypi.python.org

    指定 pypi

     pip install -i http://pypi.douban.com/simple/ autobahntestsuite --trusted-host pypi.douban.com

    安装 virtualenv

    sudo pip install virtualenv
    pip3 install virtualenv -i https://mirrors.aliyun.com/pypi/simple

    使用

    virtualenv venv
    source venv/bin/activate
    

    现在已经进入 venv,安装需要的模块

    pip install flask
    pip install redis
    

    将现有的模块 freeze 下来

    pip freeze > requirements.txt
    

    退出虚拟环境

    deactivate