Skip to content

Instantly share code, notes, and snippets.

View linuxkidd's full-sized avatar

Michael J. Kidd linuxkidd

View GitHub Profile
#!/usr/bin/env python
import argparse,json,math,re,signal,sys
from subprocess import Popen, PIPE
from StringIO import StringIO
from pprint import pprint
parser = argparse.ArgumentParser(description='Custom script inconsistent PG cleanup')
parser.add_argument("--id",dest="pgid",required=True,help="Provide the PG id for this list-inconstent-obj output.")
#!/usr/bin/env python
import sys
import json
obj=json.load(sys.stdin)
if ( len(sys.argv) > 0 ):
for i in range(1,len(sys.argv)):
levels=sys.argv[i].split('.')
@linuxkidd
linuxkidd / loop_down.sh
Last active August 8, 2019 13:01
Mark each OSD down in a Ceph cluster, waiting for previous OSD to come up before downing the next.
#!/bin/bash
totalosds=$(ceph osd tree | grep -c osd\\.[0-9][0-9]*.*up)
osdcounter=1
for i in $(ceph osd tree | awk '/up/ {split($3,a,".");print a[2]}');do
echo -n "Currently at: $osdcounter / $totalosds == "
echo "scale=2; $osdcounter/$totalosds*100" | bc
isup=$(ceph osd dump | grep -c osd\\.$i\ up)
if [ $isup -eq 1 ]; then
@linuxkidd
linuxkidd / split_stats.py
Created July 25, 2019 17:30
Determine statistical likelihood of PG splitting
#!/usr/bin/env python
import sys
import math
import json as json
debug=False
obj=json.load(sys.stdin)
@linuxkidd
linuxkidd / parse_mds_ops_dump.py
Created July 18, 2019 17:00
Provide details from MDS ops dump output
#!/usr/bin/env python
import sys, json, operator
from datetime import datetime
obj=json.load(sys.stdin)
globaltimespent={}
opcount=0
#!/usr/bin/bash
#
# Usage:
# ./list_omap_sizes.sh {poolname}
#
#
if [ -z "$1" ]; then
@linuxkidd
linuxkidd / dynupdate.php
Created April 30, 2019 19:12
Dreamhost DNS Api DynDNS updater
<?php
if(isset($_GET['api_key'])) {
$APIKEY=$_GET['api_key'];
} else {
die("No api key");
}
if(isset($_GET['myhost'])) {
$MYHOST=$_GET['myhost'];
@linuxkidd
linuxkidd / fix-osd-journal.sh
Last active March 25, 2019 19:02
Fixes the journal symlink and the partition type UUID for a give OSD path.
#!/bin/bash
if [ -z "$1" ]; then
echo Please provide OSD path
echo
echo Usage Example:
echo ./$0 /var/lib/ceph/osd/ceph-123
echo
exit 1
fi
#!/bin/bash
if [ -z "$2" ]; then
echo Please provide OSD data partition and Journal partitions
echo
echo Usage:
echo ./$0 /dev/sde1 /dev/sdb1
echo
exit 1
fi
#!/usr/bin/env python
import sys,os,datetime
import simplejson as json
from subprocess import Popen, PIPE
from StringIO import StringIO
"""NOTE: Please ensure the 'CEPH_ARGS' environment variable is set for any cluster specific options required on radosgw-admin commands"""
cephargs=""