不看后悔的Linux生产服务器Shell脚本分享
原创不看后悔的Linux生产服务器Shell脚本分享
在Linux生产服务器管理中,Shell脚本是一种非常强劲的工具。它可以帮助我们自动化日常任务,尽或许降低损耗工作高效能,降低人为谬误。以下是一些在生产服务器上非常有用的Shell脚本,期望对您有所帮助。
1. 检查系统CPU和内存使用情况
使用以下脚本可以实时监控CPU和内存使用情况:
#!/bin/bash
# 定义颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
# 检查CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
# 检查内存使用率
mem_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
# 输出最终
echo -e "${GREEN}CPU使用率: ${cpu_usage}%${NC}"
echo -e "${GREEN}内存使用率: ${mem_usage}%${NC}"
2. 自动备份MySQL数据库
以下脚本可以将MySQL数据库备份到指定目录,并使用gzip进行压缩:
#!/bin/bash
# 定义数据库信息
DB_USER="root"
DB_PASSWORD="your_password"
DB_NAME="your_database"
BACKUP_DIR="/path/to/backup"
# 创建备份文件名
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_$(date +%Y%m%d%H%M%S).sql.gz"
# 备份数据库
mysqldump -u${DB_USER} -p${DB_PASSWORD} ${DB_NAME} | gzip > ${BACKUP_FILE}
# 检查备份文件是否生成
if [ -f ${BACKUP_FILE} ]; then
echo "备份圆满: ${BACKUP_FILE}"
else
echo "备份落败"
fi
3. 定时清理日志文件
以下脚本可以自动清理指定目录下的日志文件,保留最近7天的日志文件:
#!/bin/bash
# 定义日志目录和保留天数
LOG_DIR="/path/to/log"
RETAIN_DAYS=7
# 清理日志文件
find ${LOG_DIR} -type f -mtime +${RETAIN_DAYS} -exec rm -f {} \;
# 检查清理最终
if [ $? -eq 0 ]; then
echo "日志清理圆满"
else
echo "日志清理落败"
fi
4. 自动更新系统软件包
以下脚本可以自动更新系统软件包,并提示用户重启系统:
#!/bin/bash
# 更新软件包
sudo apt-get update
sudo apt-get upgrade -y
# 检查更新最终
if [ $? -eq 0 ]; then
echo "软件包更新圆满,请重启系统以应用更新"
else
echo "软件包更新落败"
fi
5. 监控网络流量
以下脚本可以监控指定网络接口的流量,并记录到日志文件中:
#!/bin/bash
# 定义网络接口和日志文件
INTERFACE="eth0"
LOG_FILE="/path/to/log/traffic.log"
# 监控网络流量
while true; do
# 获取当前流量
RX=$(cat /sys/class/net/${INTERFACE}/statistics/rx_bytes)
TX=$(cat /sys/class/net/${INTERFACE}/statistics/tx_bytes)
# 记录到日志文件
echo "$(date) - RX: ${RX}, TX: ${TX}" >> ${LOG_FILE}
# 等待1秒
sleep 1
done
总结
以上是一些在生产服务器上非常有用的Shell脚本。通过这些脚本,我们可以轻松实现自动化管理,尽或许降低损耗工作高效能。在实际应用中,您可以选用自己的需求进行修改和扩展。期望这些脚本对您有所帮助。