linux随笔

一、centos7 service iptables save 不能用

解决方法:

systemctl stop firewalld          # 关闭centos7自带防火墙
yum install iptables-services     # 安装iptables-services软件包  
systemctl enable iptables         # 开机自启动iptables服务        
systemctl start iptables      # 开启iptables服务
这样就可以使用service  iptables save/stop/restart/start 功能管理iptables配置了

 

二、ping 域名 解析返回很慢

解决办法:

options rotate timeout:1 attempts:3 single-request-reopen

添加到/etc/resolv.conf 中

#释义: 循环查询 超时时间 重试次数 只收到一个IPV4应答或者只收到一个IPV6应答,重新开一个socket查询

https://blog.csdn.net/eqiang8271/article/details/8584467   详细解释

三、centos7修改主机名

https://blog.csdn.net/xuheng8600/article/details/79983927

 

四、supervisor 管理第三方进程遇到的进程最大打开文件数限制

minfds参数设置

 

五、centos7下安装docker-ce

yum install -y yum-utils  device-mapper-persistent-data  lvm2  

# yum-utils提供了yum-config-manager功能,而devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2

yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo     # 使用下面的命令来设置稳定的yum源 

yum install docker-ce -y   
# 安装docker-
ce

curl -L https://github.com/docker/compose/releases/download/1.23.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 
chmod +x /usr/local/bin/docker-compose

systemctl enable docker
systemctl start docker

安装docker-ce详细文档

六、解决 ModuleNotFoundError: No module named 'pip'

解决 ModuleNotFoundError: No module named 'pip'

七、docker实例日志设置

1、创建配置文件:/etc/docker/daemon.json

2、新增以下内容

{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "300m",
        "max-file": "3"
    }
}
max-size:日志文件大小 超过此大小则切到下一个日志文件
max-file:日志文件个数

3、重启docker  systemctl restart docker

 八、linux查看系统最后启动时间

cat /proc/uptime
输出: 5113396.94 575949.85
#第一数字即是系统已运行的时间5113396.94 秒,运用系统工具date即可算出系统启动时间

# 代码
[root@localhost ~]# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
2017-10-27 14:32:35

# 查看/proc/uptime文件计算系统运行时间
awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}' /proc/uptime

九、shell if 表达式

'''
文件表达式
    -e filename 如果 filename存在,则为真
    -d filename 如果 filename为目录,则为真 
    -f filename 如果 filename为常规文件,则为真
    -L filename 如果 filename为符号链接,则为真
    -r filename 如果 filename可读,则为真 
    -w filename 如果 filename可写,则为真 
    -x filename 如果 filename可执行,则为真
    -s filename 如果文件长度不为0,则为真
    -h filename 如果文件是软链接,则为真
    filename1 -nt filename2 如果 filename1比 filename2新,则为真。
    filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
    
整数变量表达式
    -eq 等于
    -ne 不等于
    -gt 大于
    -ge 大于等于
    -lt 小于
    -le 小于等于

字符串变量表达式
    if  [ $a = $b ]                 如果string1等于string2,则为真(字符串允许使用赋值号做等号)
    if  [ $string1 !=  $string2 ]   如果string1不等于string2,则为真       
    if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
    if  [ -z $string  ]             如果string 为空,则为真
    if  [ $sting ]                  如果string 非空,返回0 (和-n类似) 
    
逻辑非 !  条件表达式的相反
    if [ ! 表达式 ]
    if [ ! -d $num ]      如果不存在目录$num
    
逻辑与 –a  条件表达式的并列
    if [ 表达式1  –a  表达式2 ]   
    
逻辑或 -o   条件表达式的或
    if [ 表达式1  –o 表达式2 ]
'''

十、sed切割日志(指定时间段)

sed -n '/2017-12-14 21:00/,$p' game.log.2017-12-14 > ./21_00.log   #先打印出匹配行到行尾的所有内容
sed -i  '/2017-12-14 21:30/,$d' 21_00.log  # 删除匹配行到行尾的所有内容

!!!!最终得到2017-12-14 21:00-2017-12-14 21:30的内容

### 条件中的时间必须要存在于数据中

 十一、centos下查看命令所属软件包

查看netstat命令所属软件包

[root@localhost ~]#  yum provides netstat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
net-tools-2.0-0.24.20131004git.el7.x86_64 : Basic networking tools
Repo        : base
Matched from:
Filename    : /bin/netstat



net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /bin/netstat



net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /usr/bin/netstat

 十二、linux下编译安装Python3.6.4

# 安装依赖
yum install zlib zlib-devel openssl-devel -y

# 下载源码包
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz

# ./configure配置
./configure --prefix=/usr/local/python36 --with-ssl  --enable-optimizations

# 安装
make altinstall

PS:
######install  和 altinstall 的区别###########
# install 除了做 altinstall 外还会做 bininstall , maninstall 共三个动作,bininstall 就是在处理 Symbolic Link Chain 的相关事务, 而 maninstall 则是在产生 unversioned manual pages, 
# 所以,很明显的,不使用 bininstall 可以避免 python install 时 update link 的问题。如果使用make install,将会看到在系统中有两个不同版本的Python在/usr/bin/目录中。这将会导致很多问题,而且不好处理 ##################################### # 将python3.6命令加到系统环境变量里 vim /etc/profile export PATH=/usr/local/python36/bin/:$PATH # 测试是否安装成功 python3.6 -V pip3.6 -V

 十三、CentOS7下安装dnsmasq

'''
背景:
   大前提:测试和正式环境共用一套域名(如果是两套域名,客户端也要同步每次两个包,分别是测试和正式),如何使移动端(安卓)连接测试环境(ios可以使用surge,绑定host)
   dnsmasq完美解决了这一问题,dnsmasq服务器上只需要添加测试环境的解析,客户端使用dnschanger就可以轻松使用
'''

step1 安装

yum install -y bind-utils dnsmasq      #bind-utils是dig测试用的

step2 配置

  2.1 /etc/dnsmasq.conf

port=53
resolv-file=/etc/resolv-dnsmasq.conf
strict-order
listen-address=0.0.0.0,172.16.16.244      # 云主机外网ip是绑定的
addn-hosts=/etc/banner_add_hosts          # 类似于host文件
cache-size=150

  2.2 /etc/resolv-dnsmasq.conf    # 复制/etc/resolv.conf里的nameserver就行   上一级dns服务器的地址

nameserver 100.100.2.136
nameserver 100.100.2.138 

  2.3 /etc/banner_add_hosts    # A记录列表文件

#-------------test-----------
192.168.2.238 test.lichunke.org

step3 启动服务并配置iptables规则,放行dnsmasq端口

-A INPUT -p udp -m udp --dport 53 -j ACCEPT
systemctl enable dnsmasq.service
systemctl start dnsmasq.service

step4 测试

[kck@dev ~]$ dig test.lichunke.org @dnsmasq的地址
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> test.lichunke.org @dnsmasq的地址
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63076
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test.lichunke.org.        IN    A

;; ANSWER SECTION:
test.lichunke.org.    0    IN    A    192.168.2.238

;; Query time: 1 msec
;; SERVER: dnsmasq的地址#53(dnsmasq的地址)
;; WHEN: Tue Mar 24 10:15:33 CST 2020
;; MSG SIZE  rcvd: 62

step5 安卓端可使用dnschanger

  附上亲测无广告版的dnschanger

  链接:https://pan.baidu.com/s/15U82Qg7DNwcrVPgdT0q6AQ
  提取码:mpn3

 

posted @ 2018-10-15 09:48  碎梦重拾  阅读(461)  评论(0编辑  收藏  举报