在CentOS系统中,脚本编程是提升工作效率和系统管理乐趣的重要方式,通过编写简单的Shell脚本,用户可以自动化重复任务、监控系统状态,甚至实现一些创意十足的小功能,以下将介绍几个在CentOS中既实用又有趣的脚本示例,涵盖系统监控、文件管理和自动化任务等场景。

系统资源监控脚本
系统资源监控是服务器管理的常见需求,一个简单的脚本可以实时显示CPU、内存和磁盘使用情况,以下脚本通过top和free命令获取数据,并以易读的格式输出:
#!/bin/bash
echo "=== 系统资源监控 ==="
echo "CPU使用率:"
top -bn1 | grep "Cpu(s)" | sed "s/.*, *([0-9.]*)%* id.*/1/" | awk '{print 100 - $1"%"}'
echo "内存使用率:"
free | grep Mem | awk '{print ($3/$2) * 100.0"%"}'
echo "磁盘使用率:"
df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{print $5 " " $6}' 将此脚本保存为monitor.sh,赋予执行权限后运行,即可快速查看系统资源状态。
文件批量重命名工具
处理大量文件时,批量重命名能节省大量时间,以下脚本可将指定目录下的所有.txt文件统一添加前缀backup_:
#!/bin/bash
read -p "请输入目录路径: " dir
if [ ! -d "$dir" ]; then
echo "目录不存在!"
exit 1
fi
cd "$dir" || exit
for file in *.txt; do
mv "$file" "backup_$file"
done
echo "重命名完成!" 运行此脚本后,用户只需输入目标路径,即可自动完成重命名操作,非常适合管理日志或临时文件。
自动备份脚本
数据备份是系统维护的关键环节,以下脚本可将指定目录压缩并备份到/backup文件夹,同时保留最近7天的备份:

#!/bin/bash src="/path/to/source" backup_dir="/backup" date=$(date +%Y%m%d) tar -czf "$backup_dir/backup_$date.tar.gz" "$src" find "$backup_dir" -name "backup_*.tar.gz" -mtime +7 -delete echo "备份完成,文件名: backup_$date.tar.gz"
通过结合tar和find命令,脚本实现了自动化备份和历史清理功能,确保存储空间的高效利用。
服务器状态检查脚本
对于运维人员,定期检查服务状态至关重要,以下脚本检测Nginx和MySQL是否运行,并给出提示:
#!/bin/bash
services=("nginx" "mysql")
for service in "${services[@]}"; do
if systemctl is-active --quiet "$service"; then
echo "$service: 运行中"
else
echo "$service: 未运行,尝试启动..."
systemctl start "$service"
fi
done 脚本通过循环检查多个服务状态,并在服务异常时自动尝试恢复,适合用于定时任务(如Cron)。
创意趣味脚本
除了实用功能,脚本也能带来趣味,以下“随机名言”脚本每天显示一句励志格言:
#!/bin/bash
quotes=(
"生活就像一盒巧克力,你永远不知道下一颗是什么味道。"
"成功不是终点,失败也不是终结:唯有勇气才是永恒。"
"路漫漫其修远兮,吾将上下而求索。"
)
random_index=$((RANDOM % ${#quotes[@]}))
echo "${quotes[$random_index]}" 将其加入Cron任务,每天定时推送,为工作增添一丝惊喜。

FAQs
Q1: 如何让上述脚本开机自动运行?
A1: 可将脚本保存到/etc/rc.local或使用systemd服务,创建/etc/systemd/system/my-script.service,添加ExecStart=/path/to/script.sh并启用服务:systemctl enable my-script.service。
A2: 这是Shell中的随机数生成语法。RANDOM返回0-32767的随机数,% n取模运算后可限制范围(如% 3生成0-2的随机数)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复