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

原文地址:https://www.cnblogs.com/fwzzz/p/12733930.html