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"