refactor(nextcloud): improve OCC maintenance script
refactor(nextcloud): improve OCC maintenance script - add strict bash error handling - fix log file initialization for multimedia scan - fix incorrect completion log entries - add automatic apache restart via trap - improve variable naming and quoting - add maintenance script documentation - improve timestamp format - separate user-specific and summary logs - preserve multiline OCC output - remove obsolete email functionality - improve overall readability and reliability asd
This commit is contained in:
1 parent
653a367d92
commit
e5629b73ae
2 files changed
+149
-51
No files matched your search
Executable
+149
@@ -0,0 +1,149 @@
|
||||
#!/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"
|
||||
Reference in new issue
Block a user