Linux shell get local ip address

Linux shell中获得本机IP的相关命令, 你知道几个?

hostname -I     # 不同系统返回不一样, 有些可能需要cut一下
ifconfig eth0 | grep inet | grep -v inet6 | awk '{print $2}'
ifconfig | awk '/inet addr/{print substr($2,6)}'
ifconfig | sed -n 's/.*inet addr:\([0-9.]\+\)\s.*/\1/p'
ip a s|sed -ne '/127.0.0.1/!{s/^[ \t]*inet[ \t]*\([0-9.]\+\)\/.*$/\1/p}'
ifconfig | perl -nle 's/dr:(\S+)/print $1/e'
curl ifconfig.me      # 适用于有公网IP的情况

Elasticsearch常用命令

查看所有index
curl -X GET 'localhost:9200/_cat/indices?v'

查看某些名字的index
curl -X GET "localhost:9200/_cat/indices/INDEX_PATTERN-*?v&s=index"

查看按容量大小排序的index
curl -X GET "localhost:9200/_cat/indices?v&s=docs.count:desc"

删除某些index
curl -XDELETE http://10.18.4.77:9200/INDEX_NAME

查看节点状态(参考这篇文章.)

curl -X GET "localhost:9200/_cat/nodes?v"

curl -X GET "localhost:9200/_nodes/stats"
curl -X GET "localhost:9200/_nodes/nodeId1,nodeId2/stats"

# return just indices
curl -X GET "localhost:9200/_nodes/stats/indices"
# return just os and process
curl -X GET "localhost:9200/_nodes/stats/os,process"
# return just process for node with IP address 10.0.0.1
curl -X GET "localhost:9200/_nodes/10.0.0.1/stats/process"

# return just process
curl -X GET "localhost:9200/_nodes/process"
# same as above
curl -X GET "localhost:9200/_nodes/_all/process"
# return just jvm and process of only nodeId1 and nodeId2
curl -X GET "localhost:9200/_nodes/nodeId1,nodeId2/jvm,process"
# same as above
curl -X GET "localhost:9200/_nodes/nodeId1,nodeId2/info/jvm,process"
# return all the information of only nodeId1 and nodeId2
curl -X GET "localhost:9200/_nodes/nodeId1,nodeId2/_all"


# Fielddata summarised by node
curl -X GET "localhost:9200/_nodes/stats/indices/fielddata?fields=field1,field2"
# Fielddata summarised by node and index
curl -X GET "localhost:9200/_nodes/stats/indices/fielddata?level=indices&fields=field1,field2"
# Fielddata summarised by node, index, and shard
curl -X GET "localhost:9200/_nodes/stats/indices/fielddata?level=shards&fields=field1,field2"
# You can use wildcards for field names
curl -X GET "localhost:9200/_nodes/stats/indices/fielddata?fields=field*"

License相关

# 查看License
curl -XGET 'http://127.0.0.1:9200/_license'

# 删除License
curl -X DELETE "localhost:9200/_license"

# 导入License(本地的License文件为aaa.json), 如果启用了用户名/密码, 这里需要加上用户, 例如-u elastic
curl -XPUT 'http://127.0.0.1:9200/_xpack/license' -H "Content-Type: application/json" -d @aaa.json

docker pull offline

如果要在一个内网/网络很差的环境下运行docker pull, 应该会让人抓狂吧. 本文介绍一下怎么解决这个问题. 本文基于CentOS 7.

1, 使用Proxy

这是大多数人首先想到的方法. docker官网说export HTTPS_PROXY / export HTTP_PROXY以后运行docker pull即可使用代理, 但是我这里是无效的, 原因未知. 这里介绍一个解决办法:

$ vim /usr/lib/systemd/system/docker.service  #在[Service]段下添加如下2行
......
[Service]
Environment="HTTPS_PROXY=http://10.10.74.101:8888"
Environment="HTTP_PROXY=http://10.10.74.101:8888"
......
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service

然后再次运行docker pull就不会有问题了.

请注意: 使用本方法需要一个速度很棒的proxy_server . 如果你的proxy_server速度一般, 那么即使配置生效, 极慢的pull速度也会让你怀疑人生. 因此, 不妨考虑一下下面的方法.

