Skip to content

Instantly share code, notes, and snippets.

View JCotton1123's full-sized avatar

Jesse Cotton JCotton1123

View GitHub Profile
@JCotton1123
JCotton1123 / Jenkinsfile
Last active February 22, 2024 09:11
Sample Jenkinsfile for Python project
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '10')) // Retain history on the last 10 builds
ansiColor('xterm') // Enable colors in terminal
timestamps() // Append timestamps to each line
timeout(time: 20, unit: 'MINUTES') // Set a timeout on the total execution time of the job
}
agent {
// Run this job within a Docker container built using Dockerfile.build
// contained within your projects repository. This image should include
@JCotton1123
JCotton1123 / parse-slow-log.sh
Last active May 5, 2023 13:13
Parse php-fpm slow log
## Slow requests grouped by function call
cat /var/log/php-fpm/www-slow.log | grep -A 1 script_filename | \
grep -v script_filename | grep -v -e "--" | cut -c 22- | sort | uniq -c | sort -nr
## Slow requests grouped by minute
cat /var/log/php-fpm/www-slow.log | grep 'pool www' | \
cut -d' ' -f2 | sort | cut -d: -f1,2 | uniq -c
## Top 25 1 minute groups of slow requests
cat /var/log/php-fpm/www-slow.log | grep 'pool www' | cut -d' ' -f2 | \
@JCotton1123
JCotton1123 / fetchenv.sh
Created June 9, 2016 20:38
Export env variables for each AWS CloudFormation stack output
#!/bin/bash
# This script will find all AWS CloudFormation stacks matching the supplied filter
# and export the outputs into environment variables.
#
# This script is assumed to be run on a host with an IAM profile matching the following:
#
# {
# "Version": "2012-10-17",
# "Statement": [
@JCotton1123
JCotton1123 / export.sh
Last active March 15, 2023 21:36
AWS Export IP Addresses
# Export IP addresses to support vulnerability scanning
# Public IPs
touch /tmp/public-ips.txt
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].PublicIpAddress" \
--output=text \
>>/tmp/public-ips.txt
@JCotton1123
JCotton1123 / imap-sync-gmail.sh
Last active March 5, 2023 18:25
Sync mail to gmail
#!/usr/local/bin/bash
#Remember to set
#export MAIL_SYNC_SRC=
user1=$1
user2=$2
passwd_file=$3
imapsync --host1 $MAIL_SYNC_SRC --user1 "$user1" --passfile1 "$passwd_file" --ssl1 --port1 993\
@JCotton1123
JCotton1123 / simplerelay.py
Last active September 2, 2022 00:11
Start of simple SMTP relay service in Python
#!/usr/bin/env python
import os
import re
import daemon
import asyncore
import smtpd
class SimpleRelayService(smtpd.PureProxy):
"""Handles processing mail for relay"""
@JCotton1123
JCotton1123 / stocktwits-message-scraper.js
Created August 16, 2020 20:59
Stocktwits Message Scraper using Headless Browser
const puppeteer = require('puppeteer');
const debug = process.env.DEBUG == 'true';
const url = 'https://stocktwits.com/mrinvestorpro';
const main = async () => {
const browser = await puppeteer.launch({ headless: !debug });
try {
console.log('Launching page');
@JCotton1123
JCotton1123 / export-puppet-classification-data.rb
Created June 14, 2020 19:08
Puppet Enterprise Node Group (Classification) data export
#!/usr/bin/env ruby
# Export node group data from Puppet Enterprise
# Setup:
# export PATH=$PATH:/opt/puppetlabs/puppet/bin
# gem install --user-install puppetclassify
# puppet-access login --lifetime 8h
require 'csv'
@JCotton1123
JCotton1123 / foreman-uninstall.sh
Last active June 10, 2020 04:49
Uninstall Foreman RHEL
#!/bin/sh
service xinetd stop
service foreman-proxy stop
service httpd stop
killall -9 sidekiq
service puppet stop
service puppetserver stop
service postgresql stop
service rh-redis5-redis stop
@JCotton1123
JCotton1123 / main.go
Created March 4, 2020 18:07
CloudTrail Log Decompression Lambda
package main
import (
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
"github.com/pkg/errors"