Files
Server-scripts/nextcloud/nextcloud_scan_files_fix_db.sh
T

131 lines
3.0 KiB
Bash
Executable File

#!/usr/bin/env bash
###############################################################################
# Nextcloud OCC Maintenance Script
#
# Performs:
# - files:cleanup
# - files:scan for selected users
# - occ check
# - mimetype updates
# - htaccess update
#
# Logs:
# /home/lucas/.LOG/
#
# Author: Lucas Faber
###############################################################################
set -Eeuo pipefail
LOGDIR="/home/lucas/.LOG"
DATE=$(date +"%Y%m%d_%H%M")
SUMMARY_LOG="$LOGDIR/log_occ_scan.log"
MIMI_LOG="$LOGDIR/log_occ_mimi_${DATE}.log"
LUCAS_LOG="$LOGDIR/log_occ_lucas_${DATE}.log"
MULTI_LOG="$LOGDIR/log_occ_multi_${DATE}.log"
NC_PATH="/nextcloud/nextcloud"
OCC="docker exec -u www-data nextcloud php occ"
STARTTIME=$(date +"%F %T")
mkdir -p "$LOGDIR"
: > "$MIMI_LOG"
: > "$LUCAS_LOG"
: > "$MULTI_LOG"
echo "===================================================="
echo "Nextcloud maintenance started: $STARTTIME"
echo "===================================================="
###############################################################################
# Cleanup
###############################################################################
echo
echo "Running files:cleanup..."
RET1=$($OCC files:cleanup)
###############################################################################
# User scans
###############################################################################
echo
echo "Starting file scans..."
{
$OCC files:scan -vvv Mimi >> "$MIMI_LOG" 2>&1
echo "$(date): Mimi finished" >> "$MIMI_LOG"
} &
PID1=$!
{
$OCC files:scan -vvv lucas >> "$LUCAS_LOG" 2>&1
echo "$(date): Lucas finished" >> "$LUCAS_LOG"
} &
PID2=$!
wait "$PID1"
wait "$PID2"
echo "All scans completed."
###############################################################################
# Maintenance
###############################################################################
echo
echo "Running occ check..."
RET4=$($OCC check)
echo
echo "Updating mimetype database..."
RET5=$($OCC maintenance:mimetype:update-db)
echo
echo "Updating .htaccess..."
RET6=$($OCC maintenance:update:htaccess)
echo
echo "Updating mimetype JS..."
RET7=$($OCC maintenance:mimetype:update-js)
ENDTIME=$(date +"%F %T")
###############################################################################
# Summary log
###############################################################################
{
echo
echo "===================================================="
echo "NEXTCLOUD MAINTENANCE REPORT"
echo "===================================================="
echo
echo "Start: $STARTTIME"
echo "End: $ENDTIME"
echo
echo "===== FILES:CLEANUP ====="
echo "$RET1"
echo
echo "===== OCC CHECK ====="
echo "$RET4"
echo
echo "===== MIMETYPE UPDATE DB ====="
echo "$RET5"
echo
echo "===== UPDATE HTACCESS ====="
echo "$RET6"
echo
echo "===== MIMETYPE UPDATE JS ====="
echo "$RET7"
echo
} >> "$SUMMARY_LOG"
echo
echo "Maintenance completed successfully."
echo "Summary written to:"
echo " $SUMMARY_LOG"