生产环境超实用Shell脚本二
Shell脚本作为自动化运维的利器,在生产环境中扮演着至关重要的角色。
本文将介绍自动化部署脚本、用户管理脚本、 软件安装脚本、网络配置脚本,帮助您提升运维效率。
1. 自动化部署脚本
- 功能: 自动化部署应用程序,包括代码拉取、依赖安装、配置修改、服务启动等。
- 应用场景: 简化部署流程,提高部署效率,减少人为错误。
- 示例代码:
#!/bin/bash
# 定义项目目录和代码仓库地址
project_dir="/var/www/myapp"
repo_url="git@github.com:user/myapp.git"
# 拉取最新代码
cd $project_dir
git pull $repo_url
# 安装依赖
npm install
# 修改配置文件
sed -i 's/DATABASE_HOST=localhost/DATABASE_HOST=db.example.com/' .env
# 重启服务
systemctl restart myapp
echo "部署完成!"
2. 用户管理脚本
- 功能: 批量创建、删除、修改用户账号和权限。
- 应用场景: 简化用户管理流程,提高管理效率。
- 示例代码:
#!/bin/bash
# 定义用户列表文件
user_list="user_list.txt"
# 遍历用户列表文件
while read -r username password; do
# 创建用户
useradd -m -s /bin/bash $username
# 设置用户密码
echo "$username:$password" | chpasswd
# 添加用户到sudo组
usermod -aG sudo $username
done < $user_list
echo "用户创建完成!"
3. 软件安装脚本
- 功能: 自动化安装和配置软件包。
- 应用场景: 简化软件安装流程,提高安装效率。
- 示例代码:
#!/bin/bash
# 更新软件包列表
apt-get update
# 安装软件包
apt-get install -y nginx mysql-server php-fpm
# 配置软件包
sed -i 's/listen = 127.0.0.1:9000/listen = /var/run/php/php7.4-fpm.sock/' /etc/php/7.4/fpm/pool.d/www.conf
# 启动服务
systemctl start nginx mysql php7.4-fpm
echo "软件安装完成!"
4. 网络配置脚本
- 功能: 配置网络接口、IP地址、路由、防火墙等。
- 应用场景: 简化网络配置流程,提高配置效率。
- 示例代码:
#!/bin/bash
# 配置网络接口
cat <<EOF > /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
EOF
# 重启网络服务
systemctl restart networking
# 配置防火墙
ufw allow 22/tcp
ufw allow 80/tcp
ufw enable
echo "网络配置完成!"
总结
- 自动化部署脚本:自动化部署应用程序,提高部署效率。
- 用户管理脚本:批量创建、删除、修改用户账号和权限。
- 软件安装脚本:自动化安装和配置软件包,简化安装流程。
- 网络配置脚本:配置网络接口、IP地址、路由、防火墙等,简化网络配置流程。
通过使用这些脚本,可以大大提高运维效率,减少人工操作的错误和时间成本。
– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。