python 运维监控系统在 Linux 系统运维中都有哪些应用

Python运维开发
系统运维的Python课程主要讲在日常的运维工作中应用Python来解决实际问题,本课程以实际的案例出发,通过编写 Python实用工具在解决问题的同时说明系统运维在处理问题时的解决思路。课程共分为两个阶段,第一阶段主要讲解如何使用Python,利用Python完成运维工作中常用的文件操作、系统监控、远程管理、日志分析以及应用部署等工作。第二阶段主要讲解利用Python构建一个自成体系的运维环境,更多注重Python与其他系统运维工具的结合。
课程优势:本课程以实际的案例出发,采用全实战案例讲解,通过编写 Python实用工具在解决问题的同时说明系统运维在处理问题时的解决思路。课程结合当下最实用的运维技术及工具,打造全自动化运维平台,实现定制化运维平台。
python是一种编程语言。它可以用来开发从简单到复杂的各种应用程序。代码清晰、开发快速,灵活而强大。著名的自由软件作者Eric Raymond在他的文章《如何成为一名黑客》中,将Python列为黑客应当学习的四种编程语言之一,并建议人们从Python开始学习编程。Python几乎可以用在任何领域和场合。作为一种通用语言,Python的角色几乎是无限的。
比Java简单、更易于使用。Java从C++这样的系统语言中继承了许多语法和复杂性; 比PHP易懂、易学、并且用途更广。不仅可以轻松构建WEB站点,也被广泛的应用于几乎每个计算机领域,甚至机器人、电脑动画; 比C++简单、更易于使用,因为作为脚本语言,常常扮演多种不同角色; 比Perl更简洁的语法、更简单的设计,更据可读性、更易于维护,有助于减少Bug; 比Ruby更成熟、语法更具可读性; 实现快速应用开发,Python是C、C++和Java等系统开发语言非常好的替代品;减少很多编写、调试和维护的麻烦。
作为一种通用语言,Python几乎可以用在任何领域和场合,角色几乎是无限的。 下面这些公司都在使用Python完成各种各样的任务,国内:豆瓣、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、热酷、土豆、新浪、果壳…; 国外:谷歌、NASA、YouTube、Facebook、工业光魔、红帽… Python在软件质量控制、提升开发效率、可移植性、组件集成、丰富库支持等各个方面均处于先进地位。同样学习编程语言,当然要选择学习业内目前最先进、最热门、将来应用最广泛、最有前途和前景的编程语言。
中谷教育是国内第一家专注于Python培训的机构,我们把推广Python技术、培养Python人才作为自身的使命。执着跟热情促使我们倾注所有心力!我们的课程完全由一线的项目工程师以及就业指导师根据用人单位对Python工程师的需求,结合学员情况而设计。俗话说“细节决定成败”,如果你喜爱Python,并想成为一名优秀的python程序员,那么首选我们—中谷教育。走进中谷,是您踏入行业的开始;走出中谷,是您实现职业价值的开始!中谷的每位老师跟同学是你一生的朋友!前方的路很远,我们将始终支持你!
Python非常适合用来入门。学习编程是没有学历和基础限制的,所谓的限制通常来自于用人单位。但是,不管是名企还是创业公司,他们需要的是你处理问题、解决问题的能力。除了学历你还有很多种方式证明你自己的能力,技术博客、在线作品展示等等。为了对你负责,最好联系我们的咨询老师做一下逻辑能力测试。跟着老师学习,我们保证让你学会Python,并且打下一个坚实的基础。
高级Python/Linux讲师: 李老师
中谷教育Python/Linux高级讲师。拥有RHCE官方讲师认证资格,精通Python针对Unix/Linux操作系统的管理与应...
高级Python讲师/顾问: 白老师
曾先后任职于新浪、Zynga、EA等多家大型互联网公司。现就职于新浪担任系统运维架构师。从事系统运维工作 8年之 久,擅长利用Py...
高级Python讲师: 邹老师
中谷教育在国内大量录制免费视频推广Python技术的开源技术专家,的主力播客。技术扎实,授课能够深入浅出,化...
HPC-WMS (HPC- WEB管理系统 )
Lighten运维管理系统
AirPPT MS-PPT控制软件
超级马里奥(Super Mario)游戏
健康美门户时尚购物平台
云管理平台(Cloud-OMS)系统
周末运维班同学评白老师
1、讲课认真,对待技术问题态度严谨;2、运维技术功底扎实、经验丰富;3、案例丰富、实用。
周末运维班同学评李老师
李老师整体讲课内容比较丰富,特别对一些实例讲解比较实用。讲解深入、内容安排合理,重点突出。
周末运维班同学评白老师
技术新颖、专业。课程讲得好,运维知识深入,对工作有帮助。高级运维学习_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
高级运维学习
上传于||暂无简介
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢developerWorks 社区
OpenLMI(全称 Open Linux Management Infrastructure)顾名思义就是开放式的 Linux 管理基础架构。OpenLMI 是开源项目,旨在提高使用 WBEM 标准的 Linux 系统管理。OpenLMI 项目为管理 Linux 系统提供常用的基础设施。它还可让用户配置、管理并监控硬件、操作系统及系统服务。本文以最新 Fedora 21 为平台介绍 OpenLMI 的部署过程和使用方法。
, 软件工程师
曹元其,自由软件爱好者,目前关注 Linux 和 Python 语言。
前言OpenLMI 是一个 Linux 平台的服务配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack。当你去管理 10 台服务器,你肯定会说小意思。没有任何压力。 当你去管理 50 台服务器,你可能也会说没问他。当你去管理 1000+ 台服务器呢?你是不是就头痛了,不同的硬件,不同的内核版本,不同的软件版本。为了提升效率,OpenLMI 就派上了大用场。OpenLMI 可管理网络监控、用户、用户组、软件包、系统服务、软件包安装删除等。它是是通过 Python 语言开发。相比较其它同类产品来说,OpenLMI 还是非常年轻的,本文以最新 Fedora 21 为平台介绍 OpenLMI 的部署过程和使用方法。OpenLMI 就是开放式的 Linux 管理基础架构。OpenLMI 是开源项目使用 WBEM 标准的 Linux 系统管理。WBEM 即 Web-Based Enterprise Management,WBEM 由 DMTF(Distributed Management Task Force,分布式管理任务组)在许多厂商的帮助下创立,目标是为管理企业环境开发一个标准的接口集。WBEM 模型最关键的部分是它的数据模型(或描述和定义对象的方式)、编码规范(Encoding Specification),以及在客户端和服务器端之间传输数据的模式。WBEM (Web-Based Enterprise Management) 作为一项业界倡议,起始于 1996 年,它规范了企业网络中受管资源的描述与使用。OpenLMI 功能OpenLMI 提供了一套抽象层 API,将系统管理的相关工作任务,以及底层系统运作的复杂程序,统一起来。OpenLMI 里面提供了一整套的代理程序包括:控制器、客户端程序与命令行工具码。其中代理程序可安装在那些需要控管的服务器或虚拟 机上,然后再由 OpenLMI 控制器来管理这些代理程序,并提供相关接口,而客户端程序的作用是,经由控制器来调取代理程序,可利用命令行接口使用 C/C++、Python 或 Java 等语言。oenlmi 项目为管理 Linux 系统提供常用的基础设施。它还可让用户配置、管理并监控硬件、操作系统及系统服务。OpenLMI 旨在简化任务配置及产品服务器管理。OpenLMI 为 Linux 提供常用管理接口。OpenLMI 可让用户执行以下操作:配置、管理和监控服务器及虚拟机运行情况;配置、管理和监控本地或者远程操作系统;配置、管理及监控本地或者远程的存储和网络;使用 C/C++、Python、Java 或者命令行界面调用系统管理。图 1. OpenLMI 的结构示意图通过图 1 可以了解到 OPenLMI 主要包括如下几个部分:一套代理程序,又称为 LMI Providers 或 CIM Providers,可安装在需要监控的服务器上。用来查询,修改和监控系统运行情况。一组标淮化的远程 API,又称 OpenLMI object broker,负责管理所有的代理程序,并为它们提供存取接口。一个标淮通讯基础设施(使用 https 连接的 XML 技术),OpenLMI 被认为是安全性,因为它使用 TLS(HTTPS)进行加密通信。LMIshell,这是一个客户端客户端程序,它的作用是通过 OpenLMI object broker 來调用 LMI Providers。这个客户端通过使用 WBEM + HTTPS 协议访问 CIMOM。其中 LMIshell 客户端系统包括:一组命令行工具和 lmi 交互命令脚本工具(基于 Python 的 lmishell)其他语言(包括 C/C++、Java 等)组成结构如图 2图 2. LMIshell 组成结构主要 Linux 发行版本对于 OpenLMI 的支持情况Fedora 是 OpenLMI 的主要开发平台。从 Fedora 18 这个版本开始支持,推荐使用 Fedora 21 及其之后的版本,它们可以提供所有功能组件。RHEL 和 CentOS,从版本 7 开始支持,这两个发行版本可以提供大部分功能组件。用户需要通过 epel 软件源安装 openlmi 软件包。SuSE Linux 从版本 12 开始支持,可以提供一部分功能组件。Debian 和 Ubuntu 这两个发行版本目前不支持。OpenLMI 应用环境和软件配置笔者使用最简单的网络结构,两台计算机直连,分别代表服务器和客户端。操作系统平台全部是 64 位的 Fedora 21 系统。ip 地址和主机名称:192.168.0.1
Managed systems
主机名称:server1192.168.0.2
LMIshell Clint
主机名称:client2在 2 个节点上添加如下的 hosts 文件# vi /etc/hosts192.168.0.1
server1192.168.0.2
client2服务器端配置首先安装软件包# yum install openlmi然后启动服务# systemctl start tog-pegasus# systemctl enable tog-pegasus打开防火墙的 5989 端口# firewall-cmd --permanent --add-port 5989/tcp设置 Selinux 为 permissive 模式# setenforce 0设置 pegasus 用户密码# passwd pegasus设置远程访问权限修改配置文件#vi /etc/Pegasus/access.conf把下面一行;ALL EXCEPT pegasus:wbemNetwork修改为ALL EXCEPT root pegasus:wbemNetwork客户端设置首先安装 OpenLMI 脚本文件# yum install 'openlmi-scripts*'说明:目前 OpenLMI 脚本文件主要包括如下模块:OpenLMI-account :用户帐户管理模块OpenLMI-logicalfile: 文件和目录管理模块OpenLMI-networking: 网络配置管理模块OpenLMI-powermanagement: 电源管理模块OpenLMI-service: 服务系统管理模块OpenLMI-storage: 存储管理模块OpenLMI-hardware: 硬件信息检索模块OpenLMI-software : 软件管理模块OpenLMI-journald : 系统日志管理模块设置 ca# scp root@ server1:/etc/Pegasus/server.pem /etc/pki/ca-trust/source/anchors/client2-cert.pem# update-ca-trust extractlmi 命令简介lmi 命令格式如下lmi [options]主要选项:---hosts-file &hosts&
路径包含目标主机名的文件。 每个主机都必须列在一行--user &user&
目标主机所使用的用户名--same-credentials
所有主机使用一个认证文件-n --noverify
不验证 SSL 证书-v
屏幕显示输出信息--trace
显示回溯上的错误-c --config-file &config&
路径为用户配置文件-h --host &host&
目标主机名称--notrace
禁止显示回溯--log-file &log_file&
输出日志文件-N --no-headings
不打印表格标题-L --lister-format (table | csv)
输出使用 table 或者 CSV 格式说明:lmi 交互模式下支持如下子命令:file : 文件系统等数据格式的管理help :打印帮助信息hwinfo : 显示收集的硬件信息。system : 显示收集的系统信息。sssd :sssd 系统服务管理功能。selinux: selinux 管理。group :用户组管理功能。service : 系统服务管理。storage: 基本的存储设备的信息。sw : 系统软件管理。net:网络服务管理power
:系统电源管理user
:用户管理journald:系统日志realmd: 管理 AD 或 Kerberos 域成员。 设置键盘布局、语言、时区、时间等功能。说明 : 不同的 Linux 发行版本支持的子命令数量有差异,其中数量最多功能最全的是 Fedora 21。用户在终端下输入 lmi 进入交互环境,然后输入“?”或者 help 命令可以得到子命令列表和其他帮助信息见图 3 。图 3 输入“?”或者 help 命令可以得到子命令列表图 3. 输入 lmilmi 命令行应用实例查看主机硬件配置要查看主机硬件情况,对于本地主机使用交互模式,在 lmi& 提示符下输入 hwinfo 子命令即可。命令输出结果见图 4
图 4. 查看主机硬件情况图 3 显示这个命令收集的硬件信息包括:制造商名称或配置的主机名,服务器的型号名称,CPU 类型,CPU 插槽数量,CPU 核心,CPU 的工作频率、cpu 线程数量、主板型号、内存容量、内存频率、内存插槽信息、磁盘类型等信息。
状态颜色说明:在图 3 中看到 SMART Status 状态显示是 OK,所以显示为绿色,如果显示为黄色表示状态不明确(就是说系统没有检测的具体的状态),如果显示为红色的 error 表示该模块没有正常工作。
另外如果是收集远程主机硬件情况,要输入用户和密码。下面是一个例子,这里使用 -h 参数,然后输入远程主机名称即可,清单 1 是操作过程和输出界面。清单 1. 查看主机硬件情况 # lmi -h cyq
lmi& hwinfo
username: pegasus
centos70n02.linux.net
Chassis Type:
SMBIOS Reseved
Manufacturer:
Not Specified (ProLiant DL385p Gen8)
Serial Number:
CN7230040Z
Asset Tag:
CN7230040Z
Virtual Machine:
Motherboard info: N/A
AMD Opteron(TM) Processor 6238
2 cpu(s), 24 core(s), 24 thread(s)
8.0 GB, DDR3 (DIMM), 1333 MHz, HP, Not Specified
8.0 GB, DDR3 (DIMM), 1333 MHz, HP, Not Specified
2 used, N/A total说明:hwinfo 命令其他主要参数包括: hwinfo system :获取主机名称。
hwinfo motherboard:获取主板信息。
hwinfo cpu:获取 CPU 信息。
hwinfo memory:获取内存信息。
hwinfo [all] :获取所有信息。
hwinfo pci:获取 pci 插槽信息。
hwinfo disks: 获取磁盘信息。查看主机软件系统信息OpenLMI 不仅可以收集硬件信息,还可以收集本地和远程主机操作系统的系统概要。收集内容包括:操作系统版本信息,防火墙配置,网络接口信息、内核版本、时区、SElinux 状态、日志系统、系统语言等。下面是一个例子,清单 2 就是操作过程和输出界面。清单 2. 查看主机软件系统信息 lmi&
Host: localhost.localdomain
To Be Filled By O.E.M.
Serial Number:
To Be Filled By O.E.M.
Asset Tag:
To Be Filled By O.E.M.
Intel(R) Celeron(R) CPU G1820 @ 2.70GHz, x86_64 arch
CPU Topology:
1 cpu(s), 2 core(s), 2 thread(s)
Disk Space:
65.7 GB total, 57.2 GB free
Fedora release 21 (Twenty One)
3.19.3-200.fc21.x86_64
zh_CN.UTF-8
Time Zone:
Asia/Shanghai (NTP is on)
on (Permissive)
on (journald)
Networking:
wlp0s26u1u1
In Service
IPv4 Address: 192.168.1.101
IPv6 Address: fe80::16e6:e4ff:fe29:6c16
MAC Address:
14:E6:E4:29:6C:16管理主机的服务运行情况lmi 的 service 子命令可以用来查看、启动、停止、重新启动本地和远程服务。下面是两个例子。
查看运程主机服务运行情况,使用如下命令:lmi& service show httpd.serviceName=httpdCaption=The Apache HTTP ServerEnabled=NoStatus=Running停止一个本地服务,使用如下命令:lmi&
service stop sshd.service说明:service 命令其他主要参数包括:list
打印所有服务列表show
显示服务运行情况start
启动一个服务stop
停止一个服务restart
重新启动一个服务reload
重新加载一个服务配置系统软件管理sw 命令可以用来查看、搜索、安装、升级、删除本地和远程的软件包。下面是几个例子:查看一个软件包详情,使用如下命令:lmi&
sw show pkg php安装一个软件包,使用如下命令:lmi& sw install httpd升级一个软件包,使用如下命令:lmi& sw update nmap删除一个软件包,使用如下命令:lmi& sw remove nmap存储管理lmi 的 storage 子命令用来进行存储设置,它的参数比较多,这里笔者介绍几个常用的例子 , 查看存储设备列表,使用如下命令:lmi& storage list,清单 3 就是操作过程和输出界面。清单 3.查看存储设备列表 lmi&storage list
MS-DOS partition table
/dev/mapper/fedora-root
/dev/mapper/fedora-swap
physical volume (LVM)使用树形结构显示存储设备列表,使用如下命令:lmi& storage tree,清单 4 就是操作过程和输出界面。清单 4..使用树形结构显示存储设备列表 lmi& storage tree
MS-DOS partition table
├─ /dev/sda1
└─ /dev/sda2
physical volume (LVM)
└─ fedora
volume group (LVM)
├─ /dev/mapper/fedora-root
└─ /dev/mapper/fedora-swap
swap查看某一个存储设备详情,清单 5 就是操作过程和输出界面。清单 5.查看某一个存储设备详情 lmi&
storage show /dev/disk/by-id/ata-VBOX_HARDDISK_VB-5d00c206-part1
/dev/disk/by-id/ata-VBOX_HARDDISK_VB-5d00c206-part1:
/dev/disk/by-id/ata-VBOX_HARDDISK_VB-5d00c206-part1
ElementName
Total Size
Block Size
Partition Type
Starting sector
Ending sector
Sector Size
Filesystem
4ebdf6a9-530e-417f-b9ef-a9
Persistence
Persistent
Total space on filesystem
Free space on filesystem
网络接口管理
使用 lmi 的 net 子命令,用户可以查看连接到管理服务器的网卡和虚拟接口的运行情况。包括:接口名称、目前的状态、MAC 地址列表。下面介绍几个常用的例子
查看网络设备列表,使用如下命令:lmi&net device list
ElementName OperatingStatus MAC Address
In Service
08:00:27:49:FE:04
Not Available
00:00:00:00:00:00设置网络接口新的 ip 地址,使用如下命令: lmi& net address replace enp0s3 192.168.0.130 24 激活一个网络接口,使用如下命令:lmi& net activate enp0s3 设置 dns 服务器 ip 地址,使用如下命令:lmi& net dns add enp0s3 192.168.0.1用户和用户组管理lmi 的 user 和 group 子命令是用来进行用户和用户组管理的,使用这两个命令可以查看、添加、删除本地或者远程主机上的系统帐户。下面介绍几个常用的例子。查看已经存在的用户列表,使用如下命令:lmi& user list查看已经存在的用户组列表,使用如下命令:lmi&group list添加一个用户,使用如下命令:lmi& user create cyq1查看已经某用户详情列表,使用如下命令:lmi& user show cyq1Name UID
Login shell Password last changecyq1 1001 /home/cyq1 /bin/bash
删除一个用户,使用如下命令:lmi& user delete cyq1电源管理lmi 的 power 子命令是用来进行电源管理的,使用这两个命令可以启动、关闭、休眠计算机。下面介绍几个常用的例子。查看系统支持的电源管理,使用如下命令:lmi&
power listPowerState
Availablesuspend
yesforce reboot
yeshibernate
yesforce poweroff yespoweroff
yes重启系统,使用如下命令:lmi& power reboot让系统休眠,使用如下命令:lmi& power hibernate让系统挂起,使用如下命令:lmi& power  suspend关闭系统,使用如下命令:lmi& power poweroff直接命令模式说明除了交互模式外。还可以使用直接命令模式,通常直接模式的执行速度比较快,不过需要用户熟悉各种参数。下面是 2 个例子:显示远程主机:managedsystem.mydomain.org 所有的服务列表# lmi -h managedsystem.mydomain.org service list – all设置远程主机上的 raid 存储#lmi -h managedsystem.mydomain.org storage raid create 5 /dev/sdb /dev/sdd /dev/sde总结对于 Linux 系统管理员来说 OpenLMI 是一个非常好用的工具,能够进行快速大量的部署系统存储、软件包安装删除、网络管理等工作。本文介绍的网络环境是一个最简单的例子,随着服务器集群规模越来越大,自动化配置和部署这些服务器能够使管理变得非常容易并大大减小管理部署成本,因而系统管理员的价值将会得到体现。
参考资料 访问 ,可以查看更多关于 OpenLMI 操作的信息。
访问 OpenLMI 在
,可以查看更多关于 OpenLMI 操作的信息。访问
,其中包括 OpenLMI 的一些使用范例。访问 developerWorks ,了解关于信息管理的更多信息,获取技术文档、how-to 文章、培训、下载、产品信息以及其他资源。加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=LinuxArticleID=1035476ArticleTitle=Linux 系统运维工具 OpenLMIpublish-date=新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
家境小康, 积分 1332, 距离下一级还需 668 积分
论坛徽章:0
经常有人在群里问,运维人员需不需要学开发?需不需要学PYTHON?PYTHON和SHELL有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲,求求新手们,以后别他妈瞎问了。
现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能,不会开发,你就不能充分理解你们系统的业务流程,你就不能帮助调试、优化开发人开发的程序,开发人员有的时候很少关注性能的问题,这些问题就得运维人员来做,一个业务上线了,导致CPU使用过高,内存占用过大,如果你不会开发,你可能只能查到进程级别,也就是哪个进程占用这么多,然后呢?然后就交给开发人员处理了,这样咋体现你的价值?
另外,大一点的公司,服务器都上几百,上千,甚至数万台,这种情况下怎样做自动化运维?用SHELL写脚本FOR循环?呵呵,歇了吧,SHELL也就适合简单的系统管理工作。到复杂的自动化任务还得要用专门的开发语言。你可能说了,自动化管理有专门的开源软件\监控也有,直接拿来用下就好了,但是现有的开源软件如Puppet\Saltstack\OpenStack\Zabbix\Nagios 等多为通用的软件,不可能完全适用你公司的所有需求,当你需要做定制、做二次开发的时候,你咋办?找开发部门?开发部门不懂运维的实际业务逻辑,写出来的东西烂烂不能用,我自己也做运维系统,6年运维工作经验,开发出来的第一版照样烂的不行,这还是懂的运维业务逻辑的,让开发人员来做,跑偏可能更多了,这就是为什么我见过很多公司自行开发运维平台,最后都扔那了。
其次,不会运维开发,你就不能自己写运维平台\复杂的运维工具,一切要借助于找一些开源软件拼拼凑凑,如果是这样,那就请不要抱怨你的工资低,你的工作不受**了,话说人家FaceBook一个运维工程师管2万台机器,运维工程师年薪十几万USD,你以为人家是盖的呢?哪个不是身怀绝技,开发运维兼备?
为什么要学PYTHON?
PYTHON第一是个非常牛B的脚本语言, 能满足绝大部分自动化运维的需求,又能做后端C/S架构,又能用WEB框架快速开发出高大上的WEB界面,只有当你自已有能力做出一套运维自动化系统的时候,你的价值才体现出来,你才有资格跟老板谈**,否则,还是老老实实回去装机器吧。
运维开发为什么要用PYTHON?
Good question, 为什么不用PHP,JAVA, C++,RUBY,这里我只能说,见人见智, 如果你碰巧已经掌握了除PYTHON之外的其它语言,那你爱用啥用啥,如果你是一个连SHELL都还没写明白的新手,想学个语言的话,请用PYTHON, 为什么呢?首先,PHP是跟PYTHON比的最多的,其实他俩根本就不用比,为什么呢?两个语言适用性不同,PHP主要适用于WEB开发,可以迅速的做出中小型,轻量级的WEB网站,但后端嘛,基本还是要借助其它语言,借助什么语言呢?SHELL?PYTHON?呵呵。而PYTHON呢, 是个综合语言, 前后端都可以,单拿出来比WEB,也一点不比PHP差,但为什么WEB方向上PHP比PYTHON要火? 先入为主嘛,PHP 90年代诞生就是做WEB的,PYTHON2000年后才出现WEB框架,但论优秀程度上,PYTHON的WEB框架基本上出其无左,至少是跟PHP比。 
那JAVA呢?好吧,一个臃肿\中庸\豪无新意的语言,还是老老实实用它来做ERP吧,搞个运维小平台,用JAVA真心没啥必要,在我看来,JAVA就是稳定的中年男人,稳定\成熟\秃顶,而PYTOHN代表的就是青春, 简洁\快\干净\帅!
C++\C,这个嘛,我只能说,如果你会了PYTHON,又会C的话,那你会更吃香,但是不会C的话,其实也无大碍,基本上做运维的人,搞搞C就是为了来装B的,因为多数情况下你都到不了看系统底层源码的程度, 不过如果你学好了PYTHON之后,还是建议你学习下C++,毕竟相比python这个动态语言来讲,C++的效率还是高很多的,但对新手来讲,不建议做为第一门语言开始学习, 为什么呢?打击自信心。。。。呵呵,你懂的
RUBY,小日本开发的,还不错,风格跟PYTHON有点像,因为ruby onrails出了名,国外用的比较多,国内,放心吧,没戏,PYTHON已经把它的想象空间都占死了。
当然还有新的语言GO,有些搞运维的看见做开发的人员搞GO,也想凑热闹,觉得是未来,我想说,别瞎没事跟风,GO再成功,也不会变成运维开发语言。
有些人觉得PYTHON效率底,说他不能支持多线程,OH,好吧,这个还有点说对了,但是我想问,看我这篇文章的有几个做过搜索引擎开发?有几个做个上亿PV的并发网站开发? 有几个看过LINUX内核源码?如果没有,请别瞎跟着传了,知道PYTHON为什么不支持多线程吗?这句话问错了,其实PYTHON支持多线程,只是不支持多CPU多线程,也就是一个程序spawn出来的多线程只能占用一个CPU,但是为什么呢?噢,因为GIL,GIL是什么东东,请自行补脑。。。但是你非得用多线程吗?你可以用多进程呀,再牛B你还可以用协程呀,这些PYTOHN支持的都很好呀,如果你的程序逻辑不好,搞个多线程也快不起来。我认识一个博士讲过一句话,我觉得不错,他说,程序效率高低,80%都是写程序的人决定了,语言本身就占20%,所以下次有人再说PYTHON效率低的时候,请让他先回去自己检查下自己的程序多了多少无用的逻辑、循环等等。这个博士自己用PYTHON写的WEB程序,一台服务器每天能处理上亿请求,一秒并发近两万,什么WEB框架这么牛B? 别问它是谁, 它叫tornado。 
PYTHON能否自学?
当然可以,什么都可以自学,前提是你得能学得会,见过N多菜鸟踏上上自学的不归路,他妈的什么都能自学的话,还用大学干什么?自己在家鳖不就行了?动不动就说PYTHON是个脚本语言,自己看看就不会了,说这话的只可能有两种人,一种是高手,一种是SB,对于高手来讲,他肯定已经会其它语言,PYTHON在这种情况下,自学当然就很容易学会,几年前我刚接触PYTHON时,代码遇到问题,找了个开发的哥们帮调试,哥们帮调了十几分钟就搞定了,结果人家以前一句PYTHON代码也没写过,为什么,因为语言都有相通之处,一门掌握好了,其它门自己学学就会了。但对于新手来讲,没任何语言基础就开始自学,那么恭喜你,菜鸟们见此文章为证,从今天开始自学,一年后,你要是能自己做出个软件来,来找我要一千块钱。 哈哈,真的。 基本上自学是属于专业人员干的事情,就像会一门乐器了,自己学下就可能学会另一门,但我之前没音乐基础,跟着老师都没把吉它学会。 
所以奉劝没基础又想学PYTHON的同学,花点钱去报个班学吧,拿钱换时间,时间是生命,钱没了可再挣钱,时间过去了就再也不会回来,如果你不信邪,非要自己学,那我佩服你的勇气,不过自己试试就知道了。
知乎上的一个问题:为什么零基础自学编程者,大多半途而废?
当然天下没有绝对的事情,我大天朝牛X的人多了去了,很多人也能过自学编程,最后变成高手了,我的PYTHON也是自学的,但是我可以说自学过程中走过了N多坑好么,好多时候纠结在一个简单的小问题上好几天都卡住,当时如果不是因为工作需求,估计早放弃了,这还是python,就别说其它复杂的语言了,我相信除了少数的大牛之外,多数人不比我聪明到哪去,选择自学的同鞋们,一路珍重。
说了这么多,只想告诉那些迷茫不知所措该学什么语言的新手们, 在你还没学好走路的时候,不要老想着,将来我当上老板了,我是开宝马呢?还是开奔驰呢?先学会骑自行车吧。。。
最后借用国外一位python大牛说过的话, Life is short,you need Python! 人生苦短,我用Python.
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
丰衣足食, 积分 961, 距离下一级还需 39 积分
论坛徽章:1
python强大啊!
丰衣足食, 积分 961, 距离下一级还需 39 积分
论坛徽章:1
不过现在还在搞集成,集成就是个大杂烩,啥都得会,没有一个精通啊
稍有积蓄, 积分 404, 距离下一级还需 96 积分
论坛徽章:0
自学是必须的,如果一门编程语言都自学不会的话,建议转行,真的,去做其他行业会比较赚钱。
富足长乐, 积分 5704, 距离下一级还需 2296 积分
论坛徽章:129
整体上说,技术人员都很清高
以为懂技术就很了不起,而且还强迫别人也要动
富足长乐, 积分 5704, 距离下一级还需 2296 积分
论坛徽章:129
有时候竟然以为,自己不如别人是应该的,别人懂是必须的
丰衣足食, 积分 704, 距离下一级还需 296 积分
论坛徽章:0
这些语言都产不多,ifelseforwhile 外加一大堆这库那库,都这些东西,这都不重要,重要的是TCP/IP、LINUX、正则表达式等等这些干货都搞清楚了吗
论坛徽章:102
楼主的Python培训班现在还开着呢吗
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处}

我要回帖

更多关于 python linux 运维 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信