etc.git


etc

~ scripts and random things
git clone https://github.com/djnnvx/etc.git
log | files | refs | archive

backup_crashes.sh.in (848B)

      1 #!/bin/bash
      2 # Backs up AFL++ crashes to a dated archive
      3 # Populated by build_fuzzers.sh at build time
      4 # %%CRONTAB_MARKER%%
      5 SCRIPT_DIR="%%SCRIPT_DIR%%"
      6 BACKUP_DIR="%%BACKUP_DIR%%"
      7 OUTPUT_DIR="$SCRIPT_DIR/output"
      8 
      9 mkdir -p "$BACKUP_DIR"
     10 
     11 HAS_CRASHES=false
     12 for crash_dir in "$OUTPUT_DIR"/*/main/crashes "$OUTPUT_DIR"/*/cmplog/crashes; do
     13     [ -d "$crash_dir" ] || continue
     14     count=$(find "$crash_dir" -maxdepth 1 -name 'id:*' 2>/dev/null | wc -l)
     15     [ "$count" -gt 0 ] || continue
     16     HAS_CRASHES=true
     17     break
     18 done
     19 
     20 $HAS_CRASHES || exit 0
     21 
     22 STAMP=$(date +%Y%m%d_%H%M%S)
     23 ARCHIVE="$BACKUP_DIR/crashes_${STAMP}.tar.gz"
     24 tar -czf "$ARCHIVE" \
     25     --exclude='README.txt' \
     26     $(find "$OUTPUT_DIR" -type d -name 'crashes' 2>/dev/null | tr '\n' ' ') \
     27     2>/dev/null || true
     28 
     29 echo "[$(date)] Backed up crashes → $ARCHIVE" >> "$BACKUP_DIR/backup.log"