linux——运维基础,与常用命令

 运维概述
    1 什么是运维
        服务器的运行维护
    2 名词 
        IDC(互联网数据中心)
    3 监控软件
        zabbix(用的最多), nagios, cactti
    4 常用的linux操作系统
        1 CentOS
        2 Redhat
        3 Ubuntu
    5 虚拟化
        esxi 6.5  (用vsphere client 连接)
    6 web正向代理(客户端知道自己使用的代理IP)
        1 用途
            1 访问原来无法访问的资源(goole)
            2 对web服务器隐藏用户信息
    7 nginx反向代理(客户端没有感觉)
        1 流程
            客户端 --> 反向代理服务器 --> 把请求转发给内部网络服务器
        2 作用
            1 保证内网安全,可以使用方向代理提供WAF功能,阻止WEB攻击
            2 实现负载均衡,优化网站的负载
                负载均衡规则:(通过nginx反向代理)
                    1 轮询 :逐一循环调度
                    2 权重(weight) : 指定轮询几率,权重值和访问比例成正比
                    3 ip_hash : 根据客户端ip分配固定的后端服务器
    8 负载均衡实现(修改nginx配置文件)
        upstream servers{#定义集群
            server 10.10.10.11;
            server 10.10.10.12 weight=2;
            server 10.10.10.13;
            server 10.10.10.14 backup;
            }
        server{
            listen 80;
            ... ...
        }