2, 使用docker save/load进行镜像的导入导出

首先在一个网络不错的环境里, 进行docker pull, 并且将pull回来的docker save成一个image

$ docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.2
$ docker save -o es.img docker.elastic.co/elasticsearch/elasticsearch:6.6.2

然后将这个es.img文件拷贝到没有公网/网络很差的系统里

$ docker load -i es.img

Android上最好用的RSS阅读器gReader居然下架了

多年来一直使用The Old Reader(Web端) + gReader(APP端)的方式管理RSS资讯. 一直用的挺好, 最近才发现gReader居然下架了, 不勉有些失落. 一个APP的下架, 不仅影响了我的使用体验, 更是让人怀念以前使用gReader的岁月.

网络上的一些讨论:
Greader Pro has been removed from playstore
Popular RSS app gReader vanishes from the Play Store

这里依然能够下载到最新版的gReader, 不过已经是3年前更新的版本了, 估计大概率是作者不会再更新了吧. 除了怀念还是怀念.

kms激活win10企业版流程

以前一直使用https://hub.docker.com/r/luodaoyi/kms-server/提供的KMS激活服务的, 最近重新安装了Windows 10企业版, 发现激活不了, 提示为

Windows Script Host
正在激活 Windows(R), Enterprise edition
(73111121-5638-40f6-bc11-f1d7b0d64300)…
错误: 0xC004F074 软件授权服务报告无法激活计算机。无法联系任何密钥管理服务 (KMS)。有关其他信息,请参阅应用程序事件日志。

上网查了下, 可能原因有:
1, 计算机未联网;
2, 时区设置的不是UTC+8时区
3, KMS激活服务器不可用
经过各种排查, 发现1,2都排除了, 唯一可能的原因就是3了. 上网查了一下, 上文提供的KMS服务器(kms.luody.info)确实无法激活Win10企业版, 但是我却找到了一个新的可激活Win10企业版的KMS服务器(就是下文中的zh.us.to)

下面总结一下企业版的KMS激活流程.

1, 安装Windows 10企业版, 建议去https://msdn.itellyou.cn/下载, 注意下载的镜像名字里必须包含VL字样, 才能使用KMS激活. 比如这个Windows 10 (multi-edition) VL, Version 1709 (Updated Nov 2017) (x64) – DVD (Chinese-Simplified), 2018年8月实测此镜像安装时会出来3个版本, 比如Win10企业版/专业版等, 安装此选择安装企业版即可.

2, 激活. 出于安全考虑, 建议先激活再考虑安装其它软件. 这里我的激活方法为 继续阅读

路由器5G信道的选择

以网络知识了解的比较少,这里随便转载一点评论吧。

==========================================

http://koolshare.cn/thread-3578-1-1.html

2、部分设备搜索不到Wifi信号
*关于2.4G:有设备搜不到2.4G信号,此时请检查无线设置中的2.4G信号,信道设置在13可能会造成部分设备无法搜索到信号,通常建议使用1或6信道。此外,频道带宽也有可能影响信号的搜索,在不确定设备支持情况时请使用20Mhz,保证最大兼容。注意,此时2.4G的连接速率会比40Mhz低一半。
*关于5G:有支持5G的设备设备搜不到5G信号。部分用户购买的国际版手机可能工作在国内不支持的信道。遇到此类问题,请不要把信道设置为36-64;一般情况下正常终端应该都会支持149-165,您可以尝试将信道设置在此范围内然后再试。

3、关于无线信号设置的几点建议
2.4G通常作为无线覆盖主力,因此建议用wifi 分析仪 或者 Wifi Analytics之类的软件分析一下周围信道使用状况,尽量避免使用周围占用严重的信道。且建议用20Mhz频道带宽,尽量保证兼容性。
而5G作为高速连接使用的信号,建议使用80Mhz的频道带宽,增加速率,且5G信号中信道对传输速率相对影响较大,低频段信号穿墙能力好,但是速率仅略高于2.4G(36信道)因此,无法发挥5G信号本来的优势,153-157信号一般速率都能达到867Mbps以上,有需要高速接入的,就必须把信道设定为153或157这样的高频信号。 继续阅读