服务器配置信息查看
查看linux内核信息 cat /proc/version 或者 uname -r
查看centos的版本 cat /etc/redhat-release
查看服务器上都有哪些用户etc/passwd和etc/shadow
列出已安转的软件包 rpm -qa 或者 yum list installed
硬件配置查看
lscpu 查看CPU核心数
free -g 查看内存
lsblk 查看磁盘大小
centos7防火墙
centos的防火墙有两种,分别为firewald 和 iptables,默认使用firewald,但是firewald底层也用的是iptables
查看防火墙状态 systemctl status firewalld.service 或者 firewall-cmd --state
开启防火墙 systemctl start firewalld.service
关闭防火墙 systemctl stop firewalld.service
重启防火墙 systemctl restart firewalld.service
防火墙是否开机启动设置
查看是否开启启动 systemctl is-enabled firewalld.service
开启开机启动 systemctl enable firewalld.service
关闭开机启动 systemctl disable firewalld.service
更新服务器时间
第一步:yum install ntp
第二步:ntpdate time.nist.gov
第三步:date
环境变量
用户级别: ~/.bashrc
系统级别: /etc/profile
export 设置环境变量
echo 打印
服务器各连接状态统计
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}’
注意:
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。
CentOS和Red Hat的关系
Red Hat是付费的,CentOS是Red Hat的克隆版本,免费的。
批量替换
方法一: vim模式下输入%s/原字符/新字符/g
方法二: sed命令 sed -i ‘s/原字符/新字符/’ 2.log
远程连接其他服务器
ssh -p 22 root@192.168.1.1
-p 后边跟端口号
root是用户名
find
-name 文件名
-size 文件大小
-type 文件类型 d代表目录 f代表文件
-delete 删除
常用组合:
find /home/ -name 1.log #查看文件
find /home/ -name 1.log -delete #查找并删除
find /home/ -size +100M #查找大于100M的文件
find /home/ -type f -name ‘*.tar.gz’ #查看以.tar.gz结尾的文件
chmod
chmod 777 文件名
chmod +x 文件名 # +x +r +w -x -r -w
chmod -R -x 0424 # -R 参数是递归的意思
chown
chown -R es:es 0424 #把0424这个目录下的所有文件的拥有者改为es用户
grep
不带任何参数显示,显示的关键词所在的行
-i 忽略大小写
-o 精确查找(只显示匹配到的内容)
-v 反向查找
uniq
-i 忽略大小写
-c 在每列旁边显示该行重复出现的次数。如果相邻和不相邻的行都需要统计,则需要先排序,再uniq。 例如: cat 1.log |sort | uniq -c
-u 仅显示出一次的行列。
sort
sort默认是按照英文字母顺序(abcdefg…排序的)
-u 去除重复
-n 按数字排序(只要是按数字排序都需要该参数)
-r 按降序排列
-t 后边跟间隔符
-k列数(一般-k和-u参数一起使用,否则会报错) 例子: 日志内容如下 banana:30:5.5 apple:10:2.5 pear:90:2.3 orange:20:3.4 按第二数字从大到小排序的命令为: sort -n -r -k 2 -t: 1.log
cd
cd /
cd ~
cd …/…/
cd xx
ll
-h 友好的展示
-S 展示文件大小单位并排序
-s 展示文件大小单位不排序
-r 逆序
常见组合用法: ll -hS 查看目录下所有文件大小并按文件从大到小排序
mkdir
mkdir 目录名
mkdir -p a/b/b/b
mkdir -p a b c
rmdir
rmdir 目录名 :移除空目录
touch&cp&mv
touch 文件名:创建一个空文件
cp 文件名 目录/文件名:复制
mv 文件名 目录/文件名
mv 文件名 新文件名:重命名
tail
tail -f info.log 动态查看日志
tail -n 10 1.log 取文件的后10行
head
head –n 10 1.log 取文件的前10行
head –n 10 1.log> b.txt 取a.txt前十行数据重定向到b.txt
清空日志
1.log 清空1.log文件
scp 跨服务器拷贝
scp -r performance yinyongjie@172.17.0.180:/home/yinyongjie
把当前机器的performance目录复制到172.17.0.180上的/home/yinyongjie目录scp -r -P 6789 root@172.16.123.54:/root/yyj/tiku.war
/data/tomcat-newtiku/webapps
把172.16.123.54上的/root/yyj/tiku.war拷贝到当前机器的/data/tomcat-newtiku/webapps目录下
-P后跟端口号
跨服务器带密码拷贝用sshpass
sshpass -p “admin123456” scp -r -P 6789
root@172.16.123.54:/root/yyj/tiku.war /data/tomcat-newtiku/webapps
-p后跟登录172.16.123.54服务器的密码
rm
rm 文件名:带询问的删除文件
rm -f 文件名:不带询问的删除文件
rm -rf 目录|文件:不带询问的递归文件
:8,15d 删除第8到15行
wc
cat 1.log | wc -l 统计行数
vim
快速跳转到首行: gg
快速跳转到尾行 : G 批量删除: 删除5-10行 :5,10d
软连接
软连接就是window的快捷方式,前提软连接文件是不存在的
格式:ln -s 源文件 软连接文件(快捷方式) 例如: 执行ln -s
config.php config.php.dist 结果: config.php.dist -> config.php
访问config.php.dist 就相当于访问config.php
用户切换
sodo -i 切换到root用户
exit 退出root用户
上传下载
rz -e 给服务器上传数据(上传报错时需要加-e参数) sz 下载
打包/解压 tar命令
tar -xvf 文件名 #解压到当前目录
tar -xvf 文件名 -C 目录名字 #解压到固定目录
tar -cvf 文件名 目录 #打包
tar -cvf 20190923-user.tar.gz * --exclude log #打包时排除某个目录,注意:–exclude后为目录时,目录后不需要带/,–exclude后为文件时,直接写文件名,如果排除的文件或者目录过多,需写多个 --exclude
查看磁盘大小-文件大小
df -h 查看磁盘大
du - sh * 查看文件及文件夹大小
wc
-l 显示行数
cut
-b 字节
-c 字符
cut -c 2-8 截取第二个到第八个字符
watch
-d 高亮显示动态变化
-n 时隔多少秒刷新
-t 关闭命令顶部的时间间隔,命令显示
例如:
watch -n 3 date
watch -n 3 -d date
watch -n 3 -d -t date
watch -d cat /proc/softirqs
后台运行
nohup java –jar xxjar &
&表示在后台运行 nohupb表示不挂断的运行命令 一般nohup和&一起使用
sh
sh 1.sh 任务在前台执行
sh 1.sh & 将任务放在后台执行
ctrl+z 将一个正在前台执行的命令放到后台,并且处于暂停状态
bg 将一个在后台暂停的命令,变成在后台继续执行 (b代表back)
fg 将后台中的命令调至前台继续运行 (f代表front)
jobs -l 查看后台执行的所有任务
进程和端口互查
根据进程查端口:netstat -natp|grep pid
根据端口查进程:netstat -natp|grep port 或者 lsof-i:port
查看所有java进程
jps -l
杀掉所有java进程
方法一:pkill java
方法二:killall java
方法三:ps -ef | grep java | grep -v grep | awk ‘{print $2}’ | xargs kill -9
参数说明: -v : 反选,除grep外的所有进程
xargs 作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题
netstat命令
-a all
-n 不显示别名
-t tcp
-l listen
-p process
–
查看已打开服务对应的进程及端口
Netstat -ntlp
–
查看80端口占了多少个连接
netstat -nat | grep -i “80” | wc -l
–
查看当前80端口有多少连接处于连接状态
netstat -anp | grep ESTABLISHED | grep 80| wc -l
–
查看httpd进程占了多少个连接
ps -ef | grep httpd | wc -l
–
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191003204116483.png
ss命令
参数:
-a all
-l listen
-p process
-s summary
–
常用:
ss -a 查看socket连接数
ss -l 查看端口情况
ss -s 查看网络连接数
当服务器请流量特别大时,用ss比用netstat效率高
nginx日志统计
nginx用空格进行分割时
$4 请求时间、 $7 接口URL、$9 HTTP状态码
统计PV:cat access.log |wc -l
统计UV:cat access.log | awk ‘{print $1}’|sort |uniq -c |wc -l
统计TPS
统计每个接口出现的次数并排序:cat access.log |awk ‘{print $7}’|sort|uniq -c|sort -rn
awk
awk是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理
例如:
echo “123|456|789”|awk -F ‘|’ ‘{print $1}’
echo “123+345-789”|awk -F ‘+|-’ ‘{print $1}’ #根据加号或者减号分割
参数:
-F参数为指定分隔符 print为打印
$1为第一个域,$2为第二域
$为所有域 \t为制表符
| 表示或
显示123.log文件中的所有包含404的字段
awk ‘/404/{print $0}’ 123.log
显示110文件中每个用户及对应的IP,要求用制表符分开
cat 110 | awk -F ‘:’ ‘{print $1"\t"$2}’
某列求和
cat 5.log |awk -F ’ ’ ‘{sum=sum+$2} END {print “sum=”,sum}’
求平均值
cat 5.log |awk -F ’ ’ ‘{sum=sum+$2} END {print “sum=”,sum/NR}’
sed
1.简介 sed是一种行编辑器,它一次处理一行内容。
参数:
-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能(关闭默认输出)
-i: 修改内容
功能选项:
s: 取代
p:打印,表示打印当前行
sed -n p 1.log # 打印1.log的内容,相当于cat命令
2.定址
告诉sed你期望处理的行,由逗号分隔的两个数字表示,(美元符号)符号表示最后一行;
sed -n '2,3’p 5.log #打印第2到3行
sed -n '2,$'p 5.log #打印第2行到最后一行
sed -n ‘/100/p’ 5.log #打印文件中包含100的行
查看某时间段日志
例如:查看2014-12-17 16:17:20到2014-12-17 16:17:36的日志如下:
sed -n ‘/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p’ test.log
删除带有xxx的行
sed -i -e ‘/xxx/d’ 1.log
网络
ifconfig:查看当前网卡信息
ping:查看网络是否通畅
telnet ip port 查看服务器的某个端口是否开通(前提条件是服务端该端口要已启动)
ifconfig eth1 up 启用网卡
ifconfig eth1 down 禁用网卡
ip a 查看服务器有几个网卡
watch cat /proc/net/dev 查看当前使用的哪个网卡(当前哪个网卡流量变化大,就是用的是那个)
curl cip.cc 查看公网IP
网络带宽单位换算
数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,1bit/s是带宽的基本单位
KB/s && Kbps
kbps 中的 p 是 per 的缩写,意思就是 “每”。
kbps = kb/s
KB/s 中的 B 是 Byte (字节数)
kb/s 中的 b 是 bit (位数)
计算机中 1Byte = 8bit
所以 1KB/s = 8kbps = 8kbs
一般安装宽带讲的 20M 其实就是 20Mbps = 20Mb/s = (20/8) MB/s
同样,购买服务器的时候,商家说的 100M 带宽也是 100Mbps。
如下为DF测试环境网络带宽:
crontab 定时任务
vim /etc/crontab
*/1 * * * * root 1.sh 每1分钟执行一次
/n * * * * root 1.sh 当 n 不能被 60 整除的时候,就不是每 n 分钟执行一次
例如:/25 * * * * root 1.sh 每小时的 0分,25分,50分,而不是 0,25,50,15,40 。。。
进程 ps -ef|grep cron
crontab -e 编辑定时任务
crontab -l 查看定时任务
crontab -r 删除当前的定时任务
注意:[1] 执行的脚本一定要有执行权限
[2] 定时语句写在/etc/crontab里可以成功,crontab -e里为什么不成功还没找到原因
[3] crontab里只写定时任务的语句,重定向语句写在可执行文件里