运维工作常见问题处理74-100(三)

问题74、-bash: /usr/bin/wget: Permission denied

step1:chmod +x /usr/bin/wget chmod: changing permissions of ‘/usr/bin/wget’: Operation not permitted
step2:chattr -i /usr/bin/wget
step3:chmod +x /usr/bin/wget

问题75、lvm命令

https://blog.51cto.com/meiling/2062764
https://blog.csdn.net/lilygg/article/details/84035315
yum -y install lvm2

pvcreate 磁盘盘符名 #将磁盘加入物理卷中
vgcreate 卷组名 磁盘盘符名 #创建卷组
lvcrate -L size -n 逻辑卷名 卷组名 #创建多少大小的逻辑卷
lvcrate -l +num%FREE -n 逻辑卷名 卷组名 #创建卷组剩余存储的百分比的逻辑卷
lvcrate -l num%VG -n 逻辑卷名 卷组名 #创建卷组剩余存储的百分比的逻辑卷
lvextend -L +size /dev/卷组名/逻辑卷名 #给逻辑卷扩容多大的存储(增加多少存储)
mkfs.xfs /dev/卷组名/逻辑卷名 #将逻辑卷格式化为xfs文件系统
mkfs -t xfs /dev/卷组名/逻辑卷名 #将逻辑卷格式化为xfs文件系统
mkfs.ext3 /dev/卷组名/逻辑卷名 #将逻辑卷格式化为ext3文件系统
mkfs -t ext3 /dev /卷组名/逻辑卷名 #将逻辑卷格式化为ext3文件系统
mkfs.ext4 /dev/卷组名/逻辑卷名 #将逻辑卷格式化为ext4文件系统
mkfs -t ext4 /dev /卷组名/逻辑卷名 #将逻辑卷格式化为ext4文件系统

pvcreate /dev/sdb #将物理的sdb磁盘加入到物理卷
vgcreate vg01 /dev/sdb #创建卷组vg01
vgextend vg01 /dev/sdc #扩容卷组vg01
lvm创建:
lvcreate -L 2048G -n lv01 vg01 #创建一个大小为2T卷名为lv01的2逻辑卷
lvm扩容:
lvextend -l +100%FREE /dev/vg01/lv01 #将卷组的剩余存储扩容给lv01这个卷
lvextend -r -l +100%FREE /dev/vg01/lv01 #将卷组的剩余存储扩容给lv01这个卷,不需要使用xfs_growfs,直接可以看到(centos7.4以上可以使用此命令)
lvextend -l +100%VG /dev/vg01/lv01 #将卷组的剩余存储扩容给lv01这个卷
lvextend -l 50%VG /dev/vg01/lv01 #将卷组的剩余存储扩容给lv01这个卷
lvextend -L +10G /dev/vg01/lv01 #给lv01这个逻辑卷在扩容10G的空间
lvm格式化:
mkfs.ext4 /dev/vg01/lv01 #逻辑卷格式化为etx4文件系统
mkfs.xfs /dev/vg01/lv01 #逻辑卷格式化为xfs文件系统
resize2fs /dev/vg01/lv01 #用于扩容后告知内核,对于ext2/3/4文件系统类型的,用resize2fs命令
xfs_growfs /dev/vg01/lv01 #用于扩容后告知内核,对于xfs文件系统类型的,用xfs_growfs命令

fdisk分区做lvm卷
方法一:硬盘sdb上新建LVM分区,然后格式化分区
fdisk -l 查看磁盘
fdisk /dev/sdb 进行分区
n #创建一个新的分区
p/e #创建主分区/扩展分区(建议选p,创建主分区),注意:即使是另一种情况,扩展sda,也需要对sda重新分区,Partition number (1-4)时输入对应的数值。
1 #创建第一块分区,之后选择开始磁道,按照默认模式开始,使用整个硬盘空间
之后按两次回车
w #创建好后按w生效退出

将新的分区,格式化即可
mkfs.xfs /dev/sdb1
方法二:把分区改为LVM格式,然后格式化分区
fdisk -l 查看磁盘
fdisk /dev/sdb 进行分区
p #打印分区信息
t #切换分区的系统id
1 #选择分区(默认为1)
L #列出分区的系统类型id
8e #将分区改为lvm卷
w #保存分区信息

