likes
comments
collection
share

常用操作合集六

作者站长头像
站长
· 阅读数 3

写在前面

在工作中,我们可能会遇到一些问题,然后通过自己得一顿操作,最终把问题解决了。

可能在一两天之内,我们还是会记得解决这些问题的方法,但是过了一段时间之后,基本上都忘光了。

所以这里,我们应该要养成一个良好的习惯,把每次遇到的问题,如何解决的,都记录下。下次再看文档,这样就想起来了。

<<千与千寻>>有些事情是不可能忘记的,只是一时想不起来

下面,就分享一下,我遇到的一些问题,和相关的解决方法。

1.linux磁盘读写慢排查

    #1.查看硬盘是否繁忙
    top
    #第三行,有个wa(io wait是cpu等待io完成时间百分比),这个值大于1,需要重点关注

    #2.找出占用硬盘带宽高的进程
    iotop
    #用于展示进程读写排行

    #3.查看进程读写哪些文件
    lsof -p xxx

    #4.检查硬盘是否存在坏道(-o /root/badblocks.log指定输出文件)
    badblocks -s -v /dev/sda
        输出:Pass completed, 37 bad blocks found. 表示硬盘存在37个坏块。
        
    #查看所有分区
    lsblk    

2.win快速进入bios设置界面

#重启进入bios界面
shutdown /r /fw /t 0
#定时重启电脑
shutdown /r /t 1000

/r:重启
/fw:下次启动转到固件界面
/t x: x秒后执行

33.cpu过高排查

    #1.通过top查看到cpu过高的进程pid
    top
    #例如通过top查看cpu过高的是1313

    #2.输出进程里面运行的线程
    ps H -eo pid,tid,%cpu | grep 1313
    #例如cpu过高的线程tid是1328,对应16进制是530

    #3.查看进程,nid
    jstack 1313
    #可以查看到nid=0x530线程,对应的代码

4.mysql索引失效原因

    1.索引列,使用函数或表达式,索引就失效。
        例如:select * from users where year(date_column)=2024;
        
    2.查询条件中数据类型和索引列的数据类型不匹配,会发生隐式类型转换,索引就失效。
        例如:select * from users where user_id='123'; //user_id是整数列,查询条件'123'是字符串
        
    3.当使用了or连接多个查询条件,其中一个查询条件索引失效,整个查询条件索引也就失效了。
        例如:select * from users where name='llsydn' or email='1091391667@qq.com'; //name有索引,email没索引
        
    4.对于复合索引,必须从最左列开始。

    5.使用like查询,%通配符在最左边,索引就失效。
        例如:select * from users where name like '%llsydn%'; 
        
    6.表数据量比较少;索引列选择性不高,即存在很多重复数据。   

5.docker,harbor默认路由网段修改

docker,默认使用172.17.0.0 docker0

harbor,默认使用172.18.0.0 br-fb480104eaae

常用操作合集六

blog.csdn.net/fly910905/a…

你一个docker不要用192.168.0.0/16。用个/24不就行了么,整个192.168.0.0你全用在docker身上不行的。

"bip": "192.168.0.1/24"

6.扫描服务器所有开发端口

    #安装nmap
    yum install nmap -y

    #扫描服务器端口
    nmap -p 1-65535 192.168.1.1

7.nacos配置是否会覆盖本地application.yml的配置?

结论:默认情况下,远程配置会覆盖本地配置(比如启动参数,比如本地配置)。

  • 1.如果,希望本地application.yml的配置覆盖nacos的配置?
spring.cloud.config.allow-override=true #(允许被覆盖)

该配置的含义是远程配置是否允许被本地属性覆盖 默认true

注:但这是不够的,尽管它开启了总开关,但是还有下面两个默认的小开关卡住了。

  • 2.如果,希望nacos的配置不覆盖本地application.yml的配置?
spring.cloud.config.override-none=true #(远程配置不覆盖任何本地配置)

该配置的含义是远程配置不覆盖本地配置(双重否定?太有才了)

true表示远程nacos配置不覆盖本地同名属性

false表示远程nacos配置覆盖本地同名属性 默认为false(远程配置同名属性覆盖本地配置同名属性)

  • 3.如果,希望nacos的配置不覆盖本地系统配置或参数?
spring.cloud.config.override-system-properties=false #(远程配置不覆盖系统属性与环境变量,但是会覆盖本地配置文件)

该配置的含义是远程是否覆盖系统配置 默认true

例如,如果希望在启动时可能通过环境变量或程序参数修改某个配置,需要将该属性在远程配置中设置为false。

例:

    java –jar xxx.jar --spring.profiles.active=dev

系统配置指通过命令行参数或环境变量方式 指定配置属性值

注意:这些属性参数值需要配置在远程配置文件中,配置在本地配置文件不生效

8.根据进程 PID 找到进程启动目录、二进制、日志位置等信息

    #查找进程pid
    ps -aux|grep jenkins

    #进入到进程目录
    cd /proc/2401 #(带上进程pid)

常用操作合集六

更多详情,可以参考这里:/proc/pid目录详解

9.定时写一个shell脚本,按日期切割nohup.out日志内容

#!/bin/bash

cd /opt/llsydn

# 设置切割文件的前缀和存放目录
NAME=$(basename $(basename "*.out")  .out)
PREFIX="/opt/llsydn/*.out"
DATE=$(date +%Y%m%d)
OUTPUT_DIR="/opt/llsydn/log"
LOGFILE="${OUTPUT_DIR}/${NAME}-${DATE}.log"

# 检查目录是否存在,不存在则创建
mkdir -p "$OUTPUT_DIR"

# 将nohup.out的当前内容追加到新的日志文件中
tail -n +1 *.out >> "$LOGFILE"

# 清空.out文件
> ${NAME}.out

# (可选)如果你希望保留一定天数的日志,可以添加删除旧日志的逻辑
# 例如,保留最近7天的日志
find "$OUTPUT_DIR" -name "${NAME}-*.log" -type f -mtime +7 -delete
echo "*/1 * * * * /opt/llsydn/logcut.sh" | crontab -

好了,以上就是我个人的实操了。可能有些不对,大家伙,轻点喷!!!

个人理解,可能也不够全面,班门弄斧了。

好了,今天就先到这里了!!!^_^

如果觉得有收获的,帮忙点赞、评论、收藏一下,再走呗!!!

常用操作合集六