》》》》》魏红斌带你学shell脚本《《《《《
更多shell脚本学习点击个人主页
作为一个资深程序猿,我将带领您从零开始,一步步踏上运维之旅,无论您是否拥有现成的服务器,都将学会如何轻松购买、部署,并通过编写及应用精心设计的Shell脚本,解决实际工作中遇到的问题。这些脚本不仅源自真实的业务场景,经历了反复实践与严格测试,确保了其简洁高效、易于理解且便于使用。更重要的是,我们将全程免费分享,并深度解析背后原理,助您深入理解并灵活运用,每一款脚本均经过真实业务场景的反复打磨与严格测试,秉持着简洁高效、易于理解和使用的理念设计,无偿提供并且提供相关解析过程,让读者能更深入了解相关内容。
无服务器的朋友们:
让我们先从选购并部署服务器开始。只需简单三步,即可拥有您的专属云服务器:
- 访问ECS官网:点击链接直达阿里云ECS网站:ECS选择网址。这是您获取高质量云服务器的第一站。
- 选择并购买:在琳琅满目的服务器配置中,挑选符合您需求的那一款,一键下单,完成支付。整个过程犹如在线购物般便捷。
- 进入ECS控制台:支付成功后,您将被引导至ECS管理控制台。在这里,您可以全面掌控您的服务器资源,后续的所有运维操作都将在此展开。
已有服务器的朋友们:
如果您已拥有ECS实例,那么请直接登录ECS管理控制台。在左侧导航栏中,依次选择“实例与镜像” > “实例”,确保您已定位到目标资源所在的资源组和地域。接下来,在实例列表中找到待连接的实例,点击操作列下的“远程连接”,选择“通过Workbench远程连接”并点击“立即登录”。
登录实例:
无论是新购还是已有服务器,接下来都需要进行实例登录。这里支持多种认证方式,以最常见的“密码认证”为例:
- 输入用户名(通常为
root
或ecs-user
)。 - 接着,输入登录密码。如果您忘记了密码,无需担忧,您可以在ECS实例详情页面查询,或者通过“更改密码”功能进行修改。
编写与运行Shell脚本:
成功登录后,您将看到一个熟悉的命令行界面——这就是您的运维主战场。现在,键入vim test.sh
,我们便进入了文本编辑模式,准备创建第一个Shell脚本。
按下键盘上的i
键,进入插入模式,此刻您可以自由地复制粘贴今天要学习的脚本代码,粘贴后按ecs
后,按:wq
保存脚本,可以用./ test.sh
或者sh test.sh
进行脚本执行。
今天我们要学习的脚本是(脚本内容直接复制粘贴即可):
#!/bin/bash
CA_SUBJECT="/O=liusenbiao/CN=ca.liusenbiao.cn"
SUBJECT="/C=CN/ST=jiangsu/L=taizhou/O=magedu/CN=www.liusenbiao.cn"
SERIAL=34
EXPIRE=202002
FILE=liusenbiao.org
openssl req -x509 -newkey rsa:2048 -subj $CA_SUBJECT -keyout ca.key -nodes -days 202002 -out ca.crt
openssl req -newkey rsa:2048 -nodes -keyout ${FILE}.key -subj $SUBJECT -out ${FILE}.csr
openssl x509 -req -in ${FILE}.csr -CA ca.crt -CAkey ca.key -set_serial $SERIAL -days $EXPIRE -out ${FILE}.crt
chmod 600 ${FILE}.key ca.key
$COLOR"**************************************生成证书信息**************************************"$END
openssl x509 -in ${CERT_INFO[crtfile${i}]} -noout -subject -dates -serial
echo
done
chmod 600 *.key
echo "证书生成完成"
$COLOR"**************************************生成证书文件如下**************************************"$END
echo "证书存放目录: "$DIR
echo "证书文件列表: "`ls $DIR`
下面是脚本中各命令的详细解释:
- 变量定义:
CA_SUBJECT
: 定义了CA(证书颁发机构)的DN(Distinguished Name),包括组织名(O)、通用名(CN)等信息。这里设置为 "/O=liusenbiao/CN=ca.liusenbiao.cn",表示一个由“liusenbiao”组织所有的,名为“ca.liusenbiao.cn”的证书颁发机构。SUBJECT
: 定义了将要申请的证书的DN,包括国家代码(C)、省份(ST)、城市(L)、组织名(O)、通用名(CN)。示例中的DN为一个位于中国江苏泰州,属于“magedu”组织,域名是“www.liusenbiao.cn”的证书。SERIAL
: 证书序列号,这里设置为34。EXPIRE
: 证书有效期,设定为2020年2月到期。FILE
: 用于生成证书文件的基本名称,这里是"liusenbiao.org"。
- 生成CA证书:
- Bash
1openssl req -x509 -newkey rsa:2048 -subj $CA_SUBJECT -keyout ca.key -nodes -days 202002 -out ca.crt
- 这条命令使用
req
子命令生成一个自签名的X.509 CA证书。它使用2048位的RSA密钥,DN信息来自$CA_SUBJECT
,密钥不加密保存到ca.key
,证书有效期为202002天(此数值显然超出了实际年份,应调整为合理的天数,例如365天)。 - 生成证书请求:
- Bash
1openssl req -newkey rsa:2048 -nodes -keyout ${FILE}.key -subj $SUBJECT -out ${FILE}.csr
- 此命令为“liusenbiao.org”生成一个新的证书请求(CSR),同样使用2048位RSA密钥,密钥保存在
${FILE}.key
,证书请求保存在${FILE}.csr
,DN信息使用$SUBJECT
。 - 签署证书请求:
- Bash
1openssl x509 -req -in ${FILE}.csr -CA ca.crt -CAkey ca.key -set_serial $SERIAL -days $EXPIRE -out ${FILE}.crt
- 使用之前生成的CA证书和私钥来签署证书请求,设置序列号为
$SERIAL
,证书有效期为$EXPIRE
天,最终生成的证书文件名为${FILE}.crt
。 - 权限设置:
- Bash
1chmod 600 ${FILE}.key ca.key
- 为了保证安全,该命令设置了私钥文件的权限为600,这意味着只有文件所有者才能读取和写入这些文件(通常这是存放私钥的标准权限设置)。
综上,这个脚本完成了创建一个自签名的CA证书和基于该CA为特定网站(liusenbiao.org)签发证书的全过程,适用于测试环境或内部使用场景。
如果想上手操作练代码的同学们可以通过阿里云ecs服务器免费试用参与!
入口:新老同学免费试用