#!/bin/bash # ============================================================================= # Fast File Creator - Direct filesystem # ============================================================================= # Maakt {{ files_per_teamfolder }} bestanden per teamfolder aan op het filesystem. # Veel sneller dan WebDAV uploads (~500K bestanden in ~40 minuten). # ============================================================================= set -euo pipefail GROUPFOLDERS_DIR="{{ groupfolders_dir }}" NUM_TEAMFOLDERS={{ num_teamfolders }} FILES_PER_FOLDER={{ files_per_teamfolder }} FILE_PREFIX="{{ dummy_file_prefix }}" FILE_EXT="{{ dummy_file_extension }}" FILE_CONTENT="{{ dummy_file_content }}" echo "============================================================" echo "Fast File Creator - Direct Filesystem" echo "Doel: ${NUM_TEAMFOLDERS} folders x ${FILES_PER_FOLDER} bestanden" echo "============================================================" # Haal groupfolder mapping op (API folder_id -> disk folder number) GF_IDS=$(mysql -u root {{ nextcloud_db_name }} -N -e \ "SELECT folder_id FROM oc_group_folders WHERE mount_point LIKE '{{ teamfolder_prefix }}-%' ORDER BY folder_id LIMIT ${NUM_TEAMFOLDERS}") TOTAL_CREATED=0 FOLDER_COUNT=0 START_TIME=$(date +%s) for GF_ID in ${GF_IDS}; do FOLDER_COUNT=$((FOLDER_COUNT + 1)) FILES_DIR="${GROUPFOLDERS_DIR}/${GF_ID}/files" # Maak files directory aan als die niet bestaat mkdir -p "${FILES_DIR}" # Tel bestaande bestanden EXISTING=$(find "${FILES_DIR}" -maxdepth 1 -name "${FILE_PREFIX}-*.${FILE_EXT}" 2>/dev/null | wc -l) if [ "${EXISTING}" -ge "${FILES_PER_FOLDER}" ]; then echo "[SKIP] Folder ${FOLDER_COUNT} (gf_id=${GF_ID}): ${EXISTING} bestanden bestaan al" TOTAL_CREATED=$((TOTAL_CREATED + EXISTING)) continue fi # Maak bestanden aan CREATED=0 for i in $(seq -w 1 ${FILES_PER_FOLDER}); do FNAME="${FILE_PREFIX}-${i}.${FILE_EXT}" FPATH="${FILES_DIR}/${FNAME}" if [ ! -f "${FPATH}" ]; then echo "${FILE_CONTENT}" > "${FPATH}" CREATED=$((CREATED + 1)) fi done # Fix ownership chown -R www-data:www-data "${FILES_DIR}" TOTAL_CREATED=$((TOTAL_CREATED + FILES_PER_FOLDER)) ELAPSED=$(( $(date +%s) - START_TIME )) echo "[DONE] Folder ${FOLDER_COUNT} (gf_id=${GF_ID}): ${CREATED} nieuw aangemaakt (${ELAPSED}s, totaal: ${TOTAL_CREATED})" done ELAPSED=$(( $(date +%s) - START_TIME )) echo "" echo "============================================================" echo "Voltooid in ${ELAPSED} seconden" echo "Totaal bestanden: ${TOTAL_CREATED}" echo "============================================================"