Skip to content

Instantly share code, notes, and snippets.

View robbmanes's full-sized avatar
🎮
pew pew

Robb Manes robbmanes

🎮
pew pew
View GitHub Profile
@robbmanes
robbmanes / rh-container-registry.sh
Last active January 24, 2022 17:43
Test functionality of Red Hat Container Registries manually
#!/bin/bash
# rh-container-registry.sh
# Test functionality of Red Hat Container Registries using pure HTTP/S.
# Useful for determining issues when/if behind proxies, load balancers,
# or other in-the-middle network devices.
# For more information on using Red Hat Container Registries, please see
# the following:
# https://access.redhat.com/RegistryAuthentication
@robbmanes
robbmanes / unmount-watcher-ppc64le-rhel7.stp
Created January 21, 2022 13:35
PPC64LE unmount watcher systemtap for RHEL7
# unmount-watcher.stp
# Watches for filesystem unmounts and prints additional information about them.
# Authored by Robb Manes <[email protected]>
# Execute by running:
# stap unmount-watcher.stp > unmount-watcher.out
# In containerized environments, the unmounting process may belong to a different process namespace, so it's useful to print the
# entire tree to determine where it came from.
# This is borrowed from https://sourceware.org/systemtap/examples/network/connect_stat.stp
@robbmanes
robbmanes / shmem_test_tool.py
Created January 6, 2022 19:33
python3.8+ multiprocessing shared memory test tool
import sys
import time
def usage():
msg = '''
shmem_test_tool.py
==================
Utility for testing Python multiprocessing shared memory segments.
Note this is NOT the same as IPCS SHMEM segments in Linux/Unix.
@robbmanes
robbmanes / unmount-watcher.stp
Created November 30, 2021 13:32
Systemtap script to print details of `umount` system calls.
# unmount-watcher.stp
# Watches for filesystem unmounts and prints additional information about them.
# Authored by Robb Manes <[email protected]>
# Execute by running:
# stap unmount-watcher.stp > unmount-watcher.out
# In containerized environments, the unmounting process may belong to a different process namespace, so it's useful to print the
# entire tree to determine where it came from.
# This is borrowed from https://sourceware.org/systemtap/examples/network/connect_stat.stp
@robbmanes
robbmanes / Makefile
Created November 23, 2021 17:16
Example character device driver for generating large minor numbers
obj-m += bigdummy.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
@robbmanes
robbmanes / test-podman-api.sh
Created September 1, 2021 20:59
Simple script to test compatibility with podman API v2/Docker Engine API
#!/bin/bash
CONTAINER_NAME="nginx"
ENDPOINT="localhost:8080/v3.0.0"
function section {
echo ""
echo $1
printf -v UNDERLINE "%-${#1}s" '='
echo "${UNDERLINE// /=}"
}
@robbmanes
robbmanes / sigkill_tracer.stp
Created August 25, 2021 16:44
Trace sending and receiving of SIGKILL on Linux systems
#!/usr/bin/env stap
probe begin {
printf("Watching for signal(9) and reporting sender and receiver statuses...\n");
}
probe signal.syskill {
if(sig == 9) {
printf("[%s] SEND===> PID %d (%s) sent signal %d (%s) to PID %d (%s)\n",
ctime(gettimeofday_s()),
@robbmanes
robbmanes / iopl_test.c
Created August 17, 2021 18:49
iopl syscall test
#include <stdio.h>
#include <sys/io.h>
#include <errno.h>
#define LEVEL 3
int main(int argc, char **argv)
{
int rc;
rc = iopl(LEVEL);
@robbmanes
robbmanes / bigheader.conf
Created May 25, 2021 13:43
Useful Nginx Confs
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
@robbmanes
robbmanes / tcp_conn_blaster.py
Created March 17, 2021 16:24
Script that sets up a server to accept connections and a client to flood the server with connections.
import logging
import socket
import sys
import threading
import time
CLIENT_CONN_ADDR="127.0.0.1"
CLIENT_NUM_CONNS=10
SERVER_PORT=8888
SERVER_SYN_BACKLOG=128