#!/bin/bash
# 配置参数
BACKUP_DIR="/var/backups/k8s"
NAMESPACE="default"
LOG_FILE="/var/log/k8s_backup.log"
# 检查并创建日志文件
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
fi
# 记录日志函数
log() {
echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" >> "$LOG_FILE"
}
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 备份Kubernetes资源
log "Starting backup of Kubernetes resources..."
kubectl get all -n $NAMESPACE -o yaml > "$BACKUP_DIR/all_resources.yaml"
kubectl get pv -o yaml > "$BACKUP_DIR/pv.yaml"
kubectl get pvc -o yaml > "$BACKUP_DIR/pvc.yaml"
kubectl get secrets -o yaml > "$BACKUP_DIR/secrets.yaml"
kubectl get configmaps -o yaml > "$BACKUP_DIR/configmaps.yaml"
log "Backup completed successfully."
# 清理旧备份
find "$BACKUP_DIR" -type f -mtime +7 -exec rm -f {} \;
log "Old backups cleaned up."