partprobe /dev/sdb #查看某个系统分区有无变化,使kernel重新读取分区信息
mkfs.ext3 /dev/sdb #格式化文件系统

问题76、可以通过ngxin的ssl模块对某些连接进行加密
问题77、安装docker-compose

第一种:
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install docker-compose
docker-compose version
第二种:
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose

curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64-o /usr/local/bin/docker-compose
第三种:
wget https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64

相关命令
docker-compose
-f 指定使用yaml文件的位置
ps 显示所有容器的信息
restart 重启容器
logs 查看日志信息
config -q 验证yaml文件是否正确
stop 停止容器
start 启动容器
up -d 启动容器项目
pause 暂停容器
unpause 恢复容器
rm 删除容器

扫描二维码关注公众号,回复: 13303441 查看本文章
问题78、挖矿处理

https://blog.csdn.net/hgx13467479678/article/details/82347473
问题79、linux命令查看服务器的型号、序列号、内存插槽数
1.查看服务器型号、序列号
2.Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大
dmidecode|grep -A5 “Memory Device”|grep Size|grep -v Range
3.Linux 查看内存的频率
dmidecode|grep -A16 “Memory Device”|grep ‘Speed’

问题79、tar加密解密

tar -czvf - file | openssl des3 -salt -k password -out /path/to/file.tar.gz #加密
openssl des3 -d -k password -salt -in /path/to/file.tar.gz | tar xzf - #解密
eg:
tar -czvf - 1.txt | openssl des3 -salt -k zkwg123 -out 1.tar.gz #加密
openssl des3 -d -k zkwg123 -salt -in 1.tar.gz | tar -xzf - #解密

问题80、docker安装

