Auto-commit from giteapush.sh at 2025-05-22 08:51:17

This commit is contained in:
DocTator 2025-05-22 08:51:17 -04:00
parent be3665906a
commit 429c6472d5
110 changed files with 1139 additions and 0 deletions

View File

@ -0,0 +1,41 @@
# bin-there-done-that
A sysadmins personal graveyard of hacks, helpers, one-liners, and scripts that probably shouldnt work — but absolutely do.
This is where the magic happens:
- 🔧 Server bootstraps
- 📦 ZFS snapshot management
- 🧼 Cron-powered cleanup rituals
- ☠️ Disaster recovery with no disasters (yet)
- 🐢 Slow rsyncs. Fast regrets.
> **Status:** In production. Against better judgment.
---
## ⚙️ Highlights
- `pull_health_everywhere.sh` because you cant fix what you dont know is broken
- `dr_spl_overlay.sh` tape drive energy for modern times
- `fix_mastodon_perms.sh` chown your sins away
- `validate_zfs_snapshots.sh` trust but verify (and scrub)
- `freezer.sh` it's like a backup, but colder
---
## 📌 Philosophy
- Flat files > Object storage
- ZFS is life
- Automation is king
- Users lie and take up space
---
## 🧠 Use at your own risk
This repo is for *me*. If you find it useful, cool. If it destroys your cluster, you probably shouldnt have been copying scripts from a repo with this name anyway.

View File

