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 管理第三方进程遇到的进程最大打开文件数限制
五、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
六、解决 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
转载请注明出处:http://www.cnblogs.com/lichunke/