step1:下载yum源
wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all && yum makecache
yum install -y epel-release
wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
step2:下载旧的docker
yum remove docker docker-common docker-selinux docker-engine
step3:安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
step4:设置docker的yun源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推荐使用
yum list docker-ce --showduplicates | sort -r #查看仓库中所有docker版本
yum install docker-ce #安装的是最新稳定版
yum install docker-ce-19.03.0-3.el7 #安装指定版本的docker
step5:启动并验证
systemctl start docker && systemctl enable docker
docker version
step6:docker创建软连接,避免占用/目录空间
service docker stop #停止docker
/var/lib/docker 到/u01/isi/ #将docker的数据移到/u01/isi
ln -s /u01/isi/docker /var/lib/docker #创建软连接
service docker restart #启动docker服务
step7:配置镜像源
cat /etc/docker/daemon.json #编辑文件
{
“registry-mirrors”: [“https://registry.docker-cn.com”,“http://hub-mirror.c.163.com”,“https://docker.mirrors.ustc.edu.cn”,“https://3laho3y3.mirror.aliyuncs.com”],
“insecure-registries”: [“192.168.16.5”],
“disable-legacy-registry”: true
}
#registry-mirrors 国内加速仓库
#insecure-registries:允许访问给定的非安全仓库服务,即私有仓库
#disable-legacy-registry:是否允许访问旧版本的镜像仓库服务器
step8:配置普通用户权限给docker
groupadd docker #创建docker组
gpasswd -a isi docker #将当前用户添加到docker这种,当前用户为isi
usermod -a -G docker isi #将当前用户添加到docker这种,当前用户为isi
systemctl restart docker #重新启动docker服务
newgrp docke #更新用户组
step9:docker-compose安装
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

pip install docker-compose
docker-compose -v #若显示没有命令,可以通过find来查找
step10:docker磁盘空间目录
docker system df #查看Docker的磁盘使用情况
docker system prune #用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
docker system prune -a #清理得更加彻底,可以将没有容器使用Docker镜像都删掉
docker ps -a | grep Exit | cut -d ’ ’ -f 1 | xargs docker rm #删除所有关闭的容器
docker volume rm $(docker volume ls -qf dangling=true) #删除所有dangling数据卷(即无用的Volume)
docker rmi $(docker images | grep “^” | awk “{print $3}”) #删除所有dangling镜像(即无tag的镜像)

问题81、dcoker中部署gitlab服务

mkdir /etc/gitlab
mkdir /var/log/gitlab
mkdir /var/opt/gitlab
docker pull gitlab/gitlab-ce
mkdir -p /home/GitLab/{config,data,log}
docker run -itd -h 192.168.16.119 -p 443:443 -p 80:80 -p 222:22 --name GitLab --restart always -v /home/GitLab/config:/etc/gitlab -v /home/GitLab/log:/var/log/gitlab -v /home/GitLab/data:/var/opt/gitlab gitlab/gitlab-ce
#-d:后台运行
#-p:将容器内部端口向外映射
#–name:命名容器名称
#-v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

docker search gitlab-ce
docker pull twang2218/gitlab-ce-zh
mkdir -p /home/gitlab/{config,data,log}
docker run -itd -p 8443:443 -p 8088:80 -p 8022:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/log:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh

问题82、crontab定时任务自动不能执行,手动可以执行的解决办法

在crontab文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量。
不要假定cron知道所需要的特殊环境,它其实并不知道。所以用户要保证在shell脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。以下三点需要注意:

  1. 脚本中涉及文件路径时写绝对路径;
  2. 脚本执行要用到环境变量时,通过source命令显式引入,例如:
    #!/bin/sh
    source/etc/profile
  3. 当手动执行脚本没问题,但是crontab不执行时,可以尝试在crontab中直接引入环境变量解决问题,例如:
    0****./etc/profile;/bin/sh/path/to/myscript.sh
    好了,这个问题就这样解决了,反正是加上环境变量没错的。
问题83、网络工具使用tcptraceroute,tcptraceroute,tcping ,PsPing ,nload,iftop,netcat,nmap

https://www.cnblogs.com/focusonepoint/p/7771214.html
1.traceroute:显示数据包到主机间的路径。它默认发送的数据包大小是40字节。
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的
[root@codo ~]# traceroute baidu.com
traceroute to baidu.com (39.156.69.79), 30 hops max, 60 byte packets
1 gateway (192.168.171.2) 0.558 ms 0.432 ms 0.316 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
2.tcptraceroute:现代网络广泛使用防火墙,导致传统路由跟踪工具发出的(ICMP应答(ICMP echo)或UDP)数据包都被过滤掉了,所以无法进行完整的路由跟踪。尽管如此,许多情况下,防火墙会准许反向(inbound)TCP数据包通过防火墙到达指定端口,这些端口是主机内防火墙背后的一些程序和外界连接用的。通过发送TCP SYN数据包来代替UDP或者ICMP应答数据包,tcptraceroute可以穿透大多数防火墙
[root@codo ~]# tcptraceroute baidu.com
traceroute to baidu.com (220.181.38.148), 30 hops max, 60 byte packets
1 gateway (192.168.171.2) 0.255 ms 0.324 ms 0.168 ms
2 220.181.38.148 (220.181.38.148) <syn,ack> 42.186 ms 41.925 ms 25.602 ms
对比 traceroute,tcptraceroute最终到达了目的地,而traceroute 没有到达目的地。并且tcptraceroute将最终响应的那个设备标记为open
3.tcping
ping 命令只能检查 IP 的连通性或网络连接速度,无法具体到某个端口;
ping 命令使用 ICMP 协议,跟 IP 协议属于同一层次(网络层);
ping 命令在每次发数据包后都会等对方返回数据包。可以禁止 ICMP 协议,此时对方收到消息后不会回复;
端口是传输层 TCP/UDP 协议的概念,比如常用的 web 端口指的是 TCP 的 80 端口。使用网络层的 ping 命令是无法指定端口的。ping 不通,可能是服务器确实没有开放这个端口,或是禁 ping 了。
telnet 命令使用 TCP 协议,一般用于远程登录(明文传输,不安全,已经被 SSH 替代了),也可以查看指定端口的连通性,语法如下:telnet IP Port
tcping 命令使用 TCP 协议(传输层),也可以看 ping 值,即使源地址禁 ping 也可以通过 tcping 来监控服务器网络状态。
tcping命令解析
-t 不停的发送数据包直到 按ctrl+c 停止,可以用此命令做小破坏;
-n 5 一次发送 5 个数据包,默认一次发送4个 : tecping -n 5 www.baidu.com 会tcping 百度5次,也可以跟其他数字;
-i 5 5秒发送一个数据包 : tcping -i 5 www.baidu.com 每间隔5秒tcping一次百度,也可以跟其他数字,也可以跟小数 :tcping -i 0.5 www.baidu.com 每隔 0.5秒tcping 一次百度;
-w 0.5 tcping不通的等待时间 tcping通则忽略次参数 : tcping -w 0.5 www.baidu.com 如果ping不同会等待0.5秒,默认tcping不通等2s,tcping 通则忽略此参数;
-d 在每行前面显示详细日期时间;
-b 1-4 ping的时候会响铃,参数4会一直响铃 : tcping -b 4 www.baidu.com每显示一行内容就会响铃一次,默认会响铃4次
-s ping通就立即退出
-v 显示版本信息

tcping 192.168.16.18 80

4.psping
PsPing(命令行ping工具解)是基于windows操作系统开发的一款命令行ping软件。能够快捷方便的进行ping命令网络诊断,从而判断出网络连接的流畅与否
单独输入psping,可见psping四个主要功能的帮助命令,四个功能分别是ICMP Ping、TCP Ping、延迟测试、带宽测试。
1)ICMP Ping
psping -4 -n 10 -w 2 -h 10 180.76.76.76
-4代表强制使用IPv4联机
-n代表正式ping包的个数,或者定义使用秒s作为单位
-w代表热身ping包的个数,即正式测试前先进行多少次热身测试连接
-h代表最小与最大延迟毫秒数
其他参数介绍
-i代表间隔秒数,快ping则设置为0
-l代表ping包大小,默认单位是byte。使用 k为单位代表kilobytes(KB),使用m为单位代表megabytes(MB)
-q代表ping过程中不一个个输出值
-t代表长ping不停
-6代表强制使用IPv6联机

