主题
Shell 脚本实战
Shell 脚本是 Linux 系统管理和自动化运维的重要工具,能够通过命令组合实现复杂任务的自动执行,提高工作效率,减少人为错误。
一、Shell 脚本基础回顾
- 变量声明
- 条件判断 (
if,case) - 循环结构 (
for,while) - 函数定义与调用
- 输入输出重定向
二、实战技巧
1. 变量使用与参数传递
bash
#!/bin/bash
name=$1
echo "Hello, $name"2. 流程控制示例
bash
if [ -f "/etc/passwd" ]; then
echo "File exists."
else
echo "File not found."
fi3. 循环处理文件列表
bash
for file in /var/log/*.log; do
echo "Processing $file"
done4. 函数示例
bash
function backup {
tar -czf backup.tar.gz "$1"
}
backup /home/user/data三、常用脚本实战案例
1. 自动备份脚本
定期备份重要目录,并记录日志。
bash
#!/bin/bash
backup_dir="/backup/$(date +%F)"
mkdir -p "$backup_dir"
tar -czf "$backup_dir/home_backup.tar.gz" /home/user
echo "Backup completed at $(date)" >> /var/log/backup.log2. 监控服务状态并自动重启
bash
#!/bin/bash
service="nginx"
if ! systemctl is-active --quiet $service; then
systemctl restart $service
echo "$service restarted at $(date)" >> /var/log/service_monitor.log
fi3. 批量文件重命名
bash
#!/bin/bash
for file in *.txt; do
mv "$file" "${file%.txt}.bak"
done四、调试技巧
- 使用
set -x打印执行命令 - 使用
set -e脚本遇错即退出 - 添加日志输出便于排查问题
五、自动化运维建议
- 编写易读、注释清晰的脚本
- 尽量使用绝对路径避免环境依赖
- 定期测试和维护脚本
- 配合 cron 实现定时任务自动化
掌握 Shell 脚本实战能力,是 Linux 系统管理员和开发者提升效率和管理水平的重要基石。
