libpcre.so.1: cannot open shared object file: No such file or directory

解决:

#查看libpcre
find / -name libpcre.so.*
#/lib64/libpcre.so.0.0.1
#/lib64/libpcre.so.0
#/root/pcre-8.32/.libs/libpcre.so.1.2.0
#/root/pcre-8.32/.libs/libpcre.so
#/root/pcre-8.32/.libs/libpcre.so.1
#/usr/lib64/libpcre.so.1
#/usr/local/lib/libpcre.so.1.2.0
#/usr/local/lib/libpcre.so
#/usr/local/lib/libpcre.so.1

#添加软连接
ln -s /usr/local/lib/libpcre.so.1 /usr/lib64/libpcre.so.1
或者
ln -s /lib64/libpcre.so.0.0.1 /lib64/libpcre.so.1

#加载配置
ldconfig

查看是否开机自启

systemctl is-enable nginx

非root用户实现ssh免密码连接

1,创建公钥

# 这里也是非root用户执行
ssh-keygen -t rsa #一直回车,会显示公钥位置

2,复制公钥文件 id_rsa.pub 到远程服务器上的 用户文件夹下,比如我用户test,就复制到 /home/test/.ssh文件夹下,.ssh需要创建

3,执行cat id_rsa.pub >> authorized_keys,就可以了

4,在被控端/etc/hosts.allow ,添加sshd访问授权: 10.55.32.71

如果不行的话可以看下文件权限。

curl常用命令

get请求
curl http://www.baidu.com
post请求
curl -X POST -d 'a=1&b=nihao' http://www.quxingping.com/api/
发送json格式请求
curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' "http://...."
curl -H "Content-Type: application/json" -X POST -d @test.json "http://...."
常见用法
下载
# 两种方式
curl -o dodo1.jpg http:www.linux.com/dodo1.JPG
curl -O http:www.linux.com/dodo1.JPG
# 循环下载
curl -O http://www.linux.com/dodo[1-5].JPG
# 通过ftp下载
curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG
curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG
# 显示进度条 -s不显示进度条
curl -# -O http://www.linux.com/dodo1.JPG
curl -s -O http://www.linux.com/dodo1.JPG
上传
curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/
伪造来源页面|伪造referer|盗链
curl -e "www.linux.com" http://mail.linux.com
伪造代理设备
curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com
设置http请求
# 设置请求头
curl -H "Cache-Control:no-cache" http://aiezu.com
指定proxy服务器以及其端口
# 很多时候上网需要用到代理服务器(比如是使用代理服务器上网或者因为使用curl别人网站而被别人屏蔽IP地址的时候),幸运的是curl通过使用内置option:-x来支持设置代理
curl -x 192.168.100.100:1080 http://www.linux.com
响应头
# 查看
curl -I http://aiezu.com
# 保存
curl -D cookied.txt http://www.linux.com
发送表单数据
curl -F "[email protected]" -F "site=aiezu"  http://aiezu.com/
查看https tls支持版本
curl --tlsv1.0 -v "https://www.baidu.com"
curl --tlsv1.1 -v "https://www.baidu.com"
curl --tlsv1.2 -v "https://www.baidu.com"
常用选项
-A/--user-agent <string>             设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断点续转
-D/--dump-header <file> 把header信息写入到该文件中
-e/--referer 来源网址
-f/--fail 连接失败时不显示http错误
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent 静音模式。不输出任何东西
-T/--upload-file <file> 上传文件
-u/--user <user[:password]> 设置服务器的用户和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/--progress-bar 进度条显示当前的传送状态

du命令

du与df不同,它用来查看文件或目录所占用的磁盘空间的大小。du指disk usage,df指disk free。du通常针对的是目录,而df通常针对的是文件系统。

语法&常用选项
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
  -h:–human-readable 单位控制,默认字节;以K,M,G为单位,提高信息的可读性
  -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
  -s:总计当前目录占用的磁盘空间大小,不要列举显示其下子目录和文件占用的磁盘空间大小
  -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  --apparent-size:显示目录或文件自身的大小
  -l :统计硬链接占用磁盘空间的大小
  -L:统计符号链接所指向的文件占用的磁盘空间大小