psping -i 0 -4 -n 10 -w 2 -h 10 -q 180.76.76.76
由于设置了-i 0这个参数,瞬间出结果
设置了-q则不再显示中间的输出过程,直接输出结果

2)TCP Ping功能
psping -n 10 -w 2 -h 10 42.159.27.213:443
与ping功能相同的参数定义:
-n代表正式ping包的个数,或者定义使用秒s作为单位
-w代表热身ping包的个数,即正式测试前先进行多少次热身测试连接
-h代表最小与最大延迟毫秒数
-i代表间隔秒数,快ping则设置为0
-l代表ping包大小,默认单位是byte。使用 k为单位代表kilobytes(KB),使用m为单位代表megabytes(MB)
-q代表ping过程中不一个个输出值
-t代表长ping不停
-4代表强制使用IPv4联机
-6代表强制使用IPv6联机

3)延迟测试
psping -l 1500 -n 300 -h 10 42.159.27.213:8081
-l 1500代表我发送的数据包大小为每个1500 Bytes,TCP联机在Layer 2 Ethernet中的MTU (Maximum Transmission Unit)通常以1500 Bytes为一个单位
-n 300代表放松300个封包
那么300*1500Bytes=450000Bytes,绝大多数在5ms内响应

4)带宽测试
psping -b -l 1500 -n 15000 42.159.27.213:8081
-b代表将进行带宽测试
-l 1500代表使用大小1500Bytes的数据包
-n 15000代表使用15000个数据包

5.nload
安装
yum install -y gcc gcc-c++ ncurses-devel wget
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
tar zxvf nload-0.7.4.tar.gz cd nload-0.7.4
./configure
make -j 4
make install
使用
nload的显示信息也是支持设置显示单位的。我们可以加入-u 参数,其后可以跟h(表示自动格式化为易读的单位)、b(表示为Bit/s)、k(表示为KBit/s)、m(表示为MBit/s),g(表示为GBit/s)。例如下面我们输入如命令"nload -u m",就是以MB为单位。
默认上边Incoming是进入网卡的流量;
默认下边Outgoing是网卡出去的流量;
默认右边(Curr当前流量)、(Avg平均流量)、(Min最小流量)、(Max最大流量)、(Ttl流量统计)
nload 网卡名称 -u 以什么单位显示
nload ens33 -u m

