• Linux运维常用小总结


    1、curl工具

     (1) POST请求
       表单形式
    curl -X  POST "http://127.0.0.1:8080/test" -d  "token=123456&text=你好" 
    
        json形式
     curl -X  POST  -v  "http://192.168.18.90:18001/hnszlyyapi/bdapi/text2audio"   -H "Content-Type: application/json"  -d   "{\"token\":\"12345\",\"text\":\"你好\"}"  -k
     (2) GET请求
    curl   "http://127.0.0.1:8080/test?token=123456&text=你好" 
    

    2、文件目录操作

    (1)删除指定条件的文件
       find  ./dir   -mtime +30 -type f | xargs rm -rf

          atime : 文件的 Access time是在读取文件或者执行文件时更改的

          mtime :文件的 Modified time是在写入文件时随文件内容的更改而更改的

          ctime :文件的 Create time是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容

          更改而更改的。

     (2)查看文件大小
        du  -sh   /*
    (3)远程文件下载
    1. wget url
    2. wget  -p  /home/download      url
    (4)文件追加
    1. tee filename
    2. #追加
    3. echo "xxx" >> filename
    4. #覆盖
    5. echo "xxxx" > filename
      (5)sed内容替换
        sed  -i 's/aa/dd/g'  hosts

    3、maven使用

      maven 仓库地址https://mvnrepository.com/

     (1)  jar安装到本地仓库
    mvn install:install-file -Dfile=jar包路径 -DgroupId=jar包groupId -DartifactId=jar包artfactId -Dversion=6  -Dpackaging=jar
    (2)jar 发布到maven私服
    mvn  deploy:deploy-file  -DgroupId=com.fcw.org  -DartifactId=fcw-app  -Dversion=1.1.0-SNAPSHOT -Dfile=fcw-app-1.1.0-SNAPSHOT.jar  -Dpackaging=jar   -DrepositoryId=maven-snapshots  -Durl=https://ip/nexus/repository/maven-snapshots/
    mvn  deploy:deploy-file  -DgroupId=com.fcw.org  -DartifactId=fcw-app  -Dversion=1.1.0-SNAPSHOT -Dfile=fcw-app-1.1.0-SNAPSHOT.pom  -Dpackaging=pom   -DrepositoryId=maven-snapshots  -Durl=https://ip/nexus/repository/maven-snapshots/

    4、查看系统进程运行情况

    1. (1)查看cpu、线程等情况
    2. top | head -10
    3. (2)对cpu的情况进行采样
    4. vmstat -n 2 3 (采样3次每次执行2次)
    5. (3)查询系统负载
    6. mpstat -P ALL 2
    7. (4)查看某个进程对cpu占用情况
    8. pidstat -u 1 -p [pid]
    9. (5) 查看内存使用情况
    10. free -m
    11. (6)查看磁盘剩余空间
    12. df -h
    13. (7)查看磁盘逻辑分区
    14. lsblk -l
    15. (8)查看磁盘物理分区
    16. fdisk -l
    17. (9)查看硬件cpu的配置
    18. lscpu
    19. (10)查看cpu核心数
    20. cat /proc/cpuinfo |grep 'process' | sort | uniq | wc -l
    21. (11)查看内存情况(GB单位)
    22. cat /proc/meminfo | grep "MemTotal" | awk '{print $2/1024/1024}'
    23. (12)查看cpu和磁盘i/o统计
    24. iostat
    25. iostat -d -x -k 1 10
    26. (13) 查看进程状态
    27. ps -aux | grep rocketmq
    28. (14)通过进程号pid,询进程端口port
    29.  netstat  -anp | grep  [pid]
    30. (15) 通过port端口查进程信息
    31. netstat -tulnp | grep   [port]
    32. (16) 修改系统时间
    33. date -s "2023-09-22 10:01:10"
    34. hwclock --systohc

    5、grep文件字符换匹配

    1. 匹配行和其后面的n行
    2. cat log.txt | grep -A 10 OutOfMemory
    3. 匹配行和其前面的n行
    4. cat log.txt | grep -B 10 OutOfMemory
    5. 匹配行和其前后的n行
    6. cat log.txt | grep -C 10 OutOfMemory
    7. 过滤指定字符
    8. cat log.txt | grep -v 'OutOfMemory'
    9. 过滤指定字符出现次数
    10. grep -m 2 'OutOfMemory' log.txt
    11. grep -A 2 'OutOfMemory' log.txt | head -2
    12. 查看文件函数
    13. wc -l 文件目录

     6、网络相关

    (1)防火墙常用操作
    1. 重启防火墙:
    2. firewall-cmd --reload
    3. 查看防火墙状态:
    4. firewall-cmd --state
    5. 关闭防火墙:
    6. systemctl stop firewalld.service
    7. 开启防火墙:
    8. systemctl start firewalld.service
    9. 禁止开机启动启动防火墙:
    10. systemctl disable firewalld.service
    11. 关闭防火墙:
    12. systemctl stop firewalld.service(临时关闭)
    13. 禁止开机启动启动防火墙:
    14. systemctl disable firewalld.service
    15. #防火墙开放端口
    16. firewall-cmd --list-ports
    17. 开放端口:
    18. firewall-cmd --zone=public --add-port={port}/tcp --permanent
    19. firewall-cmd --reload
    20. 防火墙移除端口
    21. firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    22. firewall-cmd --reload
    23. 查看现有的规则
    24. iptables -nL
    25. 开放ip
    26. firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source
    27. address="192.168.100.115" accept"
    28. firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source
    29. address="192.168.100.115" port protocol="tcp" port="8080" accept"
    30. 删除ip
    31. firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source
    32. address="192.168.100.115" accept"
    33. 开放网段
    34. firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source
    35. address="192.168.0.0/16" accept"
    36. firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source
    37. address="192.168.1.0/24" port protocol="tcp" port="8080" accept"
    38. firewall-cmd --reload
    39. #设置docker 的桥接接口
    40. firewall-cmd --permanent --zone=docker --change-interface=docker0
    (2)ip相关
    1. ip addr
    2. ls /etc/sysconfig/network-scripts/

     7、git的常用操作

       (1) 创建本地分支
          git checkout -b    fengchengwu
       (2) 本地分支推送至远程
         git  push origin fengchengwu
        (3)  本地分支关联远程分支   
    1. git branch --set-upstream-to=origin/fengchengwu
    2. 查看本地与远程分支映射关系
    3. git branch -vv ;

             也可以直接创建分支时候关联

         git  checkout  -b  fengchengwu  origin/fengchengwu  
    
      (4)合并分支

             将master合并到fengchengwu分支

    1. a、将main本地合并至fengchengwu分支
    2. git merge main
    3. b、将本地fengchengwu推送至远程fengchengwu远程分支
    4. git pull
    5. git push origin fengchengwu

    8、mysql常用查询

     (1)查询表的字段个数
    1. SELECT count(1) from information_schema.COLUMNS WHERE table_schema='dbname' and table_name='tablename';
       (2) 查询数据库、表数据大小
    1. # 查询所有表数据大小
    2. select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from tables;
    3. #查询某个数据库文件表数据+索引数据
    4. select concat(round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024,2),'M') from information_schema.tables where table_schema='app_db';
    5. #查询某个表的数据大小
    6. select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from tables where table_schema='app_db' AND table_name='number_copy';
    7. #查询某个表数据+索引
    8. select concat(round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024,2),'M') from tables where table_schema='app_db' AND table_name='number_copy';
        (3) 优化表空间 
    OPTIMIZE   TABLE  numner_copy;

     如果返回:table does not support optimize, doing recreate + analyze instead , 那么进一步执  行一下命令即可:

    1. ALTER TABLE number_copy ENGINE=InnoDB;
    2. ANALYZE TABLE number_copy;
    (4).frm 和 .ibd文件

     .frm存储表名、表结构、索引等元数据(查看表结构:mysqlfrm  --diagnostic  xx.frm)

     .ibd存储表记录数据、索引数据

    (5)mysql服务启动
    mysqld_safe --defaults-file=/etc/my.cnf &

    9、netcat测试tcp服务

    1. #开启3000端口服务
    2. nc -l 3000
    3. nc -l ip 3000
    4. #客户端连接3000端口服务
    5. nc 127.0.0.1 3000
    6. #扫描3000端口
    7. nc -v 127.0.0.1 3000

    10、硬盘挂载

    (1)查看分区

       查看硬盘逻辑分区: lsblk ,查看硬盘物理信息: fdisk (fdisk -l),查看文件大小(du  -sh  目录)

      

       有两块硬盘 vda(vda有两个分区:vda1  vda2)  、vdb(有一个分区vdb1)

      (2) 挂载硬盘分区
    1. mkdir /wmy
    2. #将硬盘 vdb的vdb1分区挂载到/wmy的目录下
    3. mount /dev/vdb1 /wmy
    (3)查看硬盘挂载信息
         cat  /etc/fstab
       (4) 卸载硬盘挂载
    umount  /dev/vdb1 

    11、jar文件启动脚本

    1. #!/bin/bash
    2. #项目jar包名字
    3. APP_NAME=pay
    4. CONSOLE_LOG=run
    5. #远程下载1 本地0
    6. DOWNLOAD_FLAG=1
    7. JAVA_OPTS="${JAVA_OPTS} -Xmx2048m -Xms2048m"
    8. #文件存储地址
    9. DOWNLOAD_URL=http://ip:port/${APP_NAME}.jar
    10. # 检测脚是否传参
    11. if [ -n "$1" ]; then
    12. echo "输入参数$1"
    13. DOWNLOAD_FLAG=$1
    14. fi
    15. #pid=`jps| grep $APP_NAME | awk '{print $1}'`
    16. pid=$(ps -ef | grep $APP_NAME | grep -v "grep" | awk '{print $2}')
    17. if [[ -z $pid ]]; then
    18. echo "step1 ${APP_NAME}服务未运行直接启动"
    19. else
    20. echo "step1 ${APP_NAME}服务正在运行执行关闭"
    21. kill -9 $pid
    22. fi
    23. if [[ $DOWNLOAD_FLAG -eq 1 ]]; then
    24. rm -f ${APP_NAME}.jar
    25. wget ${DOWNLOAD_URL}
    26. if [[ $? -eq 0 ]]; then
    27. echo "step2 ${APP_NAME}.jar下载成功ok"
    28. else
    29. echo "step2 ${APP_NAME}.jar下载失败fail"
    30. exit 1
    31. fi
    32. else
    33. # 检测jar文件是否存在
    34. if [[ -f ${APP_NAME}.jar ]]; then
    35. echo "step2 ${APP_NAME}.jar本地存在"
    36. else
    37. echo "step2 ${APP_NAME}.jar本地不存在"
    38. exit 1
    39. fi
    40. fi
    41. nohup java -jar ${JAVA_OPTS} ${APP_NAME}.jar >> ${CONSOLE_LOG}.log 2>&1 &
    42. pid=$(ps -ef | grep $APP_NAME | grep -v "grep" | awk '{print $2}')
    43. if [[ -z $pid ]]; then
    44. echo "step3 ${APP_NAME}启动失败,请查看日志"
    45. else
    46. echo "step3 ${APP_NAME}启动成功"
    47. fi

    12、日期操作

      (1)日期格式化为年月日时分秒

    1. date +'%Y-%m-%d %H:%M:%S'

    (2)当前时间转化为时间戳

     date '+%s'

    13、yum镜像源

    (1)基础镜像源替换

    1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    2. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    14、临时日志定时清理

    1. yum isntall -y logrotate
    2. cd logrotate.d

  • 相关阅读:
    基于GA遗传算法的异构网络垂直切换优化算法的matlab仿真
    越细粒度的锁越好吗?产生死锁怎么办?
    【硬件异常黑盒子功能】成功使用LUA小程序实现类似MDK的硬件检测机制,并且更进一步锁异常位置,支持脱机运行
    HDMI2.1与HDMI2.0的区别以及转换PD信号。
    hadoop2.2.0伪分布式搭建
    C# 处理TCP数据的类(服务端)
    记录一次springboot使用定时任务中@Async没有生效的场景
    Webpack5 htmlwebpackplugin用法
    python find函数
    基于移动互联网的订餐APP系统设计与实现
  • 原文地址:https://blog.csdn.net/fengchengwu2012/article/details/126176341