j0h

backfill.sh

j0h
Apr 17th, 2026 (edited)
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.94 KB | None | 0 0
  1. #!/usr/bin/env bash
  2. # modified as PLC doesnt process *.bin files
  3. set -euo pipefail
  4.  
  5. BASE="/media/eri/6634-6631/FCDATA01/DATALOG/1-secLog"
  6. START_DATE="20260401"
  7.  
  8. CHUNK_MB=16
  9. RESERVE_MB=10000
  10.  
  11. TMPFILE="/home/eri/Desktop/out.csv"
  12.  
  13. # Create reusable file once
  14. if [[ ! -f "$TMPFILE" ]]; then
  15.     echo "Creating temp file $TMPFILE (${CHUNK_MB} MB)..."
  16.     dd if=/dev/zero of="$TMPFILE" bs=1M count="$CHUNK_MB" status=progress
  17. fi
  18.  
  19. current="$START_DATE"
  20.  
  21. while true; do
  22.     current=$(date -d "${current} -1 day" +%Y%m%d)
  23.     dir="$BASE/$current"
  24.     mkdir -p "$dir"
  25.  
  26.     free_kb=$(df --output=avail "$BASE" | tail -n 1)
  27.     free_mb=$((free_kb / 1024))
  28.  
  29.     usable_mb=$((free_mb - RESERVE_MB))
  30.     if (( usable_mb <= 0 )); then
  31.         echo "Stopping: not enough free space left."
  32.         break
  33.     fi
  34.  
  35.     outfile="$dir/file.csv"
  36.  
  37.     echo "Writing $outfile (${CHUNK_MB} MB)..."
  38.     cp "$TMPFILE" "$outfile"
  39. done
  40.  
  41. echo "Done."
  42.  
Advertisement
Add Comment
Please, Sign In to add comment