上周回顾
使用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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
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
缺点:每部署一台机器,都需要将写的采集的代码部署到服务器上一遍,然后设置定时任务,定时
执行