6.iftop
安装
yum install libpcap libpcap-devel ncurses ncurses-devel wget
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre4.tar.gz
tar xzf iftop-1.0pre4.tar.gz
cd iftop-1.0pre4
./configure
make -j 4
make install
使用
完成后直接输入iftop即可,这里还有一点提醒大家注意,有些服务器配置时候默认网卡没有设置为外网卡,导致了iftop后数据为空,这个时候你可以执行ip addr命令获取服务器所有的网卡名称,找到对应外网的网卡唯一识别,然后输入命令如下
iftop -i eth0
参数介绍
TX:发送流量
RX:接收流量
TOTAL:总流量
cumm:运行iftop以来的总流量
peak:峰值流量
rates:分别表示过去 2s 10s 40s时间内网卡总的平均流量

iftop常用参数摘录
-i设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 192.168.1.0/24或# iftop -F 192.168.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
进入iftop画面后的一些操作命令(注意大小写)
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按q退出监控。

7.netcat
linux
下载
wget https://nchc.dl.sourceforge.net/project/netcat/netcat/0.7.1/netcat-0.7.1.tar.gz
tar -xf netcat-0.7.1.tar.gz
./configure --prefix=/usr/local/nc
make && make install
配置环境变量
cat /etc/profile
export NC=/usr/local/nc
export PATH= P A T H : PATH: PATH:NC/bin
source /etc/profile
nc参数使用
1) -l
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
2) -p
暂未用到(老版本的nc可能需要在端口号前加-p参数,下面测试环境是centos6.6,nc版本是nc-1.84,未用到-p参数)
3) -s
指定发送数据的源IP地址,适用于多网卡机
4) -u
指定nc使用UDP协议,默认为TCP
5) -v
输出交互或出错信息,新手调试时尤为有用
6)-w
超时秒数,后面跟数字
7)-z
表示zero,表示扫描时不发送任何数据
使用(具体使用可以参考nc --help)
nc -uv 192.168.16.112 9007 (回车后输入任意字符查看返回值)

windows
https://eternallybored.org/misc/netcat/netcat-win32-1.12.zip
解压后将netcat-win32-1.12目录下的nc64.exe和nc.exe复制到C:\Windows\System32的文件夹下
打开cmd,输入nc 命令OK
与linux稍微不同,发送消息:nc -l -p 6789

8.端口扫描工具nmap
下载
https://nmap.org/dist/nmap-7.80.tar.bz2
安装
bzip2 -cd nmap-7.80.tar.bz2 | tar xvf -
cd nmap-7.80
./configure
make -j 4
make install
使用
nmap 192.168.16.112 -sU -p 7000-10000 扫7000-10000之间的UDP端口
nmap 192.168.16.112 -sU -p 53 扫53之间的UDP端口

问题84、学习链接

https://blog.csdn.net/catoop/article/details/89812878

问题85、linux 将自己的服务添加到系统service服务

简单说一下service运行过程. 以iptables为例: service iptables start
首先,service 会去/etc/init.d下寻找iptables脚本, start是iptables脚本里的一个参数(你可以去查看networking这个脚本支持的参数)
然后告诉系统运行iptables这个脚本,剩下的事情就交给iptables脚本去坐了,事实就是这么简单。
至此,你们应该知道如何添加一个service命令了吧

编写一个脚本,然后把它放在/etc/init.d这个目录下,再用service + 脚本名字 运行即可。如果是要开机自动启动那就得用chkconfig命令了

问题86、查看网页明文密码,隐藏网页上的模块

输入密码栏按F12,ctrl+shift+c选择块元素,将<input type="password"中的password改成text即可看到明文密码
输入密码栏按F12,ctrl+shift+c选择块元素,将对应标签的后面加空格加hidden即可隐藏

问题87、ElasticSearch磁盘空间阈值设置

磁盘空间阈值设置:
curl -XPUT http://192.168.1.86:9200/_cluster/settings -d ‘{
“transient” : {
“cluster.routing.allocation.disk.watermark.low” : “80%”,
“cluster.routing.allocation.disk.watermark.high” : “85%”,
“cluster.info.update.interval” : “1m”
}
}’
或者
curl -XPUT http://192.168.1.86:9200/_cluster/settings -d ‘{
“transient” : {
“cluster.routing.allocation.disk.watermark.low” : “80%”,
“cluster.routing.allocation.disk.watermark.high” : “50gb”,
“cluster.info.update.interval” : “1m”
}
}’
硬盘达到水位,禁止index时,如何恢复:
curl -XPUT localhost:9200/_cluster/settings -d ‘{
“index.blocks.read_only_allow_delete”: null
}’

