一、简介
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运维工程师的工作效率。希望这篇文章能够对大家有所帮助。