Initialisation depot
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
# Samba4 Backup Script
|
||||
# Generated by Ansible
|
||||
|
||||
TIMESTAMP=$(date '+%Y-%m-%d_%H-%M-%S')
|
||||
DATE=$(date +%Y%m%d_%H%M%S) # Kept for compatibility
|
||||
HOSTNAME="{{ target_hostname }}"
|
||||
NFS_SERVER="{{ nfs_server | default('192.168.100.210') }}"
|
||||
NFS_MOUNT="/backup"
|
||||
BACKUP_BASE_DIR="{{ backup_dir | default('/backup/samba') }}"
|
||||
RETENTION_DAYS="28"
|
||||
|
||||
# End of configuration
|
||||
|
||||
BACKUP_FILE="$BACKUP_BASE_DIR/$HOSTNAME-$TIMESTAMP.tgz"
|
||||
|
||||
{% raw %}
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${CYAN}🔄 Samba4 Backup Script"
|
||||
echo "==============================${NC}"
|
||||
|
||||
# Function to check NFS availability
|
||||
echo "Checking NFS availability..."
|
||||
# Test 1: Check if backup directory is mounted
|
||||
if ! mountpoint -q "$NFS_MOUNT"; then
|
||||
echo -e "${RED}❌ ERROR: NFS mount point $NFS_MOUNT is not mounted!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting backup : $BACKUP_FILE" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
|
||||
# Create backup folder
|
||||
mkdir -p "$BACKUP_BASE_DIR"
|
||||
if [ ! -d "$BACKUP_BASE_DIR" ]; then
|
||||
echo -e "${RED}❌ ERROR: cannot create $BACKUP_BASE_DIR${NC}"
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: cannot create $BACKUP_BASE_DIR" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Create backup file
|
||||
touch $BACKUP_FILE
|
||||
if [ ! -f "$BACKUP_FILE" ]; then
|
||||
echo -e "${RED}❌ ERROR: Cannot create backup file${NC}"
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: Cannot create backup file" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
# Stop samba
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Stopping Samba service" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
systemctl stop samba-ad-dc
|
||||
|
||||
tar -czf "$BACKUP_FILE" \
|
||||
/var/lib/samba \
|
||||
/etc/samba \
|
||||
/etc/krb5.conf \
|
||||
/etc/resolv.conf 2>/dev/null
|
||||
|
||||
# Restart Samba
|
||||
echo -e "${YELLOW}🔄 Restarting Samba service${NC}"
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting Samba service" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
systemctl start samba-ad-dc
|
||||
|
||||
# Wait for Samba to be fully operational
|
||||
sleep 10
|
||||
if ! systemctl is-active --quiet samba-ad-dc; then
|
||||
echo -e "${YELLOW}⚠️ WARNING: Samba service may not be fully operational${NC}"
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] WARNING: Samba service may not be fully operational" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
fi
|
||||
|
||||
|
||||
# Clean old backups
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Clean old backups" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
find "$BACKUP_BASE_DIR" -type f -mtime +$RETENTION_DAYS -delete
|
||||
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Backup done" >> "$BACKUP_BASE_DIR/backup.log"
|
||||
echo -e "${GREEN}Backup done${NC}"
|
||||
{% endraw %}
|
||||
Reference in New Issue
Block a user