参考:https://www.elastic.co/guide/en/elasticsearch/reference/1.7/disk.html

cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: .90
cluster.routing.allocation.disk.watermark.high: .95
indices.breaker.fielddata.limit: 70%
indices.fielddata.cache.size: 60%

问题88、linux僵尸进程

ps -A -ostat,ppid,pid,cmd |grep -e ‘1’ 定位僵尸进程以及该僵尸进程的父进程
-A 参数列出所有进程
-o 自定义输出字段 stat(状态)、ppid(进程父id)、pid(进程id)、cmd(命令)
Kill -HUP 僵尸进程ID来杀死僵尸进程
kill -9 id

问题89、es优化

https://blog.csdn.net/qq_16164711/article/details/95477299
https://blog.csdn.net/warrah/article/details/89354469

https://www.cnblogs.com/kevingrace/p/10671063.html

问题90、linux mail命令用法

三种常用格式发信
mail -s test [email protected] #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

echo “邮件内容”|mail -s 主题 [email protected] #第二种方法,管道的形式

mail -s 主题 [email protected] < file #第三种方法,以file的内容为邮件内容发信,需要将正文的内容提前写到file文件中
mail -s 主题 -c [email protected] [email protected] < file #多个用户发送邮件
echo “邮件内容” | mail -s “主题” -a 附件名 [email protected]

问题91、查看cpu核数,内存,主机名,磁盘大小,操作系统位数,内核版本,是物理机还是虚拟机,系统文件打开的数量

查询系统具有多少个逻辑核:
cat /proc/cpuinfo |grep “processor”|sort -u|wc -l
查询系统CPU的物理核数:
cat /proc/cpuinfo | grep “cpu cores” | uniq
查询系统CPU是否启用超线程:
cat /proc/cpuinfo | grep -e “cpu cores” -e “siblings” | sort | uniq
如果cpu cores的数和siblings一致,则没有,否则超线程
查询系统CPU的个数:
cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l
查询内存:
free -m 或者 free -g
查询主机:
hostname
查询磁盘:
fdisk -l
操作系统位数
uname -a 如果有显示x86_64,则表示是64位;getconf LONG_BIT;uname -m ;file /lib/systemd/systemd;arch 均可以
uname -r
查询是物理机还是虚拟机
dmidecode | grep “Product Name”
系统文件打开的数量
echo “* soft nofile 65536” /etc/security/limits.conf
echo “* hard nofile 65536” /etc/security/limits.conf

问题92、CentOS7 编译安装 FFmpeg 4.2.1

参考链接:https://blog.csdn.net/semian7633/article/details/102902048

4.2.1 was released on 2019-09-07. It is the latest stable FFmpeg release from the 4.2.1 release branch, which was cut from master on 2019-07-21.
It includes the following library versions:
libavutil 56. 31.100
libavcodec 58. 54.100
libavformat 58. 29.100
libavdevice 58. 8.100
libavfilter 7. 57.100
libswscale 5. 5.100
libswresample 3. 5.100
libpostproc 55. 5.100
下载FFmpeg 4.2.1
wget http://ffmpeg.org/releases/ffmpeg-4.2.1.tar.xz
安装yasm
yum -y install yasm
解压并编译
tar -xf ffmpeg-4.2.1.tar.xz
cd ffmpeg-4.2.1
./configure
make -j 4 && make install
这步操作结束之后,运行ffmpeg命令可能会出现找不到路径/usr/bin/ffmpeg的提示,此时,可以将编译好的文件(在/usr/local/bin/ffmpeg)复制到/usr/bin目录下。结束上述操作后输入ffmpeg,出现以下内容:
ffmpeg回车后会出现以下几个库
libavutil
libavcodec
libavformat
libavdevice
libavfilter
libswscale
libswresample

问题93、setfacl命令的基本用法

