如何确定网络设备是虚拟还是物理的

如何确定网络设备是虚拟还是物理的

$ ip link

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc prio state UP mode DEFAULT group default qlen 1000
    link/ether ec:f4:bb:e6:78:cc brd ff:ff:ff:ff:ff:ff
3: eth5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ec:f4:bb:e6:78:cd brd ff:ff:ff:ff:ff:ff
4: eth4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group
查看详细
配置管理如何选择:Ansible or Puppet ?

配置管理如何选择:Ansible or Puppet ?

现在你需要一个配置管理软件了,开源界有一堆牛逼的配置管理,我们用哪个?puppet or ansible?

哪个最好?

存在即是合理,起码是存在3年以上的;没有最好的,只有合适的,你说白菜和青菜哪个最好?

一般来说,有两种配置管理:
1. 推模式
2. 拉模式

两种模式有不同的擅长点,有不同的使用场景。

拉模式 (puppet)

这种模式主张去中心化的设计思路,典型代表 puppet。一般实现多为在每个节点上部署… 查看详细

logrotate 不滚动

logrotate版本:3.8.1-4

/etc/logrotate.d/cinder-volume 中这么配置的:

/data/log/cinder/cinder-volume.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
}

但是发现很久没有滚动了,导致日志文件相当大:

ls /data/log/cinder/cinder-volume.log* -lh

-rw-r--r-- 1 cinder cinder 208M Dec 17 16:05 /data/log/cinder/cinder-volume.log
-rw-r--r-- 1 cinder cinder  13M Nov 30 06:25 /data/log/cinder/cinder-volume.log.1
...
-rw-r--r-- 1 cinder cinder    0 Dec  1 06:37 /data/log/cinder/cinder-volume.log.1.gz
...
-rw-r--r--
查看详细

使用 epdb 远程调试 python

有很多时候不能直接使用 pdb/ipdb,比如多进程,比如后台服务。

这个时候可以用 epdb,远程调试工具

在服务端代码中加入:

import epdb; epdb.serve() #可以填一个参数 port,默认是8080

程序执行到这里会卡住,并且监听在8080端口等待连接。

另外开一个python终端

import epdb
epdb.connect()  # 两个参数 connect(host='localhost', port=8080)

之后就和本地 pdb 一样了。… 查看详细