进程

ps -ef 查看所有进程

ps -ef|grep ssh 过滤查看ssh进程

ps -ef|grep nginx 过滤查看nginx进程

ps -ef|grep keepalived 过滤查看keepalived进程

 

IP

ip a 查看IP

 

keepalived

systemctl start keepalived 启动keepalived 

systemctl stop keepalived 关闭keepalived 

systemctl restart keepalived 重启keepalived

keepalived -v 查看版本号

keepalived配置文件路径:/etc/keepalived/keepalived.conf

 

VIM

:%d   删除整个编辑缓冲区。

 

NGINX

sudo vim /etc/nginx/nginx.conf 管理员权限编辑文件

nginx start 启动Nginx

sudo service nginx start 启动Nginx

nginx stop 停止Nginx

nginx -t 检查配置文件

nginx -s reload 重新加载配置文件,nginx是支持热部署的,意思就是可以在不停止服务的情况下进行更新部署。

sudo service nginx restart  Nginx服务重启,重启前记得先检查配置文件,不然服务会先关闭,再去检查文件

nginx -v 查看nginx版本号

NGINX日志分析

统计IP的
awk '{print $1}' /var/log/nginx/host/host.access-2020-08-29.log | sort | uniq -c | sort -nr | head -10
统计错误码的
awk '{print $9}' /var/log/nginx/host/host.access-2020-08-29.log | sort | uniq -c | sort -nr | head -10 

统计请求响应时间超过10s的记录
awk '($NF > 10){print $0}' /var/log/nginx/host/host.access-2020-08-29.log | sort -rk3 | head -10

根据Tab分隔符分隔统计第15参数请求响应时间超过10s的记录

awk -F '\t' '($15 > 10){print $0}' "/var/log/nginx/host.interface50830/host.interface.access-2021-11-10.log" | sort -rk3 | head -10

简单统计nginx访问日志access log每分钟请求数
awk -F: '{count[$2":"$3]++} END {for (minute in count) print minute, count[minute]}' /var/log/nginx/host/host.access-2020-08-29.log | sort > count.log

简单统计nginx访问日志access log每分钟请求数

将 文件中第二列进行反向排序,按照数字进行排序,并获取前几位

-r 反向排序

awk -F: '{count[$2":"$3]++} END {for (minute in count) print minute, count[minute]}' /var/log/nginx/host/host.access-2020-08-29.log | sort -n -rk2 | head -10

统计不同状态码,不同响应后端前10数量

awk -F '\t' '{print $6,",",$12}' "/var/log/nginx/host/host.access-2020-08-29.log" | sort | uniq -c | sort -nr | head -10

参考统计: 

参考awk,sort:

    https://blog.51cto.com/u_14449524/2442177

    获取前后行,过滤关键字:

 

文件/文件夹

rm -rf 文件夹路径  删除文件夹

rm 文件路径   删除文件

rm -rf * 表示删除当前目录下的所有文件。
“rm”命令的一般形式为:
如果没有使用“- r”选项,则rm不会删除目录。
该命令的各选项含义如下:
“- f ”忽略不存在的文件,强制删除,不给出提示。
“- r” 指示rm将参数中列出的全部目录和子目录均递归地删除。
“- i ”进行交互式删除。
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以使用“i”选项来逐个确认要删除的文件。如果用户输入“y”,文件将被删除。

 

truncate -s 0 file  清空文件

truncate命令可以将文件缩减或扩展至指定大小。-s 选项是指定文件大小,不足用0填充,多余则从末尾删除。这里指定size为0,则是清空文件

 

创建文件夹:

 mkdir /var/log/nginx/host.interface/

查看系统整体空间剩余情况

df -h

查看每个文件夹的占用情况

du -sh *

查看每个文件夹的占用情况,排序

du -sh * | sort -nr

查找文件,30天前,后缀.log,并且文件名不包含.error.log

find /var/log/nginx/host.interface/ -mtime +30 -name "*.log" ! -name "*.error.log";