1、setfacl的用途
setfacl命令可以用来细分linux下的文件权限。
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
换句话说,setfacl可以更精确的控制权限的分配。
比如:让某一个用户对某一个文件具有某种权限。

这种独立于传统的u,g,o的rwx权限之外的具体权限设置叫ACL(Access Control List)
ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。
如,某一个文件,不让单一的某个用户访问。

2、setfacl的用法
用法: setfacl [-bkndRLP] { -m|-M|-x|-X … } file …
-m, --modify-acl 更改文件的访问控制列表
-M, --modify-file=file 从文件读取访问控制列表条目更改
-x, --remove=acl 根据文件中访问控制列表移除条目
-X, --remove-file=file 从文件读取访问控制列表条目并删除
-b, --remove-all 删除所有扩展访问控制列表条目
-k, --remove-default 移除默认访问控制列表
–set=acl 设定替换当前的文件访问控制列表
–set-file=file 从文件中读取访问控制列表条目设定
–mask 重新计算有效权限掩码
-n, --no-mask 不重新计算有效权限掩码
-d, --default 应用到默认访问控制列表的操作
-R, --recursive 递归操作子目录
-L, --logical 依照系统逻辑,跟随符号链接
-P, --physical 依照自然逻辑,不跟随符号链接
–restore=file 恢复访问控制列表,和“getfacl -R”作用相反
–test 测试模式,并不真正修改访问控制列表属性
-v, --version 显示版本并退出
-h, --help 显示本帮助信息

3、几个例子
getfacl test #查看test目录的acl权限
setfacl -m u:zhangying:rw- test #修改文件的acl权限,添加一个用户权限,给zhangying这个用户的读写权限
setfacl -m g:zhangsan:r-x test #添加一个组,给zhangsan这个组的读和执行权限

设置组的话只需要把setfacl -m u:zhangsan:rwx 中的u改为g即可,大致差不多。

在使用-R时,记得放在-m前面,否则不可以地

使用-d的话,就会把默认的都加上去,针对目录哦。

问题94、一键生成公钥

echo -e “\n\n\n” | ssh-keygen -N “”

问题95、yum源优先级工具

yun -y install yum-priorities
若存在多个yum源,且可能含有相同的软件时,yum管理器会应用该工具来分辨安装软件时采用哪个yum源;若安装某个软件,会依次安装优先级来查找
确定/etc/yum/pluginconf.d/priorities.conf有如下内容:
[main]
enabled = 1

问题96、yum源优先级工具

查看系统中已经启动的服务
yum -y install ntsysv
然后直接按ntsysv会进入图形界面

问题97、加强内核对抗SYN FLOOD的能力

echo “net.ipv4.tcp_syscookies” >> /etc/sysctl.conf
sysctl -p

问题98、优化

mysql篇
mysql在raid5磁盘阵列上的效率很一般,建议使用raid10;若资金允许,可以用ssd代替sas硬盘做raid10
强烈首选64位的系统,内存超过16GB
mysql调优脚本tuning-primer
wget http://www.day32.com/MySQL/tuning-primer.sh
chmod 755 tuning-primer.sh
chown mysql:mysql tuning-primer.sh

问题99、rsyslog配置中央服务器收集日志

