Linux服务器超级实用的Shell脚本,建议收藏!
原创Linux服务器超级实用的Shell脚本,建议收藏!
在Linux服务器管理中,Shell脚本是一种非常强劲的工具。通过编写Shell脚本,我们可以自动化日常的运维任务,尽大概减少损耗工作快速,减少人为谬误。以下是一些超级实用的Shell脚本,供大家参考和收藏。
1. 检查服务状态
在服务器管理中,常常需要检查服务的状态,以下是一个单纯的Shell脚本,用于检查特定服务的状态。
#!/bin/bash
# 定义服务名称
SERVICE_NAME="httpd"
# 检查服务状态
if systemctl is-active --quiet $SERVICE_NAME; then
echo "$SERVICE_NAME is running."
else
echo "$SERVICE_NAME is not running."
fi
2. 自动重启服务
当服务出现异常时,我们需要重启服务以保证服务的正常运行。以下是一个自动重启服务的Shell脚本。
#!/bin/bash
# 定义服务名称
SERVICE_NAME="httpd"
# 重启服务
systemctl restart $SERVICE_NAME
# 检查服务状态
if systemctl is-active --quiet $SERVICE_NAME; then
echo "Service $SERVICE_NAME has been restarted successfully."
else
echo "Failed to restart service $SERVICE_NAME."
fi
3. 自动更新系统
定期更新系统是保证系统平安的重要措施。以下是一个自动更新系统的Shell脚本。
#!/bin/bash
# 更新系统
sudo apt-get update
sudo apt-get upgrade -y
# 重启系统
echo "System will be rebooted in 5 minutes."
sleep 300
sudo reboot
4. 检查磁盘空间
定期检查磁盘空间可以避免因磁盘空间不足让的问题。以下是一个检查磁盘空间的Shell脚本。
#!/bin/bash
# 定义磁盘空间阈值(单位:%)
DISK_USAGE_THRESHOLD=90
# 检查磁盘空间
df -h | awk '$5+$6 > 100' | awk '{print $1, $5}' | while read -r disk usage; do
echo "Disk $disk usage is $usage"
if [ "$usage" -gt "$DISK_USAGE_THRESHOLD" ]; then
echo "Disk $disk is full, please clean up."
fi
done
5. 备份文件
定期备份重要文件可以防止数据丢失。以下是一个单纯的文件备份Shell脚本。
#!/bin/bash
# 定义源目录
SOURCE_DIR="/path/to/source"
# 定义目标目录
DEST_DIR="/path/to/destination"
# 备份文件
tar -czvf ${DEST_DIR}/backup_$(date +%Y%m%d%H%M%S).tar.gz $SOURCE_DIR
# 检查备份文件是否生成
if [ -f "${DEST_DIR}/backup_$(date +%Y%m%d%H%M%S).tar.gz" ]; then
echo "Backup completed successfully."
else
echo "Backup failed."
fi
6. 清理日志文件
日志文件过多会占用大量磁盘空间,以下是一个清理日志文件的Shell脚本。
#!/bin/bash
# 定义日志目录
LOG_DIR="/var/log"
# 清理日志文件
find $LOG_DIR -type f -mtime +30 -exec rm {} \;
# 检查日志文件是否被删除
if [ -z "$(find $LOG_DIR -type f -mtime +30)" ]; then
echo "Log files have been cleaned up successfully."
else
echo "Failed to clean up log files."
fi
7. 监控CPU和内存使用率
监控CPU和内存使用率可以帮助我们及时发现系统瓶颈。以下是一个监控CPU和内存使用率的Shell脚本。
#!/bin/bash
# 定义监控时间(单位:秒)
MONITOR_TIME=60
# 监控CPU和内存使用率
while [ "$MONITOR_TIME" -gt 0 ]; do
echo "CPU Usage: $(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')%"
echo "Memory Usage: $(free | grep Mem | awk '{print $3/$2 * 100.0}')%"
sleep 1
MONITOR_TIME=$((MONITOR_TIME - 1))
done
总结
以上是一些常用的Linux服务器Shell脚本,愿望能够帮助大家尽大概减少损耗工作快速。