Skip to content

Instantly share code, notes, and snippets.

@grifferz
grifferz / files_of_interest.j2
Last active June 7, 2018 06:40
Build a config file with a supplied list of file paths, indicating any that are missing
{# If there were any files missing on the remote host then remove them from #}
{# the files_of_interest list using the "difference" filter. #}
{% if missing_files_of_interest | length > 0 %}
{% set files_of_interest = files_of_interest | difference(missing_files_of_interest) %}
############################################################################
# The following files were configured but don't exist on this host right now:
{% for file in missing_files_of_interest %}
# {{ file }}
{% endfor %}
############################################################################
@grifferz
grifferz / git_svn_bash_prompt.sh
Created February 12, 2019 21:38
Would generally recommend powerline of bashline or oh-my-zsh or something but this makes a fancy bash prompt from scratch
#!/bin/bash
# Started off being just the git/svn stuff from authors below but then got
# hacked on by me to add other silly things.
#
# Needs:
# - A 256-colour terminal
# - A terminal that supports colour emoji (else you'll need to substitute boring monochrome unicode glyphs and maybe colour them with terminal escapes)
# - Powerline font ("fonts-powerline" on Debian/Ubuntu) for the separator chevrons
# - Add this to your ~/.bashrc like:
@grifferz
grifferz / attackers.sh
Created June 23, 2019 03:19
Dumb script to resolve a list of IPs to their reverse DNS and AS details
#!/bin/bash
#
# Dumb script to resolve a list of IPs to their reverse DNS and AS details.
#
# This directly calls whois against whois.cymru.com for each line of input
# so if you're going to run it with hundreds of lines of input, maybe don't
# do that and use their DNS zone instead.
#
# Usage
# Pipe a list of counts and IP addresses through me like:
@grifferz
grifferz / gather_tags.pl
Created January 8, 2020 00:26
Get all the "Keywords", "Subject" and "TagsList" tags from my photos and save them out as a YAML file
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Encode qw(decode_utf8);
@ARGV = map { decode_utf8($_, 1) } @ARGV;
@grifferz
grifferz / fix_tags.pl
Created January 8, 2020 00:40
Given YAML file from gather_tags.pl, stuff tags back into current copy of photos
#!usr/bin/env perl
# This uses the YAML generated by gather_tags.pl
#
# See: https://gist.github.com/grifferz/5b116b87d93ee9586a053a4021ef86fc
use strict;
use warnings;
use utf8;
@grifferz
grifferz / 50-set-preferred-lft
Created November 17, 2018 23:37
networkd-dispatcher bash script to set all IPv6 addresses to preferred_lft 0
#!/bin/bash
# bash v4 required because of associative array below.
# networkd-dispatcher hook script that sets every IPv6 address on the system to
# have preferred_lft 0. Put it in for example in
# /etc/networkd-dispatcher/routable.d/50-set-preferred-lft and make sure it's
# executable and owned by root:root.
#
# There's an associative array below where you can list addresses NOT to
@grifferz
grifferz / shaper.sh
Created December 26, 2020 09:24
Hacky script to use an ifb interface to shape traffic both ways on another interface
#!/bin/sh
# shaper.sh eth1 clear # removes traffic shaping
# shaper.sh eth1 1000 # shapes eth1 to 1Mbit/s in both directions
# Andy Smith <andy@bitfolk.com>
intf="$1"
bw="$2"
ifb="ifb0"
@grifferz
grifferz / fix-9990-networking.sh.patch
Created January 28, 2022 21:22
Hack to get BitFolk's static IP setup on a Debian Live image
diff -Naur a/usr/lib/live/boot/9990-networking.sh b/usr/lib/live/boot/9990-networking.sh
--- a/usr/lib/live/boot/9990-networking.sh 2022-01-28 21:16:07.880622551 +0000
+++ b/usr/lib/live/boot/9990-networking.sh 2022-01-28 21:15:40.504719118 +0000
@@ -104,16 +104,25 @@
fi
done
else
- for interface in ${DEVICE}; do
- ipconfig -t "$ETHDEV_TIMEOUT" "${interface}" | tee "/netboot-${interface}.config"
-
@grifferz
grifferz / mailman3-mysqldump.bash
Created June 24, 2022 20:17
bash script to dump mailman3's mysql tables excluding hyperkitty archives
#!/bin/bash
# Needs bash because uses bash arrays.
# Use mysqldump to dump out the mailman3 and mailman3web databases
# through a pipe to gzip, then move it on top of the last backup. It
# is assumed your general backup system takes care of backing up those
# files elsewhere, keeping historical copies.
#
# All tables from the mailman3 database are dumped out, but only the
@grifferz
grifferz / exim.conf
Created July 11, 2022 02:11
Saving a copy of all bounce messages with Exim4
# /etc/exim4/conf.d/router/050_traffic_tap
# This should be the first defined router.
traffic_tap:
unseen
no_expn
no_verify
transport = local_copy_outgoing
driver = accept
# "mm_domains" is a list of domain names for mailman, e.g.
# "lists.example.com"; it's set as part of the usual Mailman install on