[ PROMPT_NODE_24944 ]
Linux 生产级 Shell 脚本
[ SKILL_DOCUMENTATION ]
# Linux 生产级 Shell 脚本
## 目的
为常见的 Linux 系统管理任务(包括备份、监控、用户管理、日志分析和自动化)提供生产就绪的 shell 脚本模板。这些脚本可作为安全运营和渗透测试环境的构建模块。
## 前置条件
### 所需环境
- Linux/Unix 系统 (bash shell)
- 任务所需的适当权限
- 已安装必要的实用程序 (rsync, openssl 等)
### 所需知识
- 基础 bash 脚本编写
- Linux 文件系统结构
- 系统管理概念
## 输出与交付物
1. **备份解决方案** - 自动化的文件和数据库备份
2. **监控脚本** - 资源使用情况跟踪
3. **自动化工具** - 定时任务执行
4. **安全脚本** - 密码管理、加密
## 核心工作流
### 第一阶段:文件备份脚本
**基础目录备份**
bash
#!/bin/bash
backup_dir="/path/to/backup"
source_dir="/path/to/source"
# 创建源目录的带时间戳备份
tar -czf "$backup_dir/backup_$(date +%Y%m%d_%H%M%S).tar.gz" "$source_dir"
echo "Backup completed: backup_$(date +%Y%m%d_%H%M%S).tar.gz"
**远程服务器备份**
bash
#!/bin/bash
source_dir="/path/to/source"
remote_server="user@remoteserver:/path/to/backup"
# 使用 rsync 将文件/目录备份到远程服务器
rsync -avz --progress "$source_dir" "$remote_server"
echo "Files backed up to remote server."
**备份轮转脚本**
bash
#!/bin/bash
backup_dir="/path/to/backups"
max_backups=5
# 如果备份数量超过 max_backups,通过删除最旧的备份来轮转备份
while [ $(ls -1 "$backup_dir" | wc -l) -gt "$max_backups" ]; do
oldest_backup=$(ls -1t "$backup_dir" | tail -n 1)
rm -r "$backup_dir/$oldest_backup"
echo "Removed old backup: $oldest_backup"
done
echo "Backup rotation completed."
**数据库备份脚本**
bash
#!/bin/bash
database_name="your_database"
db_user="username"
db_pass="password"
output_file="database_backup_$(date +%Y%m%d).sql"
# 使用 mysqldump 执行数据库备份
mysqldump -u "$db_user" -p"$db_pass" "$database_name" > "$output_file"
gzip "$output_file"
echo "Database backup created: $output_file.gz"
### 第二阶段:系统监控脚本
**CPU 使用率监控**
bash
#!/bin/bash
threshold=90
# 监控 CPU 使用率并在超过阈值时触发警报
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d. -f1)
if [ "$cpu_usage" -gt "$threshol