@ -0,0 +1,62 @@
#!/bin/bash
# === Genesis PXE Verifier ===
# Verifies iPXE script and image accessibility over Tailscale
TAILSCALE_IP="100.113.50.65"
VM_NAME="$1"
if [[ -z "$VM_NAME" ]]; then
echo "Usage: $0 <vm-name>"
exit 1
fi
IPXE_URL="http://100.113.50.65:3000/ipxe/${VM_NAME}.ipxe"
echo "🔎 Checking iPXE script at $IPXE_URL ..."
if ! curl -fsSL "$IPXE_URL" -o /tmp/${VM_NAME}.ipxe; then
echo "❌ Failed to fetch iPXE script: $IPXE_URL"
exit 2
fi
echo "✅ iPXE script retrieved."
# Extract kernel and initrd lines
KERNEL_URL=$(grep '^kernel ' /tmp/${VM_NAME}.ipxe | awk '{print $2}')
INITRD_URL=$(grep '^initrd ' /tmp/${VM_NAME}.ipxe | awk '{print $2}')
if [[ -z "$KERNEL_URL" || -z "$INITRD_URL" ]]; then
echo "❌ Could not parse kernel/initrd URLs from iPXE script."
exit 3
fi
echo "🔍 Kernel URL: $KERNEL_URL"
echo "🔍 Initrd URL: $INITRD_URL"
echo "🔎 Verifying kernel URL ..."
if ! curl -fsI "$KERNEL_URL" >/dev/null; then
echo "❌ Kernel file not accessible."
exit 4
fi
echo "✅ Kernel accessible."
echo "🔎 Verifying initrd URL ..."
if ! curl -fsI "$INITRD_URL" >/dev/null; then
echo "❌ Initrd file not accessible."
exit 5
fi
echo "✅ Initrd accessible."
echo "🎉 PXE verification successful for VM: $VM_NAME"
echo "🚀 Ready to launch boot from $IPXE_URL"
# Optional: Telegram notify (requires telegram-send config)
if command -v telegram-send &>/dev/null; then
telegram-send "✅ PXE verify passed for *${VM_NAME}*.
Netboot source: \`${IPXE_URL}\`
Kernel: \`${KERNEL_URL##*/}\`
Initrd: \`${INITRD_URL##*/}\`
Ready to launch via Proxmox." --parse-mode markdown
fi
exit 0

View File

@ -0,0 +1,15 @@
---
title: backup.sh
categories: [backup]
source: bin/backup.sh
generated: 2025-05-22T08:38:59-04:00
---
# backup.sh
#!/bin/bash
Configuration
Ensure the destination directory exists
Backup Mastodon files
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,12 @@
---
title: clean_media.sh
categories: [uncategorized]
source: bin/clean_media.sh
generated: 2025-05-22T08:38:59-04:00
---
# clean_media.sh
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,12 @@
---
title: clean_orphans.sh
categories: [uncategorized]
source: bin/clean_orphans.sh
generated: 2025-05-22T08:38:59-04:00
---
# clean_orphans.sh
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,12 @@
---
title: clean_previewcards.sh
categories: [uncategorized]
source: bin/clean_previewcards.sh
generated: 2025-05-22T08:38:59-04:00
---
# clean_previewcards.sh
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: copydunkadunk.sh
categories: [uncategorized]
source: bin/copydunkadunk.sh
generated: 2025-05-22T08:38:59-04:00
---
# copydunkadunk.sh
#!/bin/bash
Base path where your current datasets are mounted
Mapping of underscore-named folders to dash-named equivalents
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: dasystemisdownyo.sh
categories: [uncategorized]
source: bin/dasystemisdownyo.sh
generated: 2025-05-22T08:38:59-04:00
---
# dasystemisdownyo.sh
#!/bin/bash
#da system is down yo
=== CONFIG ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,23 @@
---
title: db2_backup.sh
categories: [backup]
source: bin/db2_backup.sh
generated: 2025-05-22T08:38:59-04:00
---
# db2_backup.sh
#!/bin/bash
#
Script Name: db2_zfs_backup.sh
Description: Creates a raw base backup of PostgreSQL on zcluster.technodrome2 using pg_basebackup in directory mode.
Transfers the backup to The Vaults ZFS dataset and snapshots it for long-term retention.
Requirements: pg_basebackup, SSH access, rclone or rsync, ZFS dataset available at destination
Usage: ./db2_zfs_backup.sh
Author: Doc @ Genesis Ops
Date: 2025-05-12
#
### CONFIGURATION ###
Remote source rclone config (optional)
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,12 @@
---
title: deldirectories.sh
categories: [uncategorized]
source: bin/deldirectories.sh
generated: 2025-05-22T08:38:59-04:00
---
# deldirectories.sh
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,16 @@
---
title: disk_mitigator.sh
categories: [disk]
source: bin/disk_mitigator.sh
generated: 2025-05-22T08:38:59-04:00
---
# disk_mitigator.sh
#!/bin/bash
=== Prompt for Target ===
=== Alert Config (local alerts) ===
=== Remote Disk Check + Cleanup Script ===
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: do_the_needful.sh
categories: [uncategorized]
source: bin/do_the_needful.sh
generated: 2025-05-22T08:38:59-04:00
---
# do_the_needful.sh
#!/bin/bash
=== CONFIG ===
=== Telegram Config ===
1. Tune swappiness
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: dotheneedfuleverywhere.sh
categories: [uncategorized]
source: bin/dotheneedfuleverywhere.sh
generated: 2025-05-22T08:38:59-04:00
---
# dotheneedfuleverywhere.sh
#!/bin/bash
=== CONFIG ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: dr_mirror_to_linode.sh
categories: [dr]
source: bin/dr_mirror_to_linode.sh
generated: 2025-05-22T08:38:59-04:00
---
# dr_mirror_to_linode.sh
#!/bin/bash
=== CONFIG ===
=== SETUP ===
=== START LOGGING ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: dr_telegram_alert.sh
categories: [alert, dr]
source: bin/dr_telegram_alert.sh
generated: 2025-05-22T08:38:59-04:00
---
# dr_telegram_alert.sh
#!/bin/bash
Telegram Bot Token and Chat ID
Function to send Telegram message
Check if it's the first of the month and send a reminder
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: fix_queue.sh
categories: [fix]
source: bin/fix_queue.sh
generated: 2025-05-22T08:38:59-04:00
---
# fix_queue.sh
#!/bin/bash
===== CONFIG =====
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: fix_queue2.sh
categories: [fix]
source: bin/fix_queue2.sh
generated: 2025-05-22T08:38:59-04:00
---
# fix_queue2.sh
#!/bin/bash
===== CONFIG =====
Set full path for bundle
Set RAILS_ENV for the script execution
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: fix_queue3.sh
categories: [fix]
source: bin/fix_queue3.sh
generated: 2025-05-22T08:38:59-04:00
---
# fix_queue3.sh
#!/bin/bash
===== CONFIG =====
Set full path for bundle
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: fixsudoerseverywhere.sh
categories: [fix]
source: bin/fixsudoerseverywhere.sh
generated: 2025-05-22T08:38:59-04:00
---
# fixsudoerseverywhere.sh
#!/bin/bash
=== CONFIG ===
=== Execution ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: freezer.sh
categories: [uncategorized]
source: bin/freezer.sh
generated: 2025-05-22T08:38:59-04:00
---
# freezer.sh
#!/bin/bash
Find all venvs, freeze their packages to requirements.txt
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,12 @@
---
title: freezermove.sh
categories: [uncategorized]
source: bin/freezermove.sh
generated: 2025-05-22T08:38:59-04:00
---
# freezermove.sh
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,12 @@
---
title: genesis_check.sh
categories: [uncategorized]
source: bin/genesis_check.sh
generated: 2025-05-22T08:38:59-04:00
---
# genesis_check.sh
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: genesis_sync_progress.sh
categories: [sync]
source: bin/genesis_sync_progress.sh
generated: 2025-05-22T08:38:59-04:00
---
# genesis_sync_progress.sh
#!/bin/bash
GenesisSync Progress Tracker - No hangs, no nonsense
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,12 @@
---
title: get_telegram_id.sh
categories: [uncategorized]
source: bin/get_telegram_id.sh
generated: 2025-05-22T08:38:59-04:00
---
# get_telegram_id.sh
#!/bin/bash
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,18 @@
---
title: giteapushv3.sh
categories: [uncategorized]
source: bin/giteapushv3.sh
generated: 2025-05-22T08:38:59-04:00
---
# giteapushv3.sh
#!/bin/bash
Genesis Radio Git Auto-Push
With Auto-Retry if Push Fails
Move to the top of the git repo automatically
Log the current location
Stage all changes (new, modified, deleted)
Check if there's anything to commit
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,16 @@
---
title: hardenit.sh
categories: [uncategorized]
source: bin/hardenit.sh
generated: 2025-05-22T08:38:59-04:00
---
# hardenit.sh
#!/bin/bash
harden_pyapps_box.sh - Secure the Genesis pyapps VM
Run as root or with sudo
1. Lock unused system accounts
2. Enforce password policy for doc
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: kodakmoment.sh
categories: [uncategorized]
source: bin/kodakmoment.sh
generated: 2025-05-22T08:38:59-04:00
---
# kodakmoment.sh
#!/usr/bin/env bash
### CONFIG ###
Timestamp-based vars (only when running a snapshot)
--dry-run support
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: kodakmomentproxmox.sh
categories: [uncategorized]
source: bin/kodakmomentproxmox.sh
generated: 2025-05-22T08:38:59-04:00
---
# kodakmomentproxmox.sh
#!/usr/bin/env bash
### CONFIG ###
Ensure base destination directory exists
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: krang_backup.sh
categories: [backup]
source: bin/krang_backup.sh
generated: 2025-05-22T08:38:59-04:00
---
# krang_backup.sh
#!/bin/bash
Source directories to back up
Destination directories on the vault
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: krang_modular_health.sh
categories: [uncategorized]
source: bin/krang_modular_health.sh
generated: 2025-05-22T08:38:59-04:00
---
# krang_modular_health.sh
#!/bin/bash
=== CONFIG ===
Thresholds
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: malips.sh
categories: [uncategorized]
source: bin/malips.sh
generated: 2025-05-22T08:38:59-04:00
---
# malips.sh
#!/bin/bash
Path to Snort's alert log (snort.alert.fast)
Database connection details
Function to insert blocked IP into the PostgreSQL database
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: mastodon_restart.sh
categories: [mastodon]
source: bin/mastodon_restart.sh
generated: 2025-05-22T08:38:59-04:00
---
# mastodon_restart.sh
#!/bin/bash
=== CONFIG ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: mastodon_status-check.sh
categories: [mastodon]
source: bin/mastodon_status-check.sh
generated: 2025-05-22T08:38:59-04:00
---
# mastodon_status-check.sh
#!/bin/bash
Load token from ~/.mastodon-token or environment
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: migrationtoblock.sh
categories: [uncategorized]
source: bin/migrationtoblock.sh
generated: 2025-05-22T08:38:59-04:00
---
# migrationtoblock.sh
#!/bin/bash
=== CONFIG ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: p1.sh
categories: [uncategorized]
source: bin/p1.sh
generated: 2025-05-22T08:38:59-04:00
---
# p1.sh
#!/bin/bash
Configuration
Initialize the log file
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: p2.sh
categories: [uncategorized]
source: bin/p2.sh
generated: 2025-05-22T08:38:59-04:00
---
# p2.sh
#!/bin/bash
Function to print dry-run actions and log them
Configuration
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: perms.sh
categories: [uncategorized]
source: bin/perms.sh
generated: 2025-05-22T08:38:59-04:00
---
# perms.sh
#!/bin/bash
Safe and resumable chmod script with progress output
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: pull_health_everywhere_ntp.sh
categories: [uncategorized]
source: bin/pull_health_everywhere_ntp.sh
generated: 2025-05-22T08:38:59-04:00
---
# pull_health_everywhere_ntp.sh
#!/bin/bash
=== CONFIG ===
Thresholds
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: restore.sh
categories: [restore]
source: bin/restore.sh
generated: 2025-05-22T08:38:59-04:00
---
# restore.sh
#!/bin/bash
Configuration
Create the local restore directory if it doesn't exist
Find the latest backup file on the remote server
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: retention.sh
categories: [uncategorized]
source: bin/retention.sh
generated: 2025-05-22T08:38:59-04:00
---
# retention.sh
#!/bin/bash
Log start of run
Init counters
Traverse all subfolders
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,16 @@
---
title: rsync_zfs_sync_helper.sh
categories: [sync, zfs]
source: bin/rsync_zfs_sync_helper.sh
generated: 2025-05-22T08:38:59-04:00
---
# rsync_zfs_sync_helper.sh
#!/bin/bash
sync_to_vault.sh
Rsync + ZFS sanity tool with built-in slash wisdom
=== CONFIG ===
=== USAGE ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: run_prune_from_krang.sh
categories: [uncategorized]
source: bin/run_prune_from_krang.sh
generated: 2025-05-22T08:38:59-04:00
---
# run_prune_from_krang.sh
#!/bin/bash
=== CONFIG ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: startemup.sh
categories: [uncategorized]
source: bin/startemup.sh
generated: 2025-05-22T08:38:59-04:00
---
# startemup.sh
#!/usr/bin/env bash
Launches Python virtual environments in separate screen sessions or manages their status
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: sync-to-vault.sh
categories: [sync]
source: bin/sync-to-vault.sh
generated: 2025-05-22T08:38:59-04:00
---
# sync-to-vault.sh
#!/bin/bash
=== CONFIG ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,16 @@
---
title: sync-trigger.sh
categories: [sync]
source: bin/sync-trigger.sh
generated: 2025-05-22T08:38:59-04:00
---
# sync-trigger.sh
#!/bin/bash
=== CONFIG ===
=== Mastodon Alert Settings ===
=== Telegram Settings ===
=== Execution ===
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: sync.sh
categories: [sync]
source: bin/sync.sh
generated: 2025-05-22T08:38:59-04:00
---
# sync.sh
#!/bin/bash
Setup alias (even if it already exists)
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,15 @@
---
title: tothebank.sh
categories: [uncategorized]
source: bin/tothebank.sh
generated: 2025-05-22T08:38:59-04:00
---
# tothebank.sh
#!/bin/bash
Mastodon Media Audit: Find orphaned .part.* dirs & estimate space wasted
For mounted MinIO (e.g., /assets/minio-data/mastodon)
Find all part.1 or similar that are actually directories
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,13 @@
---
title: upgrade.sh
categories: [uncategorized]
source: bin/upgrade.sh
generated: 2025-05-22T08:38:59-04:00
---
# upgrade.sh
#!/bin/bash
---- CONFIGURATION ----
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

View File

@ -0,0 +1,14 @@
---
title: validate_zfs.sh
categories: [zfs]
source: bin/validate_zfs.sh
generated: 2025-05-22T08:38:59-04:00
---
# validate_zfs.sh
#!/bin/bash
CONFIG
COLORS
_Auto-generated from source script on Thu May 22 08:38:59 AM EDT 2025_

Some files were not shown because too many files have changed in this diff Show More