查找文件,30天前,后缀.log,并且文件名不包含.error.log,并删除这些文件

find /var/log/nginx/host.interface/ -mtime +30 -name "*.log" ! -name "*.error.log" -exec rm  {} \;

查找文件,30天前,后缀.log,并且文件名不包含.error.log,并删除这些文件不提示

find /var/log/nginx/host.interface/ -mtime +10 -name "*.log" ! -name "*.error.log" -exec rm -rf {} \;

 

查看文件

tail -f 实时查看日志文件 tail -f 日志文件log

tail -f -n 100 catalina.out linux查看日志后100行

搜寻字符串

grep 搜寻字符串 filename

 

more是一个用来分页显示大文本文件的命令,它默认是内置在各个Linux发行版中的。

空格:下一页

b:上一页

q:退出

more filename 分页查看

more -20 filename 分页查看,每页20条

more -s filename 分页查看,忽略多余的空白行

more +/搜索关键字/ filename 分页查看,查找字符串

more +5 filename 分页查看,从第五行开始

1. 压缩文件

gzip 源文件

如压缩 b.txt 使用命令 gzip b.txt 注意:压缩为 .gz 文件 源文件会消失

如果想保留源文件 使用命令 gzip -c 源文件 > 压缩文件

 

zip

zip 压缩后的文件名 要压缩的文件。例如:zip test.zip test.txt

2. 压缩目录

gzip -r 目录

注意 gzip 压缩目录 只会递归地压缩目录下的所有文件 不会压缩目录

特别注意:gzip不支持压缩整个目录

压缩目录使用:tar -czvf xxx.tar.gz  source_file (tar -czvf 包名.tar.gz  源文件)        #以tar.gz方式打包并gz方式压缩

3. 解压

gzip -d xxx.gz

unzip filename.zip

tar -xzvf xxx.tar.gz -C path (tar -xzvf xxx.tar.gz -C 目标路径) #解压缩包

4. 文件复制

1、同一文件夹内拷贝:

cp filename filename_date拷贝文件

 

5. 端口相关

查看当前监听端口

netstat -tulpn | grep 3306

 

6. crontab定时任务

参考:https://zhuanlan.zhihu.com/p/350671948

常用命令:

$ crontab -u root -e     #编辑用户 root 的计划任务文件(需要有 root 权限)
$ crontab -e             #编辑当前用户的计划任务文件
$ crontab -u root -l     #显示用户 root 的计划任务文件(需要有 root 权限)
$ crontab -l             #显示当前用户的计划任务文件
$ crontab -r             #删除当前用户的计划任务文件

cron 语法格式:

# m   h   dom   mon dow  command
0-59 0-23 1-31 1-12 0-7  command

符号

含义

取值范围

m

表示分钟

0-59

h

表示小时

0-23

dom

day of month,表示日期

1-31

mon

month,表示月份

1-12

dow

day of week,表示星期

0-7

command

待执行的命令

-

命令例子:

需注意的是:执行sh有些时候需要加sh,有的时候不需要,建议设置完后测试一遍,以下环境为: GNU ld (GNU Binutils for Ubuntu) 2.34) #44~20.04.1-Ubuntu SMP

0 12 * * * sh /home/admin/AutoClearFile.sh>/home/admin/dellog.log

添加任务-方法1:crontab -e;这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。

添加任务-方法2、直接在/etc/crontab文件中添加,不过需要是root身份。打开文件。

参考:http://www.80vps.com/new6583.html

操作系统信息

使用`hostnamectl`命令查看内核版本

hostnamectl实用程序是systemd的一部分,用于查询和更改系统主机名。 它还显示Linux发行版和内核版本:

使用以下命令只显示当前内核版本:

hostnamectl | grep -i kernel

通过查看/proc/version文件确认内核版本

/proc目录包含虚拟文件,其中包含有关系统内存,CPU内核,已安装文件系统等的信息。有关正在运行的内核的信息存储在/proc/version虚拟文件中。
结合cat查看文件内容:

cat /proc/version