进程
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