etc~ scripts and random things |
| git clone https://github.com/djnnvx/etc.git |
| log | files | refs | archive |
cleanup.sh (3102B)
1 #!/bin/bash 2 # cleanup.sh — terminate all fuzzing processes and optionally remove build artifacts. 3 # 4 # Options: 5 # --keep-corpus preserve workdir-*/ (crash data + corpus) 6 # --keep-builds preserve compiled binaries, kernel, syzkaller, initramfs 7 # --crashes-only only kill processes, don't remove anything 8 # 9 # Usage: 10 # bash cleanup.sh # full cleanup 11 # bash cleanup.sh --keep-corpus # kill procs + rm artifacts, keep fuzzing data 12 13 set -uo pipefail 14 15 SCRIPT_DIR="$(cd "$(dirname "${0}")" && pwd)" 16 cd "${SCRIPT_DIR}" 17 18 SESSION="usb-fuzz" 19 20 KEEP_CORPUS=0 21 KEEP_BUILDS=0 22 CRASHES_ONLY=0 23 24 for arg in "$@"; do 25 case "${arg}" in 26 --keep-corpus) KEEP_CORPUS=1 ;; 27 --keep-builds) KEEP_BUILDS=1 ;; 28 --crashes-only) CRASHES_ONLY=1 ;; 29 *) echo "[!] Unknown option: ${arg}" >&2 ;; 30 esac 31 done 32 33 log() { echo "[*] $*"; } 34 ok() { echo "[+] $*"; } 35 36 # ── kill tmux session ───────────────────────────────────────────────────────── 37 if tmux list-sessions 2>/dev/null | grep -q "^${SESSION}:"; then 38 log "Killing tmux session '${SESSION}'..." 39 tmux kill-session -t "${SESSION}" 2>/dev/null || true 40 ok "tmux session killed." 41 else 42 log "No tmux session '${SESSION}' found." 43 fi 44 45 # ── kill syz-manager and QEMU ───────────────────────────────────────────────── 46 pkill -u "$(id -un)" -f "syz-manager" 2>/dev/null || true 47 pkill -u "$(id -un)" -f "syz-fuzzer" 2>/dev/null || true 48 pkill -u "$(id -un)" -f "syz-executor" 2>/dev/null || true 49 pkill -u "$(id -un)" qemu-system-x86_64 2>/dev/null || true 50 51 if [[ "${CRASHES_ONLY}" -eq 1 ]]; then 52 ok "Process cleanup done. (--crashes-only: no files removed)" 53 exit 0 54 fi 55 56 # ── remove build artifacts ──────────────────────────────────────────────────── 57 if [[ "${KEEP_BUILDS}" -eq 0 ]]; then 58 log "Removing compiled kernel + initramfs..." 59 rm -f bzImage 60 rm -f qemu/initramfs.cpio.gz qemu/disk.img 61 rm -rf initramfs/ 62 63 log "Removing source trees (kernel, busybox, dropbear, syzkaller, Go)..." 64 rm -rf linux/ 65 rm -rf busybox-*/ busybox-install/ 66 rm -rf dropbear-*/ dropbear-install/ 67 rm -rf syzkaller/ 68 rm -rf go/ gopath/ 69 70 log "Removing SSH keys..." 71 rm -f qemu/id_rsa qemu/id_rsa.pub 72 73 ok "Build artifacts removed." 74 fi 75 76 # ── remove fuzzing data ─────────────────────────────────────────────────────── 77 if [[ "${KEEP_CORPUS}" -eq 0 ]]; then 78 log "Removing workdirs and fuzzing output..." 79 rm -rf workdir-raw-gadget/ workdir-gadget-fw/ workdir-usbfs/ 80 rm -f .last_backup .seen_crash_hashes 81 ok "Workdirs removed." 82 else 83 log "Keeping workdir-*/ (--keep-corpus)." 84 fi 85 86 ok "Cleanup complete."