#!/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="sudo -u www-data php $NC_PATH/occ" STARTTIME=$(date +"%F %T") mkdir -p "$LOGDIR" : > "$MIMI_LOG" : > "$LUCAS_LOG" : > "$MULTI_LOG" echo "====================================================" echo "Nextcloud maintenance started: $STARTTIME" echo "====================================================" cleanup() { echo echo "Starting Apache..." sudo systemctl start apache2 } trap cleanup EXIT echo "Stopping Apache..." sudo systemctl stop apache2 ############################################################################### # 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=$! { $OCC files:scan -vvv multimedia >> "$MULTI_LOG" 2>&1 echo "$(date): Multimedia finished" >> "$MULTI_LOG" } & PID3=$! wait "$PID1" wait "$PID2" wait "$PID3" 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"