
常用shell脚本是系统管理员和开发人员日常运维不可或缺的工具。下面是一些常用的shell脚本,按推荐顺序排序:
1. 备份脚本
效率的备份脚本可以自动将文件或整个目录备份到指定位置,支持增量备份和定期备份的功能。
#!/bin/bash
# 备份目录
SOURCE="/path/to/source"
DESTINATION="/path/to/backup"
# 创建备份
tar -czf $DESTINATION/backup_$(date +%Y%m%d).tar.gz $SOURCE
2. 系统监控脚本
系统监控脚本用于监测系统性能,包括CPU使用率、内存占用等。它可以定期生成报告,帮助系统管理员快速发现问题。
#!/bin/bash
# 获取系统负载
LOAD=$(uptime | awk '{print $10}')
echo "当前负载: $LOAD"
# 获取CPU使用情况
MPSTAT=$(mpstat | grep 'all' | awk '{print $3}')
echo "CPU使用率: $MPSTAT%"
3. 清理脚本
清理无用文件的脚本能有效节省存储空间,定期清理临时文件和日志文件,能保持系统的整洁。
#!/bin/bash
# 定义需要清理的目录
CLEANUP_DIR="/path/to/cleanup"
# 清理7天前的文件
find $CLEANUP_DIR -type f -mtime +7 -exec rm {} \;
4. 用户管理脚本
用户管理脚本使得用户的添加、删除及权限设置更加高效,尤其是在大规模用户管理的场景下。
#!/bin/bash
# 添加用户
USERNAME="newuser"
useradd $USERNAME
echo "$USERNAME:password" | chpasswd
# 添加用户到特定组
usermod -aG sudo $USERNAME
5. 更新脚本
自动更新软件和系统的脚本可以简化维护工作,定期更新是确保系统安全的重要措施。
#!/bin/bash
# 更新系统
apt-get update && apt-get upgrade -y
6. 日志分析脚本
日志分析脚本可以帮助管理员从日志文件中提取关键信息,提高故障排除速度。
#!/bin/bash
# 分析特定日志文件
LOGFILE="/var/log/syslog"
grep "error" $LOGFILE > ~/error_report.txt
7. 自动重启脚本
在服务宕机时自动重启的脚本确保服务的高可用性,能够监控特定服务并在需要时重启。
#!/bin/bash
# 检查服务状态
SERVICE="nginx"
if ! pgrep -x "$SERVICE" > /dev/null
then
echo "$SERVICE is not running, starting it now."
systemctl start $SERVICE
fi
8. 网络监测脚本
网络监测脚本帮助管理员监控网络连接,巡视网络状态,确保网络正常运行。
#!/bin/bash
# 检查网络连接
ping -c 4 google.com > /dev/null
if [ $? -eq 0 ]; then
echo "网络连接正常"
else
echo "网络连接失败"
fi
9. 显示当前用户信息脚本
这是一个简单但实用的脚本,显示当前用户的基本信息。
#!/bin/bash
# 显示当前用户信息
USER=$(whoami)
echo "当前用户: $USER"
echo "用户家目录: $HOME"
10. SSH登录监控脚本
监控SSH登录的脚本可以帮助及时发现潜在的安全问题。
#!/bin/bash
# 监控SSH登录记录
cat /var/log/auth.log | grep "sshd" > ~/ssh_login_attempts.txt
常用shell脚本的应用场景
常用shell脚本不止是执行单一任务的工具,它们可以组合成复杂的自动化流程,为日常运维提供便利。
常用shell脚本是用来做什么的?
常用shell脚本可以用于文件和目录的管理、系统监控、日志分析、用户管理等多种任务,帮助简化重复性工作,降低人为错误。
我如何选择适合自己的shell脚本?
选择适合自己的脚本主要根据工作需求和系统环境。可以自定义已有的脚本或根据具体业务场景编写新的脚本,以便提高工作效率。
如何对shell脚本进行调试?
可以使用set -x命令启用调试模式,逐条执行脚本并显示每条命令及其参数,方便找出错误。此外,还可以使用echo命令输出变量值,帮助理解脚本执行过程。



