CentOS中while循环案例:实用脚本编程技巧

CentOS中while循环案例:实用脚本编程技巧

在CentOS系统中,while循环是Shell脚本编程中不可或缺的工具。本文将通过多个实用案例,展示while循环在系统管理和自动化任务中的应用,帮助您提升脚本编程技能。

1. 监控系统负载

以下脚本每5秒检查一次系统负载,当负载超过预设阈值时发出警告:


#!/bin/bash
threshold=2.0
while true; do
    load=$(cat /proc/loadavg | awk '{print $1}')
    if (( $(echo "$load > $threshold" | bc -l) )); then
        echo "警告:系统负载($load)超过阈值($threshold)"
    fi
    sleep 5
done

2. 批量用户管理

这个脚本从文件中读取用户名列表,并创建相应的用户账户:


#!/bin/bash
while read username; do
    useradd $username
    echo "已创建用户: $username"
done 

3. 文件备份

自动备份指定目录下的文件,并添加时间戳:


#!/bin/bash
source_dir="/path/to/source"
backup_dir="/path/to/backup"
while true; do
    timestamp=$(date +"%Y%m%d_%H%M%S")
    tar -czf "$backup_dir/backup_$timestamp.tar.gz" "$source_dir"
    echo "备份完成: backup_$timestamp.tar.gz"
    sleep 3600  # 每小时备份一次
done

4. 网络连接测试

定期检查网络连接状态,如果连接失败则尝试重新连接:


#!/bin/bash
target="www.example.com"
while true; do
    if ping -c 1 $target &> /dev/null; then
        echo "网络连接正常"
    else
        echo "网络连接失败,尝试重新连接..."
        # 在此添加重新连接的命令
    fi
    sleep 60
done

5. 日志分析

分析Apache访问日志,统计每个IP地址的访问次数:


#!/bin/bash
log_file="/var/log/httpd/access_log"
declare -A ip_count
while read line; do
    ip=$(echo $line | awk '{print $1}')
    ((ip_count[$ip]++))
done 

这些案例展示了while循环在CentOS系统管理和自动化任务中的广泛应用。通过实践这些例子,您可以深入理解while循环的工作原理,并在日常工作中灵活运用。记住,良好的错误处理和适当的退出条件对于编写可靠的脚本至关重要。随着经验的积累,您将能够开发出更复杂、更高效的脚本来满足各种系统管理需求。

寰宇互联服务器4核4G云服务器1元/月,网络稳定、抗DDos、国际BGP、性能强劲,十年服务经验QQ:97295700 微信:huanidc

阅读剩余
THE END