老运维笔记-经典运维-运维日常最常用的技巧


Linux常用技巧 Linux笔记

个人经常使用,忘记了备查的笔记条目,不是按系统性的知识分享,运维实操实战最常用的一些好用经验技巧,分享给大家。

1. Mysql 数据库版本查询方法

  • 1) mysql -V  */终端下  
  • 2) status   */进入数据库后执行
  • 3) mysql  –help |grep Distrib        */终端下
  • 4)   select version()                  */进入数据库后执行

2. awk常用格式以及如何取倒数第二列

  • 1) cat test.txt |awk -F ” ” ‘{print$1}’ // 默认空格时 -F可以不写
  • 2) cat test.txt |awk -F ” ” ‘{print$NF}’ //打印最后一列
  • 3) cat test.txt |awk ‘{for (i=2;i<=NF;i++)printf(“%s “, $i);print “”}’ //第2至最后一列
  • 4) cat test.txt |awk ‘{for(i=NF-3;i<=NF;++i) printf $i “\t”;printf “\n”}’ //打印最后3列 –也可以写成 awk ‘{for(i=NF-3;i<=NF;++i) printf $i “\t”;printf “\n”}’ ./test

3. tar 压缩命令 

  • tar -cf 20170704-195527.tar 20170704-195527/ –将 目录“20170704-195527/”压缩为20170704-195527.tar  ,-c是表示产生新的包,-f指定包的文件名。
  • -C 指定解压到哪个目录:tar -zxvf /opt/work/softwares/kibana-7.14.0-linux-x86_64.tar.gz -C /opt/work/item-install/

4. iptables开放80端口

