shell编程

1. 工作范围

1. 海量运维&运营规划

1. 规划

  1. 架构规划
  2. IDC规划
  3. ISP规划
  4. 服务器规划
  5. 预算规划

2. 管理

  1. 配置管理
  2. 事件管理
  3. 问题管理
  4. 成本管理
  5. 容量管理
  6. 资源管理
  7. 需求管理

3. 流程/规范

  1. 项目立项规范
  2. 运营故障分级和处罚规范
  3. 重大运营故障处理流程
  4. 环境一致性规范
  5. PHP规范
  6. 运营资源申请规范
  7. IDC变更流程
  8. 预算管理规范

4. 系统/平台

  1. CDN平台
  2. 静态应用平台
  3. 点击流系统
  4. 动态应用平台
  5. 数据库平台
  6. 下载平台
  7. 网络健康系统
  8. 经营分析系统
  9. 存储平台
  10. 质量检测系统
  11. 流媒体平台
  12. GSLB管理系统
  13. BOSS系统
  14. 自动发布系统
  15. 立体监控系统
  16. 站点分析系统
  17. 统一告警系统
  18. 运维工具系统

5. 监控

  1. URL监控
  2. LVS监控
  3. IDC监控
  4. 数据库监控
  5. 模块监控
  6. 站点监控
  7. 响应监控

6. 告警

  1. 告警模型
  2. 告警收敛
  3. 告警统计
  4. 告警关联

7. 安全

  1. 漏洞扫描
  2. 域名劫持扫描
  3. 挂马扫描
  4. CGI扫描
  5. 网页篡改扫描

8. 考核

  1. 运营质量考核
  2. 架构能力考核
  3. 运营预算考核

9. 优化

  1. 速度优化
  2. 成本优化
  3. ISP优化
  4. CDN优化
  5. 告警优化
  6. 故障预案
  7. 故障演习

2. 三剑客&find命令

2.1. grep

2.2. sed

行文件编辑工具
sed [参数] ‘<匹配条件> [动作]’ [文件名]

2.2.1. 参数

  1. -n 取消静默输出
  2. -i 对文件进行编辑

2.2.2. 动作

  1. i 当前行新增
  2. d 删除匹配内容
  3. s 替换匹配内容
  4. p 查找指定内容

2.2.3. 例

1. 替换某一行/列的值
#!/bin/bash
sed -i '行号s#原内容#替换后的内容#列号' [文件名]
2. 全文替换
#!/bin/bash
sed -i 's#原内容#替换后的内容#g' [文件名]

2.3.3. awk

文档编辑工具
awk [参数] ‘[动作]’ [文件名]

2.3.1. 参数

  1. -F 指定列分隔符
  2. -f 调用脚本
  3. -v 定义变量

2.3.2. 常见动作

  1. print 显示内容
  2. $0 显示当前行的所有内容
  3. $n 显示第n列的所有内容

2.3.3. 内置变量

  1. FILENAME 当前输入的文件名,变量只读
  2. NR 指定显示行的符号
  3. OFS 输出格式的列分隔符,缺省是空格
  4. FS 输入文件的列分隔符,缺省是连续空格和Tab

2.3.4. 动作组成

  1. BEGIN {命令} 初始代码块,和变量相关
  2. /pattern/ {命令} 匹配,执行代码块
  3. END {命令} 结束代码块,信息输出相关

2.3.5. 例

1. 列出当前目录中大于500字节的文件信息
#!/bin/bash
ls -l | awk '{ if (( $5>=500 )) print "文件:" $9 "\t" "文件大小:" $5 "B"}'
2. 列出当前目录中大于等于500字节的普通文件信息
#!/bin/bash
ls -l | awk '{ if (( $5>=500 && /^_/ )) print "文件:" $9 "\t" "大小:" $5 "B" }'

2.4. find命令

find [路径] [参数] [关键字] [动作]

2.4.1 参数

  1. -name 按文件名查找
  2. -user 按文件属主查找文件
  3. -group 按文件属组查找文件
  4. -type 查找某一类型文件
    1. b 块设备文件
    2. d 目录
    3. c 字符设备文件
    4. p 管道文件
    5. l 符号链接文件
    6. f 普通文件

2.4.2 关键字

  1. -size n(K|M|G) : c ---- 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
  2. -perm(/ | -)权限 ---- 按照文件权限来查找文件. / ---- 表示有一个权限匹配即可 - ---- 表示相反权限匹配才可
  3. -mtime (-|+) n ---- 查找n天数(内|外)修改的文件
  4. -ctime (-|+) n ---- 查找n天数(内|外)该变的文件
  5. -atime (-|+) n ---- 查找n天数(内|外)访问的文件
  6. -depth ---- 在查找文件时, 首先查找当前目录中的文件, 然后再在其子目录中查找
  7. mindepth n ---- 在查找文件时, 查找当前目录中的第n层目录文件, 然后再在其子目录中查找
  8. -path “子目录” ---- 在指定目录的子目录下查找, 一般与-prune使用
  9. -prune ---- 在查找文件时, 忽略指定内容, 不能和-depth使用, 否则会自动忽视prune
  10. -newer ---- 查找比指定文件新的文件
  11. ! ---- 表示取反

2.4.3 动作详解

  1. print ----- 默认选项, 显示名称, -o -print 表示不仅仅显示目录名, 还显示目录里面的文件名
  2. -ls ---- 显示文件属性
  3. *-exec 命令 {} * ---- 使用命令对查找结果进行处理, 查找结果使用"{}"来表示

