当前位置: 首页 > news >正文

运维SRE-01 目录结构体系、find

1. Linux目录结构体系

Linux 核心目录的核心文件概述

在这里插入图片描述

1) /etc下面

在这里插入图片描述

a) /etc/hosts 主机ip地址与域名(主机名)对应关系
b) /etc/hostname 主机名
c) /etc/sysconfig/network-scripts/ifcfg-ens33或ifcfg-eth0
Linux网卡配置文件
d)了解 /etc/issue /etc/issue.net 用户登录系统之前显示的信息e)了解 /etc/motd 用户登录系统后显示的内容
f)了解 /etc/fstab 开机的时候自动挂载目录。
g)了解 /etc/rc.local 开机自动运行的内容存放这个文件。
h)了解 /etc/profile /etc/bashrc 存放用户环境变量信息。
i)小结

文件含义
/etc/hostsip地址与主机名解析关系(对应关系)
/etc/hostname 主机名,hostnamectl , hostname
/etc/sysconfig/network-scripts/ifcfg-ens33ens33 改为 eth0 .网卡配置文件。
/etc/issue /etc/issue.net
/etc/motd
/etc/fstab开机自动运行的内容存放这个文件。
/etc/rc.local开机自启动配置文件
/etc/profile
/etc/bashrc
2) /var目录经常变化的内容,日志

a) /var/log/messages
b) /var/log/secure

3) /proc/ 下面核心文件

a) /proc/cpuinfo cpu信息
在这里插入图片描述

b) /proc/meminfo 内存信息
c)了解:/proc/mounts 磁盘挂载信息d) /proc/diskstats 磁盘使用情况的信息e)了解 /proc/loadavg 系统负载信息

which 查询命令的绝对路径。

whereis 查询命令的绝对路径,命令相关文件。

在这里插入图片描述

在这里插入图片描述

diff

a表示 append 增加内容了
c表示 change 这样内容被修改
d表示 delete 删除了行

vimdiff

在这里插入图片描述
在这里插入图片描述

yum源优化

yum源 Linux下载软件地方。 软件仓库。

curl -o /etc/yum.repos.d/CentOS-7.9.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/CentOS-7.9.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop 
htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect
yum install -y sl cowsay

排序与去重命令

1) sort 用于排序的命令
默认是按照字符顺序对比,从左到右一位一位对比。

选项
sort文件
-n对数字排序
-r逆序排序
-k指定某列 -k1
指定多列 -k1 -k2
-k1.1 根据第1列的第1个字符进行排序
-t指定分隔符

在这里插入图片描述

2) uniq (unique)(去重并显示次数)合并文件中相邻的相同的行,同时可以显示次数

uniq -c 文件  \\去重并统计次数

在这里插入图片描述

案例

(对ip去重并统计次数)

  1. 对ip列表先排序 sort
  2. 然后通过uniq -c显示次数
  3. 对重复次数再次 排序 sort
  4. 取出次数最多的前10个
sort failed-ip.txt |uniq -c |sort -rn |head

反引号``

``内容 优先执行里面的命令,然后执行其他命令。
`` 与 $() 作用域用法一样。

企业生产备份案例 :

准备/backup目录,把etc打包压缩存放在/backup/ ,给压缩包上面加上时间
/backup/etc_2022-11-11.tar.gz
tar zcf /backup/etc.tar.gz /etc/

tar zcf /backup/etc_`date +%F`.tar.gz /etc/

#每天执行备份命令:定时任务。
#反引号场景:
先取出时间,ip地址。。。。。
然后创建文件,目录,打包压缩。。。。

find查找

选项
-type查找指定类型的文件f(file)d(directory)
-name指定文件名
-size根据大小进行查找+20k大于20kb 小于-20k
k(kb)
M(Mb)注意大小写
-mtime根据文件修改时间进行查找-mtime+7 7天前
-maxdepth 1指定find命令查找的深度,这个选项要放在选项的第1个
-iname查找文件的时候不区分大小写(文件名)
-user或-group指定用户和用户组
-perm指定权限
案例:
在/hb目录下寻找,以.txt结尾的文件
find /hb -type f -name '*.txt'  

案例:
在/etc中查找文件,文件名字包含ifcfg

find /etc -type -f -name '*ifcfg*'

案例:
在/etc下查找文件,找出.conf结尾的文件,大小大于20kb

find /etc -type f -name '*.conf' -size +20k

案例:
在/etc/目录下查找,修改时间(时间)是7天之前(文件最近1次修改内容距今超过7天)

find /etc -mtime +7

在这里插入图片描述

PS:

创建30个文件,每次修改之间修改系统时间,然后给文件名赋值当前日期

mkdir  -p /oldboy/logs
cd /oldboy/logs
for n in {01..30}
dodate -s "202203$n"touch access_`date +%F`.log
done
date -s "20220330"

find的命令与其他命令的配合

  1. find与rm,ls,cat,head,替换进行配合
  2. find与cp/mv配合
  3. find与tar配合
