Linux 路由表

route 可查看路由表:

1
2
3
4
5
# route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码
Flags 标记。
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口

Read More

Mac 读写 NTFS 硬盘

Mac 打开 NTFS 格式硬盘读写功能:

  1. diskutil list 找到磁盘名称,例如 Seagate

  2. sudo vi /etc/fstab,输入 LABEL=Seagate none ntfs rw,auto,nobrowse

  3. ln -s /Volumes/Seagate ~/Desktop/Seagate 创建快捷方式

React Native 上传图片

写一个通用的上传函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
async upload(url, data) {
let options = {
headers: {
'Content-Type': 'multipart/form-data'
},
method: 'POST'
}

options.body = new FormData();
for (let key in data) {
options.body.append(key, data[key]);
}

return fetch(requestUrl, options)
.then(response => {
return response.json()
.then(responseJson => {
//You put some checks here
return responseJson;
})
})
}

然后调用:

1
2
3
4
5
6
7
8
9
this.upload('http://xxx.com/api', {
file: {
uri: image.path,
type: image.mime,
name: image.name,
}
}).then(res => {

})

Portainer 管理容器

如果想管理 docker 容器,portainer 是非常好的管理工具:

1
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

指定网络:

1
2
3
4
5
6
7
8
docker run -d \
-p 9000:9000 \
--network=myportainers \
--restart=always \
--name my-portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer

Read More

React-Native 安卓调试

使用真机调试:

1
2
3
4
5
system_profiler SPUSBDataType # 找到Vendor ID
vim ~/.android/adb_usb.ini # 将上述ID复制进去
# 打开手机的调试模式
adb kill-server
adb devices

重启 adb 方式:

1
2
adb kill-server
adb start-server

使用 GenyMotion 虚拟机

  1. 进入 GenyMotion 官网,并下载 GenyMotion 虚拟机
  2. 申请个人免费使用版
  3. 下载 VirtualBox 虚拟机

在命令行启动虚拟设备:

1
emulator -avd avd_name [ {-option [value]} … ]

Read More

修改 docker 默认存储位置

docker 默认的存储位置是 /var/lib/docker,有三种方式可以实现修改 docker 默认存储位置的目的:

  1. 指定启动参数

    可以通过指定 docker 的启动参数 data-root 来设置 docker 的存储目录,这个文件一般位于 /lib/systemd/system/docker.service

    1
    2
    3
    4
    # 旧的写法
    ExecStart=/usr/bin/dockerd
    # 新的写法
    ExecStart=/usr/bin/dockerd --data-root /new_location/
那么当再使用 `docker volume create xxx` 创建新的数据卷时,存储的目录就变成了:`/new_location/volumes/{volume_name}/_data`

Read More

es-head 安装

用 docker 启动 es-head 服务:

1
2
docker run -d -p 9100:9100 --name es-head mobz/elasticsearch-head:5-alpine
docker run -d -p 9100:9100 --net elk --add-host es_host:$ES_HOST --name es-head mobz/elasticsearch-head:5-alpine

记得在 elasticsearch.yml 里面配置开启跨域支持:

1
2
3
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

查看服务器CPU个数

  1. 查看物理CPU的个数

    1
    cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
  1. 查看逻辑CPU的个数

    1
    cat /proc/cpuinfo | grep "processor" | wc -l
  1. 查看CPU是几核

    1
    cat /proc/cpuinfo | grep "cores" | uniq
  1. 查看CPU的主频

    1
    cat /proc/cpuinfo | grep MHz | uniq

子网掩码计算

查看路由表:

1
2
$ ip route list
169.254.0.0/16 dev eth0 scope link metric 1002

IP 后面的数字 16 是用于计算子网网段的,其与子网掩码的映射关系表为:

/数字 IP总数 子网掩码 C段个数
/30 4 255.255.255.252 1/64
/29 8 255.255.255.248 1/32
/28 16 255.255.255.240 1/16
/27 32 255.255.255.224 1/8
/26 64 255.255.255.192 1/4
/24 256 255.255.255.0 1
/23 512 255.255.254.0 2
/22 1024 255.255.252.0 4
/21 2048 255.255.248.0 8
/20 4096 255.255.240.0 16
/19 8192 255.255.224.0 32
/18 16384 255.255.192.0 64
/17 32768 255.255.128.0 128
/16 65536 255.255.0.0 256

Read More