Skip to content

Instantly share code, notes, and snippets.

Avatar

Brian Bennett bahamat

View GitHub Profile
View smtptest
#!/bin/bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
# Copyright 2014 Brian Bennett
if [[ -n "$TRACE" ]]; then
export PS4='[\D{%FT%TZ}] ${BASH_SOURCE}:${LINENO}: ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
@bahamat
bahamat / time-machine.sh
Last active Jul 22, 2020
DNS-SD Bonjour service discovery for Time Machine volumes
View time-machine.sh
#!/bin/bash -x
if [[ -z $1 ]]; then
printf 'Must supply a path\n'
exit 1
fi
# We want to advertise a consistent volume UUID that will survive reprovisions.
zone_uuid=$(zonename)
bonjour_name="$(hostname -s).local"
@bahamat
bahamat / zpool_2x2_to_3x.txt
Created Apr 5, 2020
Convert a zpool from mirror/stripe (raid 10) to 3-way mirror
View zpool_2x2_to_3x.txt
# zpool create tank mirror /var/tmp/f1 /var/tmp/f2 mirror /var/tmp/f3 /var/tmp/f4
# zpool list tank
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 1.88G 1.36M 1.87G - - 0% 0% 1.00x ONLINE -
# zpool status tank
pool: tank
state: ONLINE
scan: none requested
config:
@bahamat
bahamat / zone_count.prom
Last active Mar 17, 2020
CMON plugin to get gz zone count metrics
View zone_count.prom
#!/bin/bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
# Copyright 2020 Joyent, Inc.
printf '# HELP plugin_zone_count Zone count by state\n'
printf '# TYPE plugin_zone_count gauge\n'
@bahamat
bahamat / sdc-ssh
Created Mar 9, 2020
sdc-ssh: SSH to CN by hostname or uuid for Triton headnode
View sdc-ssh
#!/bin/bash
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# Copyright 2020 Joyent, Inc.
if [[ -n "$TRACE" ]]; then
export PS4='[\D{%FT%TZ}] ${BASH_SOURCE}:${LINENO}: ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
@bahamat
bahamat / anycast
Last active Aug 2, 2020
Anycast Example using Quagga on SmartOS
View anycast
#!/bin/bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
# This is the SMF start method for anycast.
# Put it in /opt/custom/smf/anycast
set -o xtrace
@bahamat
bahamat / code.diff
Created Feb 20, 2020
illumos 12271 test case
View code.diff
--- try1.c Thu Feb 20 17:38:37 2020
+++ try2.c Thu Feb 20 17:39:02 2020
@@ -1,19 +1,19 @@
#include <stdio.h>
struct option {
const char *name;
};
-static char *
@bahamat
bahamat / mph-example.sh
Created Feb 17, 2020
Manta MPU multi-part upload example
View mph-example.sh
#!/bin/bash
# MPU parts need to be minimum 5MB, except the last part.
split -b 5m file part.
# Create MPU transaction
mpu_id=$(mmpu create ~~/stor/file)
# Upload each part
part0=$(mmpu upload -f part.aa "$mpu_id" 0)
part1=$(mmpu upload -f part.ab "$mpu_id" 1)
@bahamat
bahamat / chroot_example.sh
Last active Mar 19, 2020
chroot in lx brand zone
View chroot_example.sh
#!/bin/bash
# MIT License.
# This isn't meant to be run as a script exactly, but github has better syntax hilighting if I pretend.
chr=${PWD}/testroot
mkdir -p $chr/{bin,lib,lib64,native,var}
cd $chr
cp -v /bin/{bash,touch,ls,rm} $chr/bin
@bahamat
bahamat / docker-debug
Created Jan 22, 2020
Raw docker test utility
View docker-debug
#!/bin/bash -x
set -o pipefail
api_v="1.21"
call_docker() {
local uuid=$(uuid)
/opt/pkg/bin/curl -k -si \
--cert ${DOCKER_CERT_PATH}/cert.pem \
You can’t perform that action at this time.