2.4.4 例

1. 在当前系统中查找文件类型为普通文件的文件
#!/bin/bash
find /tmp -type f
2. 根目录下查找5日以内更改的文件
#!/bin/bash
find / -mtime -5
3. 在tmp目录下查找3日以前更改的文件
#!/bin/bash
find /tmp/ -mtime +3
4. 在目录下查找不包含backup子目录
#!/bin/bash
find /data/scripts -path "/data/scripts/backup" -prune -o -print
5. 忽略多个文件夹
#!/bin/bash
find . \{-path "./backup" -o -path "./backup2" \} -prune -o -print
6. 以列表的方式查看查找到的文件
#!/bin/bash
find /etc -perm -640 -1s
7. 对查找到的文件进行改名
#!/bin/bash
find ./ -perm -002 -exec mv {} {} .old \ ;
8. 查找到的文件删除
#!/bin/bash
find . -name .svn | xargs rm -rf
9. 查找磁盘中大于3M的文件
#!/bin/bash
find . -size +3000k -exec ls -ld {} ;

点点点工程师自我提升运维方向----shell编程基础知识盘点相关推荐

  1. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》

    本书历史上已出版最实战的Shell高级编程实战书籍,没有之一,和市面书籍不同,本书是作者经过18年的运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者. <跟 ...

  2. 运维需要掌握的基础知识

    linux运维掌握的知识面是比较多的,归纳起来,大致如下: (1).操作系统方面,可以选择linux.bsd等系统,选择一个适合自己的. (2):web方面 ,常用的有nginx,apahe,php, ...

  3. linux运维需要掌握的基础知识

    踏入linux运维工程师这一职业,其实有很多工具技能需要掌握,下面我来给大家一一介绍. 1.shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管 ...

  4. 漫漫运维路——集群基础知识

    集群的基本概念 随着计算机科学的发展,对计算机的性能要求越来越高,比如在很多流量比较大的门户网站以及科学实验环境中需要海量计算的环境,这时候就迫切需要后端的服务器性能有提升.而对于提升后端服务器性能所 ...

  5. 运维笔试Shell编程题

    一.实现批量添加10个用户,用户名为user01-10,密码为user后面跟3个随机字符: #!/bin/bash for i in `seq -w 1 10` douser="user$i ...

  6. adb shell 修改文件名_从零开始学Linux运维|27.Shell编程(函数与参数的传递)

    1.函数 shell可以定义函数,方便调用,定义函数的格式 中括号"[]"内的内容可以省略 [ function ] 函数名 [()]{执行语句;[return 返回值;]} 写一 ...

  7. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  8. linux运维工程师培训课程_Linux运维工程师工作内容总结!

    1.1 Linux运维的主要工作内容 1.什么是linux运维 运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常. 在他运转的过程中,对他进行维护,他集合了网络.系统.数 ...

  9. java运维工程师做什么_网络工程师和网络运维工程师有什么不同?

    其实网络工程师和网络运维工程师,每个地方可能对于这个岗位的叫法不同,最大的区别就是,网络运维工程师一般确认工作后,就一直在一个地方工作,比如政府单位,大型企业,都是需要运维工程师一直在那守着的,如果你 ...

  10. 运维工程师主要做什么_网络工程师和网络运维工程师到底有什么不同?

    前言: 大家好,我是薛哥.网络工程师和网络运维工程师是一样的,其实二者有着很大的区别,下面给大家介绍一下 正文: 一.工作内容不同 1.网络工程师 1)负责机房内的网络联接及网络间的系统配置. 2)负 ...

最新文章

  1. Lumen / Laravel 5.5 使用网易邮箱 SMTP 发送邮件
  2. 防止熊猫烧香的微软补丁
  3. spell_picture第三版终于摆脱了命令行的操作
  4. 论文浅尝 | KG Embedding with Iterative Guidance from Soft Rules
  5. 信息学奥赛C++语言: 螺旋方阵1
  6. java装饰模式_Java装饰者模式实例详解
  7. Lua中ipairs和pairs的区别详解
  8. 【干货来了】ComponentOne经典在线演示等你来体验!(上)
  9. BlueScreenView: 系统蓝屏分析工具
  10. Un*、Id分别突变情况下单闭环直流调速系统仿真
  11. Cifar10数据集转换成jpg格式
  12. 由word制作CHM文件
  13. BlueCoat SG设备对非标准HTTPS应用访问提示不可信任发行者证书问题解决
  14. [bzoj3197][SDOI2013]assassin
  15. Springboot​ mybatis-plus
  16. python 降低图片分辨率的两种方法
  17. Excel -- 实用技巧
  18. 华为如何开展人力资源管理变革
  19. 一个应届生拿字节跳动offer的努力,整整用了一年的时间
  20. 【华为OD机试真题 python】完美走位【2022 Q4 | 100分】

热门文章

  1. [Windows] ISCSI发起程序实例不存在
  2. 继承者来了!CentOS 创始人开辟新项目 Rocky Linux
  3. c语言case语句比较大小,[求助]用switch语句编写比较数值大小程序
  4. 物联网带动传感器站上风口 华灿光电并购美新半导体
  5. python爬取京东商品图片_爬取京东和天猫下载商品图片
  6. MySQL 索引原理
  7. Hackintosh-OpenCore系列篇-Windows install
  8. WM安装windows7超详细教程
  9. 网站+云服务器+价格表,网站 云服务器 价格表
  10. 卡方检验四格表怎么做_SPSS案例实践:2*2四格表卡方检验