280篇 Default中的文章

CentOS7 之ifconfig, netstat 取代命令

官方wiki解释是

ifconfig 及 netstat 工具程序在 CentOS 5 及 6 的应用手册内被置标为降级已接近十年,而 Redhat 决定在 CentOS 7 不会缺省安装 net-tools 组件。其中一个转换的原因就是 ifconfig 不会显示界面卡所拥有的全部 IP 位置 —— 请改用 ip 指令。取而代之的工具是 ss 和 ip。假如你真的、真的很需要 ifconfig 和 netstat,你可执行 yum install net-tools。

那就熟悉用这些命令吧

ip 替代 ifconfig

ip a
ip route

ss 替代 netstat

比较好的格式化输出命令为:ss -ntulp | colume -t

Screen Shot 2019-08-20 at 22.22.58.png

还有 ss -nulp4 | cat -A

More ~

CentOS7.6 在VirtualBox/VMWare/Hyper-V安装后, NAT网络的网卡不能连网

这个问题原因是默认加载的虚拟nat网络网卡没有自动启动, 需要先获取设备名称 ip a,如ens33、eth0, enp0s3等这样的, 再ifup下就OK。 如ifup eth0

如果想让它开机就自己启动,可以修改/etc/sysconfig/network-scripts/ifcfg-eth0 , 其中eth0为上述查到的设备名。

ONBOOT=nono 修改为 yes, 或者运行下述命令

sed -i -e 's@^ONBOOT=no@ONBOOT=yes@' ifcfg-eth0

注意:执行上述命令前先 cd /etc/sysconfig/network-scripts/

More ~

CentOS7.6 国内镜像 962M 最小镜像

http://mirrors.huaweicloud.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.tuna.tsinghua.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.neusoft.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.zju.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirror.lzu.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.cqu.edu.cn/CentOS/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirror.bit.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirror.jdcloud.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://ftp.sjtu.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.cn99.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.163.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.njupt.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

More ~

centos7 nginx php 访问本地redis报权限问题

事情是这样:nginx 反向代理 php-fpm, php脚本中使用php-redis,实例化Redis对象,并connect本地的redis服务器。本地root账号运行php xxx.php是没有问题的,结果使用http访问时报Permission denied。
如果不提示错误,有可能是php.ini的配置项display_errors是关闭的。

最终找到原因是selinux的安全设置。可以用这个getsebool -a | grep httpd 查看到
httpd_can_network_connect --> off

可以通过下述命令修改
SELinux命令,临时配置,重启后失效
setsebool httpd_can_network_connect=1

写入配置文件的命令,重启后保留
setsebool -P httpd_can_network_connect 1

其它配置项参考 https://wiki.centos.org/zh/TipsAndTricks/SelinuxBooleans

More ~

npm离线安装包及依赖

虚机无法联外网场景下需要安装npm包,找到这个办法:

  1. 在本地安装npm-bundle
    npm install -g npm-bundle

  2. 在本地安装使用npm-bundle下载需要的npm包及依赖,如需要安装json-server, 一个伪server提供api测试场景。https://github.com/typicode/json-server
    npm-bundle json-server, 执行上述命令后会在当前文件目录新建 json-server-0.15.0.tgz

  3. 上传json-server-0.15.0.tgz到虚机中,执行安装
    npm install -g ./json-server-0.15.0.tgz

done.

More ~

python中执行shell command

python3 适用,执行shell命令

使用subprocess

import subprocess

def run(args):
    out = subprocess.Popen(args, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=True)
    stdout, stderr = out.communicate()
    return stdout

print(run(['ls', '-l']))

使用os.system

import os
os.system('ps -ef')

使用os.popen

import os
os.popen('ls')
More ~

JSONPath

##jsonpath的语法

符号 描述
$ 查询的根节点对象,用于表示一个json数据,可以是数组或对象
@ 过滤器断言(filter predicate)处理的当前节点对象,类似于java中的this字段
* 通配符,可以表示一个名字或数字
.. 可以理解为递归搜索,Deep scan. Available anywhere a name is required.
. 表示一个子节点
[‘’ (, ‘’)] 表示一个或多个子节点
[ (, )] 表示一个或多个数组下标
[start:end] 数组片段,区间为[start,end),不包含end
[?()] 过滤器表达式,表达式结果必须是boolean
More ~

docker images filter 镜像查询过滤

找出tag为<none>
docker images -f "dangling=true"

找出tag为<none>的, 只返回image id
docker images -f "dangling=true" -q

根据repository名称和tag模糊过滤,我验证时,如果repository有/或小数点符号,通过*是无法匹配的
docker images --filter=reference='busy*:*libc'

使用beforesince根据时间查找,实际上以repository的名字作为时间分隔,
docker images --filter "before=image1"

docker images --filter "since=image3"

此外还有label, label=<key> or label=<key>=<value>
docker images --filter "label=com.example.version" , 这条我用docker image inspect <image id>,发现几个image的label都是空的,这个有待研究。

More ~