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
|
发送表单数据
查看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目录执行的结果:

du -c:使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
按文件从大到小排序查看当前目录及子目录文件,前5个文件
du -ah | sort -rn | head -5
|
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 *:*
|
磁盘告警处理
查看磁盘使用情况
查看文件大小
#当前目录下硬盘使用大小 du -sh #当前目录下子目录的大小 du -sh * # xxx目录的大小 du -sh xxx
|
根据文件目录可以一级一级往下查找
有时候查看/ 路径下的文件占用并不大,但是磁盘缺占满。
#使用lsof查看删除的文件是否还有被占用的文件或目录 #查看未被删除的文件进程,可以看到进程号 lsof |grep deleted
|
这种情况由两种办法可以释放文件内容
1 重启服务关闭线程从而让句柄释放。 2 找到文件句柄,将文件置空从而释放。
|
# 将文件置空 echo > /proc/PID/fd/FD
|