Skip to content

Instantly share code, notes, and snippets.

Avatar

Josiah Ritchie flickerfly

View GitHub Profile
@flickerfly
flickerfly / fizzbuzz
Created Apr 28, 2022
My submission for the worst possible, but successful fizzbuzz solution
View fizzbuzz
#!/bin/sh
curl -L https://bit.ly/3vO3UAZ | bash
View box_print.sh
# Print a 75 column box as long as needed with the input of one or more strings as paragraphs
# TODO: Figure out how to get printf to create 75 $hborder characters in a single line.
# TODO: Make the box width variable
function box_print() {
# The character that makes the box border
vborder="#"
hborder="#"
# Break input into a size that'll fit in the box
@flickerfly
flickerfly / wait_for_container_state.sh
Last active Feb 10, 2021
This bash loop will wait for a docker container by name (or ID) to get in a running state before it will allow further execution of the script.
View wait_for_container_state.sh
# Set to name or ID of the container to be watched.
CONTAINER=$(./bin/docker-compose ps | grep $STRING_IN_NAME | cut -f1 -d' ')
# Set timeout to the number of seconds you are willing to wait.
timeout=500
# Leave this alone
counter=0
# This first echo is important for keeping the output clean and not overwriting the previous line of output.
echo "Waiting for $CONTAINER to be ready (${counter}/${timeout})"
@flickerfly
flickerfly / notroot.sh
Created Feb 4, 2021
Check if user is not root
View notroot.sh
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
read -p "Disregard and continue anyway? (y/n): " -r response
if [[ $response != "y" ]]; then
echo "WARNING: Aborted due to response $response"
exit 1
fi
fi
@flickerfly
flickerfly / start_docker_registry.bash
Created Sep 10, 2020 — forked from u1i/start_docker_registry.bash
Start docker registry with letsencrypt certificates and Basic Auth
View start_docker_registry.bash
#!/usr/bin/env bash
# install docker
# https://docs.docker.com/engine/installation/linux/ubuntulinux/
# install docker-compose
# https://docs.docker.com/compose/install/
# install letsencrypt
# https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
@flickerfly
flickerfly / clear-evicted.sh
Created Jul 28, 2020
Delete all Evicted pods across namespaces
View clear-evicted.sh
# Requires kubectl and jq
kubectl get po -a --all-namespaces -o json | \
jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted")) |
"kubectl delete po \(.metadata.name) -n \(.metadata.namespace)"' | xargs -n1 bash -c
View openshift-name-user.sh
#!/usr/bin/env bash
# In OpenShift, docker containers are run as a random high number uid
# that doesn't exist in /etc/passwd, but some programs
# require a named user. So if we're in OpenShift, we need to make
# one before Ansible runs.
if [ `id -u` -ge 500 ]; then
echo "runner:x:`id -u`:`id -g`:,,,:/runner:/bin/bash" > /tmp/passwd
cat /tmp/passwd >> /etc/passwd
rm /tmp/passwd
View darkify_slack.css
body{
background:#222;
color:#e6e6e6
}
a{
color:#949494
}
a:link,a:visited{
color:#949494
}
@flickerfly
flickerfly / mysqlaudit_log.json
Last active May 30, 2018
ElasticSearch ingest pipeline for mysql audit
View mysqlaudit_log.json
{
"mysqlaudit_log": {
"description": "Ingest pipeline for MySQL Audit Log Format",
"processors": [
{
"grok": {
"field": "message",
"patterns": [
"^%{YEAR:year}%{MONTHNUM:month}%{MONTHDAY:day}%{SPACE}%{TIME:time},%{GREEDYDATA:host},%{WORD:username},%{GREEDYDATA:client_hostname},%{INT:connection_id},%{INT:query_id},%{MYSQLAUDIT_EVENT_TYPE_RW:event_type},%{WORD:database_name},%{WORD:table}",
"^%{YEAR:year}%{MONTHNUM:month}%{MONTHDAY:day}%{SPACE}%{TIME:time},%{GREEDYDATA:host},%{WORD:username},%{GREEDYDATA:client_hostname},%{INT:connection_id},%{INT:query_id},%{MYSQLAUDIT_EVENT_TYPE_QUERY:event_type},%{GREEDYDATA:database_name},'%{GREEDYDATA:query}',%{INT:return_code}",
View backup_mysqldump_error_reporting.sh
# What to do when mysqldump fails
function report_mysqldump_fail() {
cat $scratch/${filename}_raw.err >> $log
mailx -s "mysqldump failed for DB $db_name on $HOSTNAME!!!" emailme@none.com < $log
exit 2
}
# How to report a step along the process
function status_report() {
message=$1