您的位置:

Shellset:管理和自动化你的Linux环境

一、简介

Shellset是一个基于Shell脚本编写的工具集,可以帮助Linux运维工程师更快、更方便地管理和自动化Linux环境。Shellset提供了一些常用的脚本、函数和工具,在服务器管理、应用部署和日常维护等方面能够提高工作效率。

Shellset包含以下模块:

  • 系统管理:提供了一些管理服务器的脚本,如自动防火墙、磁盘监控和系统信息查询等。
  • 软件管理:提供了一些常用软件的安装和配置脚本,如Nginx、MySQL和PHP等。
  • 应用部署:提供了一些应用自动化部署脚本,如WordPress、Ghost和Laravel等。
  • 日常维护:提供了一些日常维护任务的脚本,如定时备份、日志清理和系统更新等。

二、系统管理

Shellset的系统管理模块提供了一些方便的脚本,用于管理Linux服务器。

1、自动防火墙

自动防火墙脚本可以根据系统服务的开启情况,自动更新防火墙规则。该脚本支持iptables和firewalld两种防火墙,可以自动检测系统使用的防火墙类型。

#!/bin/bash

# 检测系统使用的防火墙
if firewalld > /dev/null 2>&1 ; then
  FIREWALL="firewalld"
else
  FIREWALL="iptables"
fi

# 允许本地回环
${FIREWALL}-cmd --zone=public --add-source=127.0.0.1/8 --permanent

# 允许SSH
${FIREWALL}-cmd --zone=public --add-service=ssh --permanent

# 允许HTTP和HTTPS
${FIREWALL}-cmd --zone=public --add-service=http --permanent
${FIREWALL}-cmd --zone=public --add-service=https --permanent

# 禁用ICMP
${FIREWALL}-cmd --zone=public --remove-icmp-block=echo-request --permanent

# 重启防火墙
${FIREWALL}-cmd --reload

三、软件管理

Shellset的软件管理模块提供了一些常用软件的安装和配置脚本,可以大大简化安装和配置软件的工作。

1、Nginx安装

Nginx是一个高性能的HTTP服务器和反向代理服务器。Shellset提供了一个简单的Nginx安装脚本,可以自动下载、编译和安装Nginx。如下:

#!/bin/bash

# 安装依赖
yum install -y gcc pcre-devel openssl-devel

# 下载和解压Nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz

# 编译和安装Nginx
cd nginx-1.18.0
./configure
make && make install
cd ..

# 配置Nginx服务
cat << EOF > /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start nginx.service
systemctl enable nginx.service

四、应用部署

Shellset的应用部署模块提供了一些常用应用的自动化部署脚本,可以大大简化应用的部署工作。

1、WordPress部署

WordPress是一个流行的开源博客系统,Shellset提供了一个自动化部署WordPress的脚本。如下:

#!/bin/bash

# 安装依赖
yum install -y httpd php mysql php-mysql

# 下载和解压WordPress
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -zxvf latest-zh_CN.tar.gz

# 配置WordPress
cp -r wordpress/* /var/www/html/
chown -R apache:apache /var/www/html/
chmod -R 755 /var/www/html/

# 启动服务
systemctl start httpd.service
systemctl enable httpd.service

五、日常维护

Shellset的日常维护模块提供了一些常用维护任务的脚本,可以自动化处理日常运维任务。

1、定时备份

定时备份脚本可以按照一定频率对服务器进行备份。如下:

#!/bin/bash

# 定义备份路径和文件名
BACKUP_DIR=/backup
BACKUP_FILE=\$(date +'%Y%m%d_%H%M%S').tar.gz

# 创建备份目录
mkdir -p \$BACKUP_DIR

# 备份MySQL数据库
mysqldump -u root -pPASSWORD > \$BACKUP_DIR/mysql.sql

# 备份Nginx配置文件
cp /etc/nginx/nginx.conf \$BACKUP_DIR/nginx.conf

# 备份Apache配置文件
cp /etc/httpd/conf/httpd.conf \$BACKUP_DIR/httpd.conf

# 备份网站文件
tar -zcvf \$BACKUP_DIR/\$BACKUP_FILE /var/www/

# 删除30天前的备份
find \$BACKUP_DIR -type f -mtime +30 -exec rm -f {} \;

六、结语

Shellset是一个简单、实用的Shell脚本工具集,可以大大提高Linux运维工程师的工作效率。希望这篇文章能够对大家有所帮助。