实用命令
du -sh 只查当前目录
du -sh  查询当前目录下所有子目录总大小
du -sh * | sort -nr :当前目录下所有文件的大小给列出来,按照从大到小的方式排序。
du -s * | sort -nr | head -10 选出排在前面的10个。
du -s * | sort -nr | tail -5 选出排在后面的5个。
du -lh --max-depth=1 查看当前目录下一级子文件和子目录占用的磁盘容量
逐级查找定位占用最大的目录

先在/path目录下找出最大的目录path1,然后再在path1下找出最大的目录,这样一级一级就可以找出占用空间最大的目录了

du -lh --max-depth=1 /path1
du -lh --max-depth=1 /path1/path2
du -lh --max-depth=1 /path1/path2/...

–max-depth=1 代表检查的目录深度为1级,可以指定目录也可以在当前目录下执行du -lh –max-depth=1;

比如我在root目录执行的结果:

image-20231130164344317

du -c:使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

image-20231130165338379

按文件从大到小排序查看当前目录及子目录文件,前5个文件
du -ah | sort -rn | head -5 

image-20231130170847587

ss命令

ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和 netstat 类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接 cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。

天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。

语法

ss [选项]

选项
-h:显示帮助信息;
-V:显示指令版本信息;
-n:不解析服务名称,以数字方式显示;
-a:显示所有的套接字;
-l:显示处于监听状态的套接字;
-o:显示计时器信息;
-m:显示套接字的内存使用情况;
-p:显示使用套接字的进程信息;
-i:显示内部的TCP信息;
-4:只显示ipv4的套接字;
-6:只显示ipv6的套接字;
-t:只显示tcp套接字;
-u:只显示udp套接字;
-d:只显示DCCP套接字;
-w:仅显示RAW套接字;
-x:仅显示UNIX域套接字。
示例
显示TCP连接
[root@localhost ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 0 *:3306 *:*
LISTEN 0 0 *:http *:*
LISTEN 0 0 *:ssh *:*
LISTEN 0 0 127.0.0.1:smtp *:*
ESTAB 0 0 112.124.15.130:42071 42.156.166.25:http
ESTAB 0 0 112.124.15.130:ssh 121.229.196.235:33398
显示 Sockets 摘要
[root@localhost ~]# ss -s
Total: 172 (kernel 189)
TCP: 10 (estab 2, closed 4, orphaned 0, synrecv 0, timewait 0/0), ports 5
Transport Total ip IPv6
* 189 - -
RAW 0 0 0
UDP 5 5 0
TCP 6 6 0
INET 11 11 0
FRAG 0 0 0
列出所有打开的网络连接端口
[root@localhost ~]# ss -l
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 *:3306 *:*
0 0 *:http *:*
0 0 *:ssh *:*
0 0 127.0.0.1:smtp *:*
查看进程使用的socket
[root@localhost ~]# ss -pl
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 *:3306 *:* users:(("mysqld",1718,10))
0 0 *:http *:* users:(("nginx",13312,5),("nginx",13333,5))
0 0 *:ssh *:* users:(("sshd",1379,3))
0 0 127.0.0.1:smtp *:* us
找出打开套接字/端口应用程序
[root@localhost ~]# ss -pl | grep 3306
0 0 *:3306 *:* users:(("mysqld",1718,10))
显示所有UDP Sockets 或 ss -aA udp
[root@localhost ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:syslog *:*
UNCONN 0 0 112.124.15.130:ntp *:*
UNCONN 0 0 10.160.7.81:ntp *:*
UNCONN 0 0 127.0.0.1:ntp *:*
UNCONN 0 0 *:ntp *:*

磁盘告警处理

  1. 查看磁盘使用情况

    df -h
    # df 可以查看磁盘使用率
  2. 查看文件大小

    #当前目录下硬盘使用大小
    du -sh
    #当前目录下子目录的大小
    du -sh *
    # xxx目录的大小
    du -sh xxx
  3. 根据文件目录可以一级一级往下查找

  4. 有时候查看/ 路径下的文件占用并不大,但是磁盘缺占满。

    #使用lsof查看删除的文件是否还有被占用的文件或目录
    #查看未被删除的文件进程,可以看到进程号
    lsof |grep deleted
  5. 这种情况由两种办法可以释放文件内容

    1 重启服务关闭线程从而让句柄释放。
    2 找到文件句柄,将文件置空从而释放。

    image-20230830165657671

    # 将文件置空
    echo > /proc/PID/fd/FD