linux 常用命令
    1, ifconfig 查看IP地址和MAC地址
    2 nslookup :解析域名对应的ip地址
    3 top :linux下的任务管理器,动态显示当前所有进程CPU以及内在的使用率,q退出
    4 ps -aux | grep '服务名':显示系统进程(PID号)
                
    6 df -h:查看磁盘使用情况 ,一般查看根('/'7 ls -lh : l 表示长格式,h 提供易读单位
    8 ls -lhd 文件夹名 :查看文件夹大小
    9 chmod : 修改文件权限
        chmod +x 文件名 
        chmod 644 文件名
            r :4  w:2 x:1
    10 wc -l :统计文件的行数
          wc -l /etc/password :统计linux系统有多少个用户
    11 sort : 对文件中的内容进行排序
        sort ip.txt
    12 uniq -c :  配合sort使用效果更好
        1 作用:去除重复的行,并统计每行出现的次数(相邻行才能去重)
    13 find命令:根据指定条件查找文件/目录
        1 
            1 -name :文件名查找
                find 路径  -name "文件名"
            2 -iname :不区分大小写
        2 -type :根据类型查找(文件|目录)
            1 常用选项
                f :文件
                d :目录
                l : 链接(link快捷方式)
            find . -name 'mysql*' -type f
        3 按大小查找
            1 + :大于...的文件/目录
            2 - :小于...的文件/目录
            3 查找/home/treana/software大于20m的文件
                find /home/tarena/software/ -size  +20M -type f
         4 -ctime :根据时间查找
                1 -ctime + 1 :表示1天以前的文件/目录
                2 -ctime - 1 :表示1天以内的文件/目录
                3 find . -ctime -1
         5 处理动作
                find ... -exec Linux命令 {} ;
                1 当前目录下查找1天以内的.doc文件,然后删除
                    find . -name '*.doc' -ctime -1 -type f -exec rm -rf {} ;
6 根据指定内容查找-->(#changsouce)
          find . -type f -name "*.html" |xargs grep -i "#changsource"

          find . -name "*.html" |xargs grep -i "#changsource"
14 ssh : 远程连接到服务器
        1 格式:ssh 用户名@IP地址
    15 scp 
        1 远程复制文件/目录
        2 scp 文件名 用户名@IP地址:绝对路径
    16 du -sh :显示当前目录大小
        du -sh 目录名
运维工具
    1 xshell(软件,安装在windows)
        安全终端模拟软件
        1 xshell的使用方法
            文件 - 新建
        2 Windows <--> Linux  文件互传
            1 安装lszrz
                sudo apt-get install lrzsz
            2 windows文件 -> Linux
                在xshell终端
                rz
            3 Linux文件 --> windows
                在xshell终端
                sz 文件名
周期性计划任务
    1 crontab -e 
        选3 或者4 
    2 设置周期性计划任务
        *  *   *  * *  python3 /home/tarena/software/..py
        分 时 日 月 周
        *: 代表所有可能的值
        ,: 指定多个时间点
            每月的1号和5号执行1 个py 文件
            0 0 1,5 * *  python3 /home/tarena/software/..py 
        /: 指定时间间隔的频率
            每隔10分钟执行1个py 文件
            */10 * * * * * python3 /home/tarena/software/...py
        -: 指定一个时间段
            0点- 6点之间,每小时去执行1个py文件
                0 0-6/1 * * * python3 /home/tarena/software/...py
        1 每分钟执行1次 backup.py
            */1 * * * * python3 /home/tarena/software/backup.py
        2 每小时的第3分钟和第15分钟执行backup.py
            3,15 * * * * python3 /home/tarena/software/backup.py
        3 每周六和周日的0点执行backup.py
            0 0 * * 6,0 python3 /home/tarena/software/backup.py
        4 每天的18点-23点之间,每小时执行1次backup.py
            0 18-23/1 * * * python3 /home/tarena/software/backup.py
5 awk 的使用
    1 语法格式:awk 选项 '动作' 文件
    2 用法: Linux命令 | awk 选项 '动作'
    3 使用示例
        1 awk '{print "hello"}' ip.txt
        2 de -h | awk '{print $1}'
            作用:显示de -h 结果第一列的内容(默认以空白分隔不同的列)
        3 awk -F '分隔符' '{动作}' ...
            ## 默认以空白分隔,-F 可手动指定分隔符
        4 显示本机的IP地址    
            ifconfig | head -2 | tail -1 
        5 sort 的参数
            sort -k 1 :按照第1列进行排序
            sort -n   : 以数字的方式比较排序
            sort -r   : 倒序排列
            sort -rnk 1 :把第1列以数字的方式进行倒序排列

            
shell编程,,第一句必须要加上#!/bin/bash
在执行时,需要使用  sh xx.sh 来执行
后缀以.sh

shell 编程
    1 所有的shell程序都是以 .sh结尾
    2 执行方式
    3 shell 基础
        1 变量赋值
            1 变量名=值 : =两侧不能有空格
                number=10 name="张三丰"
            2 获取linux命令的执行结果给变量赋值
                1 time=$(date)
                2 time=`date`
            3 接受用户从终端输入给变量赋值
                read -p "提示信息" 变量名
                read -p "输入姓名:" name
            
                ex:
                    #!/bin/bash
                    number=10
                    time=$(date)
                    read -p "请输入姓名:" name
                    echo $number
        2 输出语句
            echo $变量名
        3  ''"" 的区别
            在引号内
            1 ''无法获取变量的值
            2 ""可以获取变量的值
                read -p "input name:" name
                echo '名字是:$name'  --> 结果: 名字是:$name
                echo "名字是:$name"   --> 结果:名字是:张三丰
                
        4 运算符
            1 算术运算符
                + - * / % 
                ++ :自加1运算
                -- 
                运算命令(let):
                    1 let运算表达式
                        i=1
                        let i++
                        echo $i --> 2
                    2 expr运算表达式
                        i=1
                        sum=`expr $i + 5`
                        echo $sum -->6
            2 比较运算符
                1 文件状态
                    -e :文件/目录,是否存在
                    -d:目录/判断是否为目录
                    -f:文件 ,判断是否为文件
            3 字符比较 = !=
                空: -z 
                非空: !-z 或 -n
            4 数值比较 
                等于 eq
                不等于 -ne
                小于: -lt  -le
                大于: -gt    -ge
                
            5 逻辑比较
                逻辑与:&&
                逻辑或: ||
        5 if条件判断
            1 语法格式:
                if [ 条件 ];then
                    执行条件
                elif [];then
                    执行条件
                else
                    执行语句
                fi
                
        6 for 循环
            语法:for 变量名 in 值列表
                do 
                    执行语句
                done
            造数方法 : `seq 起始值 步长 中止值`(包括终止值)
                例 `seq 5` : 1 2 3 4 5 默认起始值为1 ,步长为1
            c 语言的for 循环:for((赋初值;条件判断;步长))
                             do 
                                执行语句
                            done 
        7 while 循环
            语法: while [条件]
                do 
                    执行语句
                done
        8 函数:语法:函数名(){
                    代码块}
                调用:函数名
原文地址:https://www.cnblogs.com/Skyda/p/10056695.html