mirror of
https://github.com/acedanger/shell.git
synced 2025-12-06 04:30:13 -08:00
feat: Revamp Plex backup system to streamline archive structure and enhance validation processes
This commit is contained in:
@@ -132,16 +132,18 @@ check_backup_status() {
|
||||
# Count total backups
|
||||
local backup_count=0
|
||||
if [ -d "$BACKUP_ROOT" ]; then
|
||||
backup_count=$(find "$BACKUP_ROOT" -maxdepth 1 -type d -name "????????" 2>/dev/null | wc -l)
|
||||
backup_count=$(find "$BACKUP_ROOT" -maxdepth 1 -type f -name "plex-backup-*.tar.gz" 2>/dev/null | wc -l)
|
||||
fi
|
||||
|
||||
if [ "$backup_count" -gt 0 ]; then
|
||||
log_status "OK" "Total backups: $backup_count"
|
||||
|
||||
# Find latest backup
|
||||
local latest_backup=$(find "$BACKUP_ROOT" -maxdepth 1 -type d -name "????????" 2>/dev/null | sort | tail -1)
|
||||
local latest_backup=$(find "$BACKUP_ROOT" -maxdepth 1 -type f -name "plex-backup-*.tar.gz" 2>/dev/null | sort | tail -1)
|
||||
if [ -n "$latest_backup" ]; then
|
||||
local backup_date=$(basename "$latest_backup")
|
||||
local backup_filename=$(basename "$latest_backup")
|
||||
# Extract date from filename: plex-backup-YYYYMMDD_HHMMSS.tar.gz
|
||||
local backup_date=$(echo "$backup_filename" | sed 's/plex-backup-//' | sed 's/_.*$//')
|
||||
local readable_date=$(date -d "${backup_date:0:4}-${backup_date:4:2}-${backup_date:6:2}" '+%B %d, %Y' 2>/dev/null || echo "Invalid date")
|
||||
local backup_age_days=$(( ($(date +%s) - $(date -d "${backup_date:0:4}-${backup_date:4:2}-${backup_date:6:2}" +%s 2>/dev/null || echo "0")) / 86400 ))
|
||||
|
||||
@@ -157,8 +159,8 @@ check_backup_status() {
|
||||
local backup_size=$(du -sh "$latest_backup" 2>/dev/null | cut -f1)
|
||||
log_status "INFO" "Latest backup size: $backup_size"
|
||||
|
||||
# Check backup contents
|
||||
local file_count=$(ls -1 "$latest_backup" 2>/dev/null | wc -l)
|
||||
# Check backup contents (via tar listing)
|
||||
local file_count=$(tar -tzf "$latest_backup" 2>/dev/null | wc -l)
|
||||
log_status "INFO" "Files in latest backup: $file_count"
|
||||
fi
|
||||
else
|
||||
@@ -322,9 +324,11 @@ show_recommendations() {
|
||||
|
||||
# Check backup age
|
||||
if [ -d "$BACKUP_ROOT" ]; then
|
||||
local latest_backup=$(find "$BACKUP_ROOT" -maxdepth 1 -type d -name "????????" 2>/dev/null | sort | tail -1)
|
||||
local latest_backup=$(find "$BACKUP_ROOT" -maxdepth 1 -type f -name "plex-backup-*.tar.gz" 2>/dev/null | sort | tail -1)
|
||||
if [ -n "$latest_backup" ]; then
|
||||
local backup_date=$(basename "$latest_backup")
|
||||
local backup_filename=$(basename "$latest_backup")
|
||||
# Extract date from filename: plex-backup-YYYYMMDD_HHMMSS.tar.gz
|
||||
local backup_date=$(echo "$backup_filename" | sed 's/plex-backup-//' | sed 's/_.*$//')
|
||||
local backup_age_days=$(( ($(date +%s) - $(date -d "${backup_date:0:4}-${backup_date:4:2}-${backup_date:6:2}" +%s 2>/dev/null || echo "0")) / 86400 ))
|
||||
if [ "$backup_age_days" -gt 7 ]; then
|
||||
recommendations+=("Consider running a manual backup - latest backup is $backup_age_days days old")
|
||||
|
||||
Reference in New Issue
Block a user