• 20200309 Linux命令


    上周回顾

    使用vmware当成虚拟机,virtualbox 
    企业中使用最多的就是 centos 6和7 ,
    6和7中的命令都差不多 掌握 linux 常见的基本命令操作,企业中服务器都是unix系列的, 全部都是敲命令的。深入学习linux,参考老男孩运维课程 
    宿主机(windows)连接虚拟机(centos),大部分人一般使用xshell (ssh), putty, secureCRT。 在mac下,自带的工具直接连接,finalshell
    

    linux命令

    1. 网络相关

    hostname

    hostname  显示主机名称
    hostname -f 显示完整的主机名和域名
    hostname -i 显示当前机器的ip地址
    

    ping

    ping静数据包发送用户指定的地址,当包被接受,目标机器发送返回数据包

    windows中的ping,只会执行4次,linux中会一直ping下去
    

    ifconfig

    查看用户网络配置,他显示当前网络设配配置

    centos7 中使用 ip命令 以及ip addr
    

    netstat

    Centos7默认不安装netstat组件,需要使用时需要自己安装。

    netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
    netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
    

    安装使用

    安装:
    	yum install net-tools
    查看:
    	netstat -natup
    

    ps

    ps -aux
    	是列出当前服务器上的所有的进程
    	
    组合使用:
    	| :管道符 ,将左边执行的命令结果传给右边进行操作
    	grep: 用来过滤筛选
    
    	ps -aux | grep mysql # 查看mysql所有的相关进程
    
    

    kill

    杀死某一个进程
    	kill 服务的进程号
    	kill -9 服务的进程号  # -9 :强制杀死
    

    service

    centos6的系统

    service命令能够将目录“/etc/init.d/”中有关网络服务或系统服务脚本程序以一种统一的格式执行,格式为:“service 脚本程序 选项”,常用选项有:status、stop、 start、restart。service命令使用举例如下:
    
    • service 服务名 status : 查看某一个服务的状态

      • service sshd status : 查看sshd服务的状态
    • service 服务名 stop : 关闭某一个服务

      • service sshd stop : 关闭sshd服务
    • service 服务名 start : 启动一个服务

      • service sshd start: 启动ssh的服务
      • service 服务名 restart : 重新启动一个服务
      • service sshd restart: 重新启动ssh的服务

    centos7系统:

    systemctl status 服务名    # 查看某一服务的状态
    systemctl start 服务名		# 启动
    systemctl restart 服务名	# 关闭
    

    top

    
    

    wget

    向某一网页发送get请求,获得的信息并保存到路径下

    wget https://www.baidu.com/
    

    2. vim的指令

    需要进行安装

    不装的话,虚拟机上只有vi
    

    常见命令

    复制 yy   
    粘贴 p
    删除 dd
    创建文件 
    	vim 文件名.txt
    	touch 文件名.txt
    

    3. 基础命令

    clear

    clear 
    ctrl l
    
    都是清空屏幕的作用
    

    yum

    安装程序

    lrzsz

    需要进行安装

    yum install lrzsz* -y
    安装所有日志rz sz 的所有包,-y不经过确认直接安装
    
    使用:
    rz:
    	从本地选择上传文件
    sz:
    	下载某一文件到本地
    

    df

    查看磁盘的使用情况

    df或df -h

    [root@localhost /]# df
    
    Filesystem              1K-blocks    Used Available Use% Mounted on
    /dev/mapper/centos-root  17811456 1638232  16173224  10% /
    devtmpfs                   485780       0    485780   0% /dev
    tmpfs                      497948       0    497948   0% /dev/shm
    tmpfs                      497948    7824    490124   2% /run
    tmpfs                      497948       0    497948   0% /sys/fs/cgroup
    /dev/sda1                 1038336  135592    902744  14% /boot
    tmpfs                       99592       0     99592   0% /run/user/0
    
    [root@localhost /]# df -h
    
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   17G  1.6G   16G  10% /
    devtmpfs                 475M     0  475M   0% /dev
    tmpfs                    487M     0  487M   0% /dev/shm
    tmpfs                    487M  7.7M  479M   2% /run
    tmpfs                    487M     0  487M   0% /sys/fs/cgroup
    /dev/sda1               1014M  133M  882M  14% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    

    查看cpu使用cat /proc/cpuinfo

    [root@localhost /]# cat /proc/cpuinfo 
    
    processor	: 0
    vendor_id	: GenuineIntel
    cpu family	: 6
    model		: 158
    model name	: Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz
    stepping	: 10
    microcode	: 0xb4
    cpu MHz		: 2904.005
    cache size	: 9216 KB
    physical id	: 0
    siblings	: 1
    core id		: 0
    cpu cores	: 1
    apicid		: 0
    initial apicid	: 0
    fpu		: yes
    fpu_exception	: yes
    cpuid level	: 22
    wp		: yes
    flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
    bogomips	: 5808.01
    clflush size	: 64
    cache_alignment	: 64
    address sizes	: 42 bits physical, 48 bits virtual
    power management:
    

    tree

    安装

    yum install tree
    

    使用

    [root@localhost cxw]# tree
    .
    ├── a
    │   ├── aa
    │   └── bb
    ├── a.txt
    └── b
    
    

    clear

    或者ctrl l清屏

    ls

    ls
    ls -a	隐藏文件
    ls -l	详细信息
    ls -al  隐藏+详细
    

    su

    切换用户

    su root	  切换用户身份
    su - root 切换用户(显示登陆信息)
    

    exit

    退出当前用户
    

    sudo

    Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

    使用权限:在 /etc/sudoers 中有出现的使用者。

    sudo -V
    sudo -h
    sudo -l
    sudo -v
    sudo -k
    sudo -s
    sudo -H
    sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
    sudo command
    

    4. 文件操作指令

    mkdir

    创建文件夹

    touch

    创建文件

    cp

    复制文件/文件夹

    cp 文件 目标目录
    
    cp -r 文件夹 目标路径    # 递归进行拷贝
    

    mv

    剪切文件(也可以改名)

    mv 文件 目标路径
    

    echo

    输入内容

    rm

    删除文件

    rm 文件 		# 删除
    rm -f 文件	# 强制删除
    rm -rf 文件	# 递归+强制
    

    查看文件内容

    vi

    cat

    more 分页方式显示

    查看大文件的内容  :   cat 大文件.txt | more
    

    less 与more相似,可前翻页

    tail 查看文件尾部内容

    head 查看文件头部

    find

    搜索文件

    find 文件夹路径 -name 目标文件名
    

    终端文件

    终端文件  /dev/tty
    黑洞文件  /dev/null
    

    文件统计

    wc 参数 文件名
        -c 统计字节数   
        -l 统计行数
        -w 统计字数
        
    

    grep

    强大的正则表达式,搜索文本并将相应的行打印出来

    
    

    5.后台指令

    & 后台运行

    在命令的后面加上&,可以让一个命令在后台自动运行

    
    

    job -l

    查看后台的命令

    history

    记录所有的历史命令

    history   # 查看所有的历史命令(一般记录1000行)
    
    !行数     # 执行行数的命令 (例如:'!100')
    

    环境变量

    echo $PATH
    

    6. 常见面试题

    https://www.cnblogs.com/passzhang/p/8552757.html 
    linux 全部都是一些命令,只需要大家不断去敲去熟练
    

    自动化运维

    python就业方向

    • web方向 (php, java)
    • 爬虫+数据分析 (python)
    • 自动化运维 (Python) saltstck ansible
    • 人工智能 + 机器学习

    案例比较

    项目的流程

      ==>	产品经理调研需求  ==>	三方开会(产品经理,研发,运维)  ==>	研发流程  ==>	开发  ==>	测试(白盒测试,黑盒测试)  ==>	上线(运维)
    

    传统的项目上线流程

    打包压缩,发邮件给运维,运维解压到对应的linux目录下面,然后启动服务,访问就ok了
    

    自动化的上线流程(代码发布系统)

    做一个代码上线的系统,可以通过复选框选择要上线的服务器,上传对应的代码,直接上线,就ok
    

    实现自动化的发布系统,我们需要知道服务器的IP地址,hostname,磁盘大小等服务器的基础信息

    目标: 自动化运维就是标准化一切,实现各种自动化的系统,比如说(代码自动发布系统,监控系统,自动装机系统等)

    CMDB简介

    CMDB 是自动化运维的基石系统,是所有子系统的数据来源

    CMDB就是配置管理数据库,存储与管理企业IT架构中设备的各种配置信息,通过识别、控制、维护,检查企业的IT资源,从而高效控制与管理不断变化的IT基础架构与IT服务,并为其它流程,例如事故管理、问题管理、变更管理、发布管理等流程提供准确的配置信息。
    

    CMDB: 就是管理服务器的基础信息的 configure manage database
    目标: 采集服务器的基础信息(ip,hostname,磁盘信息等)

    CMDB可以存储并自动发现整个IT网络上的各种信息,比如一个IT网络上有多少台服务器、多少存储、设备的品牌、资产编号、维护人员、所属部门、服务器上运营什么操作系统、操作系统的版本、操作系统上有哪些应用、每个应用的版本等等,此外,CMDB还有一个非常重要的功能,即存储不同资源之间的依赖关系,如果网络上某个节点出现问题,通过CMDB,可以判断因此受到影响的业务
    
    作者:爱喝咖啡的土拨鼠
    链接:https://www.jianshu.com/p/9d6a246028e5
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    

    img

    CMDB架构图

    思考步骤:

    1.如何获取服务器的主机名或者ip地址等信息?

    答:执行linux的相关命令,比如说执行ifconfig获取IP地址

    2.如何使用Python来执行linux命令?

    答:使用subprocess执行

    subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。
    
    subprocess用来替换多个旧模块和函数:
    
    os.system
    os.spawn*
    os.popen*
    popen2.*
    commands.*
    运行python的时候,我们都是在创建并运行一个进程,linux中一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在python中,我们通过标准库中的subprocess包来fork一个子进程,并且运行一个外部的程序。subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所欲我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。
    

    3.如何将采集到的数据发送给api?

    答:使用requests模块完成发送数据

    4.如何在服务端获取客户端post过来的数据?

    答:使用request.body获取。然后接下来会判断头信息,content-type是啥类型

    客户端发送的数据头
    
    content-type: application/url-formed-encode
    	使用request.POST获取数据 
    
    content-type:application/json
    	使用 request.body获取 
    

    第一套方案:agent

    缺点:每部署一台机器,都需要将写的采集的代码部署到服务器上一遍,然后设置定时任务,定时

    执行img

    img

    第二套方案:ssh类方案

    img

    img

  • 相关阅读:
    Java内存模型(JMM)
    线程安全问题的本质详解: 原子性、有序性、可见性
    Quartz实现分布式可动态配置的定时任务
    Java引用详解-StrongReference SoftReference WeakReference PhantomReference
    流行的报表生成工具-JXLS
    Java线程监控及中断
    IntelliJ IDEA 内存优化最佳实践
    Dapeng框架-开源高性能分布式微服务框架
    Scala实现Try with resources自动关闭IO
    Jvm启动,关闭及对应钩子
  • 原文地址:https://www.cnblogs.com/fwzzz/p/12460479.html
Copyright © 2020-2023  润新知