实时监控ens33网卡流量信息
#!/bin/bash
while :
do
echo "本地网卡ens33流量信息如下: "
ifconfig ens33 | grep "RX pack" | awk '{print $5}'
ifconfig ens33 | grep "TX pack" | awk '{print $5}'
sleep 2
done
实时监控本机·内存和硬盘剩余空间
#!/bin/bash
disk=$(df / | awk '/\//{print $4}')
mem=$(free | awk '/Mem/{print $4}')
while :
do
if [ $disk -le 512000 -a $mem -le 1024000 ]
then
mail -s warning root <<-EOF
Insufficient resources,资源不足
EOF
fi
done
数据库备份单循环
#!/bin/bash
DATE=$(date +%F_%H-%M-%S)
HOST=1ocalhost
USER=backup
PASS=1
BACKUP_DIR=/data/db_backup
DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/nul1 | egrep -v "Database|information_schema mysql|performance_schema|sys")
for DB in $DB_LIST;
do
BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql
if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null;
then
echo"$BACKUP_NAME 备份失败!"
fi
done
监控
#!/bin/bash
# 定义日志文件路径
LOG_FILE=“/var/log/server_monitor.log”
# 定义监控间隔时间(秒)
MONITOR_INTERVAL=300
while true
do
# 获取CPU使用率
CPU_USAGE=$(top -bn1 | grep “Cpu(s)” | awk ‘{print $2 + $4}‘)
# 获取内存使用情况
MEM_TOTAL=$(free -m | grep “Mem:” | awk ‘{print $2}‘)
MEM_USED=$(free -m | grep “Mem:” | awk ‘{print $3}‘)
MEM_USAGE=$((100 * $MEM_USED / $MEM_TOTAL))
# 获取磁盘空间使用情况
DISK_USAGE=$(df -h | awk ‘$NF==“/”{printf “%d”, $5}’)
# 记录监控结果到日志文件中
echo “$(date +%Y-%m-%d\ %H:%M:%S) CPU usage: $CPU_USAGE%, Memory usage: $MEM_USAGE%, Disk usage: $DISK_USAGE%” >> $LOG_FILE
# 等待指定时间后再次执行监控
sleep $MONITOR_INTERVAL
done
日志轮转
#!/bin/bash
LOGFILE=/var/log/app.log
BACKUP_DIR=/var/log/backup
BACKUP_NUM=10
if [ ! -d “$BACKUP_DIR” ]; then
mkdir -p “$BACKUP_DIR”
fi
timestamp=$(date +“%Y%m%d%H%M%S”)
backup_file=“$BACKUP_DIR/app_$timestamp.log”
mv “$LOGFILE” “$backup_file”
touch “$LOGFILE”
gzip -f “$backup_file”
# 删除旧的备份文件
ls -t “$BACKUP_DIR”/*.gz | tail -n +$((BACKUP_NUM + 1)) | xargs rm -f