环境准备
mkdir -p /hb/find
cd /hb/find
touch hb{01..10}.txt

案例1:
找出/hb/find目录中以.txt结尾的文件显示详细的信息(ls -lh)

ls -h `find -type f -name '*.txt'`
find -type f -name '*.txt'|xargs ls -h
find -type f -name '*.txt' -exec ls -lh {} \;## 语法 {}代表前面的参数,\;结束 这里exec每find一次传一次参数,就执行一次
结论:

|管道 与 |xargs如何处理数据

共同点区别
管道把前面命令的结果通过管道传递给后面的命令传递仅仅是普通的字符
xargs把前面命令的结果通过管道传递给后面的命令传递的是参数(前面传递过来的才是命令可以识别的文件名或目录名)

在这里插入图片描述

find与cp/mv配合

案例01:
找出/oldboy/find目录中以.txt结尾的文件 复制到/tmp目录

cp $( find /oldboy/find/ -type f -name '*.txt' ) /tmp
find /hb/find/ -type f -name '*.txt'|xargs cp -t /tmp/
find /hb/find/ -type f -name '*.txt'|xargs -i cp {} /tmp/
find  /hb/find/ -type f -name '*.txt'|exec cp {} /tmp/ \;
find与tar配合

案例01:
找出/oldboy/find目录中以.txt结尾的文件 打包压缩存放在/tmp/find.tar.gz

 tar zcf /tmp/find-fan.tar.gz     `find /hb/find/ -type f -name '*.txt'`find /hb/find/ -type f -name '*.txt' |xargs tar zcf /tmp/find-xargs.tar.gzfind /hb/find/ -type f -name '*.txt'|exec tar zcf /tmp/find-exec.tar.gz {} +
这里,+表示对于 find 命令的每个结果,[command] 只执行一次。所有结果都作为参数一起传递给 [command]。+ 不需要用\+

文件属性

在这里插入图片描述

inode与block

一个非空的文件
inode: 文件的属性信息
block:文件的内容(文件是实体)

概念说明
inode 索引节点存放文件的属性信息(大小,权限,时间,连接数),存放文件block的位置(指向文件实体的指针)。没有存放文件名。
block 块(数据块)存放数据空间。(文件内容)
cat oldboy.txt 与 Inode block

在这里插入图片描述

概念说明特点
inode 索引节点存放文件的属性信息(大小,权限,时间,连接数)。
存放文件block的位置(指向文件实体的指针)。
没有存放文件名。
1. 每创建一个文件就要有1个inode空间。
2. 同一个磁盘分区中如果两个文件的inode相同,互为硬链接。
3. inode大小和数量是在磁盘分区格式化的时候创建。
4. 数量查看 df -i
block 块(数据块)存放数据空间。(文件内容)
1. 每个非空文件,至少占用1个block空间。
2. block默认是4k大小,文件较大会占用多个block空间。
3. 如果文件非常小,至少占用1个block.
4. block大小与数量也是在格式化创建文件系统的时候生成。
5. 数量查看 df -h

相关文章:

  • Codeforces Round 921 (Div. 2)补题
  • ambari hdp 企业级安装实战
  • C语言之猜凶手
  • 04 Redis之命令(Hash型Value命令+List型Value命令+Set型Value命令+有序集合ZSET型Value命令)
  • MySQL必看表设计经验汇总-上(精华版)
  • Linux之常见的管理命令
  • java日志框架总结(三 、Log4j日志框架)
  • SQL注入-sqli-labs-master第一关
  • 微信生成带参数二维码(用户id), 扫码可获取用户id
  • 免费开源的微信小程序源码、小游戏源码精选70套!
  • Python一行命令搭建HTTP服务器并外网访问 - 内网穿透
  • Unity——八叉树的原理与实现
  • 算法每日一题: 最大合金数 | 二分
  • 概念抽取:构建认知基础的关键步骤
  • 面试经典 150 题 ---- 移除元素
  • [数据结构]链表的实现在PHP中
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • es6--symbol
  • HTTP中GET与POST的区别 99%的错误认识
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java多线程(4):使用线程池执行定时任务
  • JS函数式编程 数组部分风格 ES6版
  • Mac转Windows的拯救指南
  • Netty 4.1 源代码学习:线程模型
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Webpack入门之遇到的那些坑,系列示例Demo
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 初识MongoDB分片
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 番外篇1:在Windows环境下安装JDK
  • 给新手的新浪微博 SDK 集成教程【一】
  • 构建二叉树进行数值数组的去重及优化
  • 官方解决所有 npm 全局安装权限问题
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 悄悄地说一个bug
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 我这样减少了26.5M Java内存!
  • 一个完整Java Web项目背后的密码
  • 积累各种好的链接
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​TypeScript都不会用,也敢说会前端?
  • # 数论-逆元
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #WEB前端(HTML属性)
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • ()、[]、{}、(())、[[]]命令替换
  • (20050108)又读《平凡的世界》
  • (SpringBoot)第七章:SpringBoot日志文件
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (六)Hibernate的二级缓存
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练