Linux集群和自动化维2.6 生产环境下的Shell和Python脚本分类

简介:

2.6 生产环境下的Shell和Python脚本分类


生产环境下的Shell和Python脚本的作用还是挺多的,这里根据2.1节所介绍的日常工作中Shell脚本的作用,将生产环境下的Shell脚本分为备份类、监控类、统计类、运维开发类和自动化运维类。前面3类从字面意义上看比较容易理解,后面的两类需要稍微解释一下,运维开发类脚本是利用Shell或Python实现一些非系统类的管理工作,比如SVN的发布程序等;而自动化运维类脚本则是利用Shell或Python来自动替我们做一些烦琐的工作,比如自动生成并分配密码给开发组的用户,或者自动安装LNMP环境等。下面会就这些分类列举一些具体的实例,以便于大家理解。另外值得说明的一点是,这些实例都源自于笔者的线上环境,大家拿过来稍微改动一下IP或备份一下目录基本上就可以直接使用了。

另外,因为现在的线上业务大多采用的是AWS EC2机器,基本上采用的都是Amazon Linux系统,所以这里先跟大家简单介绍下Amazon Linux系统。

Amazon Linux系统由Amazon Web Services (AWS)提供,旨在为Amazon EC2 上运行的应用程序提供稳定、安全、高性能的执行环境。此外,它还包括能够与AWS轻松集成的软件包,比如启动配置工具和许多常见的AWS库及工具等。AWS为运行Amazon Linux系统的所有实例提供持续的安全性和维护更新。

(1)启动并连接到Amazon Linux实例

要启动Amazon Linux实例,请使用 Amazon Linux AMI(映像)。AWS向Amazon EC2 用户提供Amazon Linux AMI,无需额外费用。找到需要的AMI后,记下AMI ID,然后就可以使用AMI ID 来启动并连接到相应的实例了。

默认情况下,Amazon Linux不支持远程根SSH。此外,密码验证已禁用,以防止强力 (brute-force)密码攻击。要在 Amazon Linux 实例上启用 SSH 登录,必须在实例启动时为其提供密钥对,还必须设置用于启动实例的安全组以允许 SSH 访问。默认情况下,唯一可以使用 SSH 进行远程登录的账户是 ec2-user;此账户还拥有 sudo 特权。如果希望启动远程根登录,请注意,其安全性不及依赖密钥对和二级用户。

有关启动和使用 Amazon Linux 实例的信息,请参阅启动实例。有关连接到Amazon Linux实例的更多信息,请参阅连接到Linux实例。

(2)识别 Amazon Linux AMI 映像

每个映像都包含唯一的 /etc/image-id,用于识别 AMI。此文件包含了有关映像的信息。

下面是/etc/image-id文件示例,命令如下:

cat /etc/image-id

命令显示结果如下所示:

image_name="amzn-ami-hvm"

image_version="2015.03"

image_arch="x86_64"

image_file="amzn-ami-hvm-2015.03.0.x86_64.ext4.gpt"

image_stamp="366c-fff6"

image_date="20150318153038"

recipe_name="amzn ami"

recipe_id="1c207c1f-6186-b5c9-4e1b-9400-c2d8-a3b2-3d11fdf8"

其中,image_name、image_version 和 image_arch 项目来自 Amazon 用于构建映像的配方。image_stamp 只是映像创建期间随机生成的唯一十六进制值。image_date项目的格式为 YYYYMMDDhhmmss,是映像创建时的 UTC 时间。recipe_name 和 recipe_id是Amazon用于构建映像的构建配方的名称和ID,用于识别当前运行的 Amazon Linux 的版本。从yum存储库安装更新时,此文件不会更改。

Amazon Linux 包含 /etc/system-release 文件,用于指定当前安装的版本。此文件通过 yum 进行更新,是 system-release RPM 的一部分。

下面是 /etc/system-release 文件示例,命令如下:

cat /etc/system-release

命令显示结果如下所示:

Amazon Linux AMI release 2015.03

Amazon Linux系统这部分内容摘录自http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/AmazonLinuxAMIBasics.html#IdentifyingLinuxAMI_Images

相关文章
|
1天前
|
运维 Linux 程序员
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
|
1天前
|
SQL 算法 Python
2024年8个Python 实用脚本,2024年最新面试题附答案
2024年8个Python 实用脚本,2024年最新面试题附答案
|
1天前
|
开发工具 Python
国外的大学图书馆也像国内的一样吗?用Python脚本抓取期刊的主题标题!
国外的大学图书馆也像国内的一样吗?用Python脚本抓取期刊的主题标题!
|
4天前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
|
4天前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
|
4天前
|
Web App开发 Ubuntu Linux
Linux无图形界面环境使用Python+Selenium实践
【5月更文挑战第1天】Linux无图形界面环境使用Python+Selenium实践
46 2
|
6天前
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量
14 2
|
6天前
|
Python Perl
LabVIEW调用Perl和Python脚本
LabVIEW调用Perl和Python脚本
12 2
|
6天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
17 6
|
6天前
|
网络协议 Shell Linux
LabVIEW 在NI Linux实时设备上访问Shell
LabVIEW 在NI Linux实时设备上访问Shell
12 0