Skip to content

Instantly share code, notes, and snippets.

@UnixSage
UnixSage / createbridge.sh
Created September 8, 2024 22:38
Can be used to move connectivity from an interface to a bridge with the provided IP information. While I have successfully used this while remote it must be done with care as it could very well send you to the datacenter. Also it assumes the DNS server is the same as the gateway.
#!/bin/bash
if [ $# -ne 3 ] ; then
echo "usage: $0 <interface> <ip/cidr> <gateway>"
echo "ie: $0 eno1 10.0.0.25/24 10.0.0.1"
exit 1
fi
INTERFACE=$1
IP=$2
@UnixSage
UnixSage / ssh-agent.sh
Created September 7, 2022 13:41
Snipit to add to bash_profile that will find an existing ssh-agent or start a new one. Also complains if it finds more than one for a user.
# Attach to a running ssh-agent or start a new one
if [ `find /tmp -maxdepth 1 -name "ssh-*" -user ${USER} | wc -l` == 1 ] ; then
echo "Found ssh-agent, attaching.."
SSHDIR=`find /tmp -maxdepth 1 -name "ssh-*" -user ${USER}`
SSH_AUTH_SOCK=`ls ${SSHDIR}/agent*` ; export SSH_AUTH_SOCK
SSH_AGENT_PID=`echo ${SSH_AUTH_SOCK} | awk -F"." '{print $2+1}'` ; export SSH_AGENT_PID
echo "Agent pid ${SSH_AGENT_PID}"
elif [ `find /tmp -maxdepth 1 -name "ssh-*" -user ${USER} | wc -l` == 0 ] ; then
echo "no ssh-agent found, starting.."
eval `ssh-agent -t 86400`
@UnixSage
UnixSage / selectiveDump.sh
Created July 30, 2021 14:27
Shell script that calls dump with an exclude list
#!/bin/sh
if [ $# = 2 ] ; then
NODENAME=$1
LEVEL=$2
elif [ $# = 1 ] ; then
NODENAME=$HOSTNAME
LEVEL=$1
else
NODENAME=$HOSTNAME
@UnixSage
UnixSage / PurgeOrphanedPacker.py
Created April 15, 2021 21:03
AWS Lambda function that will stop and eventually terminate instances that have packer keys attached to them .
#!/usr/bin/env python3
import datetime
import pytz
import boto3
def lambda_handler(event, context):
TerminateDelayDays = 3
StopDelayDays = 1
@UnixSage
UnixSage / RotateAwsCreds.py
Created March 2, 2021 19:33
Handy of you have multiple aws accounts, utility that interrogates your aws config and generates aws-vault command lines and passwords to facilitate secret rotation.
#!/usr/bin/env python3
import configparser
import re
import string
from random import choice
from os.path import expanduser
PasswordLength = 32
SpecialCount = 4
@UnixSage
UnixSage / SES-Send.sh
Created September 17, 2020 20:01
Send email via AWS SES from the command line
#!/bin/bash
DOMAIN="example.com"
MAILFROM="cmdline@${DOMAIN}"
MAILTO="someone@example.com"
SUBJECT="Amazon SES SMTP Test from ${HOSTNAME}"
USER="AWSKEY"
PASSWORD="AWSSMTPPASSWORD"
SMTPHOST="email-smtp.us-east-1.amazonaws.com:587"
@UnixSage
UnixSage / CertBotManualAuthHook.sh
Last active January 28, 2022 22:58
Manual Script for CertBot for manual DNS Changes...
#!/bin/sh
echo "Domain: _acme-challenge.${CERTBOT_DOMAIN}" > /tmp/Manual.log
echo "Secret: ${CERTBOT_VALIDATION}" >> /tmp/Manual.log
echo "Looking for /tmp/done.$$" >> /tmp/Manual.log
while [ ! -f /tmp/done.$$ ]
do
sleep 2
@UnixSage
UnixSage / CalcHours.py
Last active August 1, 2020 22:52
Evenly split arbitrary groups of hours evenly across work days in a month
#!/usr/bin/env python3
import calendar, datetime, holidays
import math
import os, json
# hours.json format
#
# {
# "Client1": 116,
@UnixSage
UnixSage / CertBotNearlyFreeSpeechAuthHook.sh
Last active March 16, 2024 15:04
Drop in script for CertBot's --manual-auth-hook switch for DNS Hosted at NearlyFreeSpeech.com
#!/bin/bash
API_KEY="##NFS-API-KEY##"
LOGIN="##NFS-USER##"
updatedns() {
OLDDATA=`dig @${NAMESERVER} -t txt +noall +answer ${DNSRECORD}.${CERTBOT_DOMAIN} | awk '{gsub("\"",""); print $5}'`
for FUNCTION in removeRR addRR ; do
echo "Running ${FUNCTION}"
@UnixSage
UnixSage / GetBitBucketRepos.sh
Last active January 22, 2024 17:13
Simple Script to get a list of BitBucket repos for a given team
#!/bin/bash
USER="##USER_NAME_NOT_EMAIL##"
SECRET="##SECRET##"
TEAM="##TEAMNAME##"
CACHE="/tmp/repolist.$$"
REPOFILE="/tmp/repolist.txt"
URL="https://api.bitbucket.org/2.0/repositories/${TEAM}?pagelen=100"