vi /etc/sysconfig/iptables (允许80端口通过防火墙)

  • -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
  • — */加在 -A INPUT -m state –state NEW -m tcp -p tcp –dport ** -j ACCEPT   之后./*、

5. 时间修改

  • 查看时间:date/hwclock –show
  • Centos系统,必须同时修改系统时间和硬件时间,才可以保证修改有效,单纯的使用date命令修改系统时间,是立即生效,重启后会还原。
  • date -s “2022-04-08 09:42:00” –设置系统世间
  • hwclock -set -date=”07/07/06 10:19″ (月/日/年 时:分:秒) –硬件时间
  • hwclock –hctosys –让系统的时间同步到硬件时钟
  • clock -w –保存时钟

6. 查看系统运行了多久和当前登录在线的所有用户

  • 命令: w

7. 查看某个进程啥时候运行的,运行了多久

  • 命令:ps -eo pid,lstart,etime | grep PID

8. 查看CPU信息

  • cat /proc/cpuinfo

9. 查看当前系统磁盘吞吐IO

  • 命令: iostat -d -x -k 1 10 — -d 显示磁盘信息 -x 显示详细信息 -k 以kb为单位显示 (查询10次,间隔1秒)
  • 命令: iostat -c 1 10 –查看CPU繁忙情况
  • %iowait值高,表存在I/O瓶颈;%idlecCPU空闲 //CPU
  • Device 监测设备名称
  • rrqm/s 每秒需要读取需求的数量
  • wrqm/s 每秒需要写入需求的数量
  • r/s 每秒实际读取需求的数量
  • w/s 每秒实际写入需求的数量
  • rkB/s 每秒实际读取的大小,单位为 KB
  • wkB/s 每秒实际写入的大小,单位为 KB
  • avgrq-sz 需求的平均大小区段
  • avgqu-sz 需求的平均队列长度 –值高,表有io在等待
  • await 等待 I/O 平均的时间(milliseconds)
  • r_await 等待读 I/O 平均的时间(milliseconds)
  • w_await 等待写 I/O 平均的时间(milliseconds)
  • svctm I/O 需求完成的平均时间 –如接近 await表没有等待时间;await高于svctm的值,则表示I/O队列等待太长程序将变慢
  • %util 被 I/O 需求消耗的 CPU 百分比 –%util 高表磁盘繁忙;100%表示设备已经接近满负荷运行

iostat主要用于监控系统设备的IO负载情况,通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

10. rpm看配置文件位置、版本、安装的包文件

  • rpm -qc httpd  查看httpd的配置文件目录
  • rpm -qi httpd  查看httpd的版本和安装信息
  • rpm -ql httpd 列出httpd软件包中的文件

11. ps -ef和 ps aux 的区别

  • COMMADN列如果过长,aux会截断显示,而ef不会
  • -ef是System V展示风格,而aux是BSD风格
  • 看进程的CPU占用率和内存,使用aux ;看进程的父进程ID和完整的COMMAND命令,用ef

12. column友好打印输出

  •  cat /etc/passwd |column  -s: -t —  -s: 以冒号为分界线/-t 表格输出
  •  -c 指定显示的列宽字符数
  • -x 更改排列顺序(左→右)。默认的顺序为(上→下)

13. 编译安装软件configure、 make 、make install解释

  • configure,这一步一般用来生成 Makefile,为下一步的编译做准备
  • make,这一步就是编译
  • make insatll,这条命令来进行安装

14. 全目录包括子目录搜索所有文件包含的关键字

  • egrep -ir KEYY ./* — -i不区分大小写 -r递归子目录

15. du命令查看各级目录文件大小

  • du -ah –max-depth=1 –只查看1层深度,约等于 du -sh * //a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。

16. vim 文本替换

  • 行首插入内容 :%s/^/your_word/
  • 行尾插入内容 :%s/$/your_word/
  • 替换所有行的内容      :%s/from/to/g
  • 替换当前行中的内容    :s/from/to/   (s即substitude)
  • 替换某一行的内容      :33s/from/to/g (假设第33行)
  •  替换最后一行的内容    :$s/from/to/g
  • 替换某些行的内容      :10,20s/from/to/g
  • 对第一行到当前行的内容进行替换   :1,.s/from/to/g
  • 对当前行到最后一行的内容进行替换   :.,$s/from/to/g             
  • shift+% 成对显示 {}的位置
  • gg 跳到文本开头
  • GG跳到文本末尾
  • ESC推出编辑按u 恢复上一次编辑
  • ESC推出编辑按CTRL + R 撤销/恢复上一次删除

17. 命令行删除/退格快捷键

  • ctrl + w 往行首删除一个字符串(可以理解为单词),空格为界
  • ctrl + u 删除从光标至行首内容
  • ctrl + k 删除从光标至行尾内容

18. 命令行光标位置跳跃

  • ctrl + a 光标跳跃到起始位置
  • ctrl + e 光标跳跃到末尾位置

20. IT常用术语

  • rd–开发环境  qa–测试环境  local–本地环境  online–线上环境

21. 免密登录设置

  • ssh-keygen 四次回车生成密钥
  • ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.238 将密钥发送到需要免密登录的服务器
  •  ssh  192.168.1.238 测试免密登录

22. scp对拷文件并重命名

  • scp   /home/wwwroot/www/charts/util/a.txt root@192.168.1.65:/home/wwwroot/limesurvey_back/scp/b.text
  • 发送目标为目录的时候最后不能带斜杆 /

23. 登录服务器时自动显示的提示信息设置

  • 写入 /etc/motd 即可

24. 自动计划任务内容对应的文本

  • /var/spool/cron/root (root 为帐号名),更改此文档后当前系统计划任务会立刻实时变更。

25. 探测某个 IP是否处于使用状态 –用来分配静态IP看是否被占用

  • nmap -sP 192.168.1.1 探测.1.1 是否存在
  • nmap -sP 192.168.1.1-5 探测.1.1到.1.5整段IP是否存在

26. Mysql时间字段比另一个时间字段大(后)4h

  • … AND ar.create_time > DATE_ADD(ds.update_time,INTERVAL -4 HOUR)
  • case替换 CASE WHEN ar.revice_time IS NULL THEN ‘未恢复’ ELSE ‘已恢复’ END AS ‘报警状态’

27. grep匹配关键字前5行,后5行,前后5行

  • grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
  • grep -B 5 foo file 显示foo及前5行
  • grep -A 5 foo file 显示foo及后5行

28. egrep多个字符串/关键字或关系匹配

  • cat test.txt | egrep -i “KEYA|KEYB|KEYC”

29. yum的常用命令

  • yum list –showduplicates kubeadm | grep 1.18 查看某个软件的所有可选版本
  • yum clean all && yum clean dbcache && yum makecache 更新Yum源后,清除旧的、然后建立新仓库的缓存
  • yum repolist 获取当前系统有效的repolist
  • yum list 列出所有可安装的软件包
  • yum list installed 列出所有已安装的软件包
  • yum list updates 列出所有可更新的软件包
  • yum -y update 升级所有包同时也升级软件和系统内核
  • yum -y update xxx 只升级某个软件xxx
  • yum -y upgrade 只升级所有包,不升级软件和系统内核

30. mysql中drop、truncate和delete的区别

  • drop table tb 将表格直接删除,没有办法找回
  • truncate (table) tb 删除表中的所有数据,不能与where一起使用;不可回滚
  • delete from tb (where) 删除表中的数据(可制定某一行);可回滚

31. window平台查询端口

  • netstat |findstr “120.78.12.133”

32. Mysql数据库中各个表数据量大小查询

  • SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE,CREATE_TIME,CONCAT(ROUND(data_length/1024/1024,2),’MB’) AS datalength,CONCAT(ROUND(index_length/1024/1024,2),’MB’) AS indexlength FROM information_schema.TABLES ORDER BY data_length DESC
  • 本MySQL实例中各个库、表的大小都记录在information_schema.TABLES

持续更新中。。。。。。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注