参考链接:https://blog.51cto.com/11555417/2163289
rsyslog.conf的说明如下所示:(关键配置)
|------------------------------------------------------------------------------------------------------------------------|
|#### MODULES #### |
|KaTeX parse error: Expected 'EOF', got '#' at position 18: …dLoad imuxsock #̲ 提供本地系统日志支持(如…ModLoad imjournal # 提供对systemd journal的访问 |
|#KaTeX parse error: Expected 'EOF', got '#' at position 16: ModLoad imklog #̲ 提供内核日志支持(相当于sy…ModLoad immark # 提供-MARK-消息功能 |
|#### GLOBAL DIRECTIVES #### |
|# Use default timestamp format 使用默认日志的时间戳格式 |
|KaTeX parse error: Expected 'EOF', got '#' at position 144: … | |#̲ Include all co…IncludeConfig /etc/rsyslog.d/.conf |
|#### RULES #### |
|# Log all kernel messages to the console. 将所有的内核消息记录到控制台 |
|# Logging much else clutters up the screen. |
|#kern.
/dev/console |
|# Log anything (except mail) of level info or higher. 将info或更高级别的消息送到/var/log/messages,除了/mail/news/authpriv/cron之外 |
|# Don’t log private authentication messages! 其中是通配符,代表任何设备:none表示不对任何级别的消息进行记录 |
|
.info;mail.none;authpriv.none;cron.none /var/log/messages |
|# The authpriv file has restricted access. 将authpirv设备的任何级别的信息记录到/var/log/secure中 |
|authpriv.* /var/log/secure |
|# Log all the mail messages in one place. 将mail设备中的任何级别信息记录到/var/log/mailog文件中 |
|mail.* -/var/log/maillog |
|# Log cron stuff 将cron设备的任何级别的信息记录到/var/log/cron文件中 |
|cron.* /var/log/cron |
|# Everybody gets emergency messages 将任何设备的emerg级别或者更高的消息发送给所有正在系统上用户 |
|.emerg :omusrmsg: |
|# Save news errors of level crit and higher in a special file. 将uucp和news设备的crint级别或者更高级别消息记录到/var/log/spooler文件中|
|uucp,news.crit /var/log/spooler |
|# Save boot messages also to boot.log 将和本地系统启动相关的信息记录到/var/log/boot.log文件中 |
|local7.* /var/log/boot.log |

远程日志服务器
为了方便日志监控并防止日志被篡改、通常在工作网络中会架设中央日志服务器用于存放各个服务器的日志。rsyslog支持日志的远程发送和接受
rsyslog客户:负责发送日志到中央日志服务器,支持udp,tcp,relp协议
rsyslog服务器:负责接受从rsyslog客户发送的日志并存储在rsyslog服务器,支持日志文件存储、数据库存储
以下为rsyslog客户与rsyslgo服务器使用到的模块与配置语法

角色 功能 RPM包名 模块 配置语法
使用udp协议发送 rsyslog - . @hostname:514
------------------------ -------------- ------- ---------------------------------------------
客户端 使用tcp协议发送 rsyslog - . @@hostname:514
------------------------ -------------- ------- ---------------------------------------------
使用relp协议发送 rsyslog-relp omrelp . :omrelp:hostnames:2514
--------------- ------------------------ -------------- ------- ---------------------------------------------
使用udp协议接收 rsyslog imudp $ModLoad imudp
$InputUDPServerRun 514
------------------------ -------------- ------- ---------------------------------------------
使用tcp协议接收 rsyslog imtcp $ModLoad imtcp
$InputTCPServerRun 514
服务器 ------------------------ -------------- ------- ---------------------------------------------
使用relp协议接收 rsyslog-relp imrelp $ModLoad imrelp
$InputRELPServerRun 2514
------------------------ -------------- ------- ---------------------------------------------
将日志记录到MySQL ryslog-mysql ommysql $ModLoad ommysql
.:ommysql:DBserver,DBname,DBuser,DBpasswd
------------------------ -------------- ------- ---------------------------------------------
将日志记录到PostgreSQL rsyslog-pgsql ompgsql $ModLoad ompgsql
.:ompgsql:DBserver,DBname,DBuser,DBpasswd

例如:
#已经配置好日志服务器172.31.101.52上的rsyslog(splunk)
#配置客户端rsyslog发送tcp端口日志,通过修改配置文件/etc/rsyslog.config上指定tcp传输的日志
echo ‘mail.info @@172.31.101.52:514’>>/etc/rsyslog.conf #配置文件中追加发送邮件相关的日志,级别为值得报告的信息
sysctemctl restart rsyslog #重启syslog
#测试,在客户端执行logger命令进行测试
logger -p mail.info “this is a test for rmote log.” #发送测试消息

问题100、PyCharm设置自动加载模块

点击左上角的"File"-“Settings”-“Project:study”(为自己创建的项目名)-“Project Interpreter”-“设置”(齿轮按钮)-“Add”-“Existing enviroment”-找到Python.exe路径,然后点击ok即可

都到这儿了,更多文章,详见个人微信公众号ALL In Linux,来扫一扫吧!
在这里插入图片描述


  1. Zz ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_44729138/article/details/116047606