Skip to content

Instantly share code, notes, and snippets.

Avatar

Josiah Ritchie flickerfly

View GitHub Profile
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 / 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
View bash right aligned counter
final=800
counter=0
while [ $counter -le $final ]; do
printf "\r %75s/%4s" $counter $final
sleep 1
((counter++));
done
@flickerfly
flickerfly / upgrade-postgres-9.3-to-9.5.md
Created Jan 16, 2017 — forked from johanndt/upgrade-postgres-9.3-to-9.5.md
Upgrading PostgreSQL from 9.3 to 9.5 on Ubuntu
View upgrade-postgres-9.3-to-9.5.md

TL;DR

Install Postgres 9.5, and then:

sudo pg_dropcluster 9.5 main --stop
sudo pg_upgradecluster 9.3 main
sudo pg_dropcluster 9.3 main