Skip to content

Instantly share code, notes, and snippets.

View abdallah's full-sized avatar
🏠
Working from home

Abdallah Deeb abdallah

🏠
Working from home
View GitHub Profile
#!/bin/bash
######## Source ################################################################
#
# enhanced version of https://github.com/qoomon/aws-ssm-ec2-proxy-command
#
######## Usage #################################################################
# https://github.com/qoomon/aws-ssm-ec2-proxy-command/blob/master/README.md
#
# Install Proxy Command
# - Move this script to ~/.ssh/aws-ssm-ec2-proxy-command.sh
@abdallah
abdallah / on_asp_change.sh
Last active October 22, 2024 08:29
Zsh hook to check AWS account on profile change
# Add to ~/.zshrc
# https://github.com/rothgar/mastering-zsh/blob/master/docs/config/hooks.md
# precmd is executed before your prompt is displayed and is often used to set values in your $PROMPT. preexec is executed between when you press enter on a command prompt but before the command is executed
precmd() {
if [[ $CURRENT_PROFILE != "$AWS_PROFILE" ]]; then
echo changed, checking sts;
export CURRENT_PROFILE=$AWS_PROFILE;
if ! aws sts get-caller-identity; then
aws sso login
@abdallah
abdallah / update_newrelic_whitelist.py
Created March 13, 2020 09:58
Lambda function to update whitelist with newrelic IPs
import os
import json
import boto3
import urllib3
# Set the following in the Lambda Environment variables
IP_SET_ID = os.environ.get('IP_SET_ID')
Special_IPs = os.environ.get('SPECIAL_IPS').split(',')
@abdallah
abdallah / create-acm-cert.yml
Created March 11, 2020 07:54
Create an Amazon issued certificate in ACM. Uses Route53 for DNS verification
- hosts: localhost
gather_facts: no
vars:
aws_profile: "aws_account_name"
acm_domain: "example.com"
acm_extra_domains: "*.example.com"
acm_idempotency_token: "examplecomtoken"
dns_zone: "example.com"
environment:
AWS_PROFILE: "{{ aws_profile }}"
@abdallah
abdallah / ses-sns-sqs-to-graylog.py
Created March 8, 2018 14:08
Send SNS notifications to Graylog2
import boto3
import json
import requests
from datetime import datetime
import sys
HOST = 'MY.HOST.ADDRESS'
PORT = 12201 # change if you create graylog input with different port
queue_url = 'https://sqs.ZONE.amazonaws.com/ACCOUNT/QUEUENAME'
@abdallah
abdallah / log_high_cpu.sh
Created February 28, 2018 11:39
Log PID and path of process causing high CPU usage (php-fpm)
#!/bin/bash
# very specific need
top_process=$(ps -eo pid,cmd,%cpu --sort=-%cpu | head -n2 | tail -n1)
if [[ $top_process == *sometest* ]]; then
PATHTOPROCESS=$(echo $top_process| awk '{print $1}' | xargs lsof -p | grep public_html)
logger -it HIGHCPU "Process $top_process in $PATHTOPROCESS"
fi
@abdallah
abdallah / install_nr_infra.yml
Created November 30, 2016 15:53
Install New Relic Infrastructure agent on all my servers using Ansible playbook (Ubuntu)
---
- hosts: all
tasks:
- lineinfile: "dest=/etc/newrelic-infra.yml line='license_key: YOURKEYHERE' create=yes state=present"
- apt_key:
state=present
url=https://download.newrelic.com/infrastructure_agent/gpg/newrelic-infra.gpg
- apt_repository: "repo='deb [arch=amd64] http://download.newrelic.com/infrastructure_agent/linux/apt {{ansible_distribution_release}} main' state=present update_cache=yes"
- apt: name=newrelic-infra
@abdallah
abdallah / plugin.php
Created February 10, 2016 08:33
WordPress ajax skeleton
<?php
/*
Plugin Name: My Plugin
Plugin URI: https://deeb.me
Description: 10 ways to peel an orange
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
@abdallah
abdallah / other_languages_switcher.php
Last active September 9, 2015 11:04
WPML custom switcher to show "other" languages
<?php
function other_languages_switcher(){
$languages = icl_get_languages('skip_missing=1');
foreach($languages as $l){
if(!$l['active']) {
$langs[] = '<a href="'.$l['url'].'">'.$l['language_code'].'</a>';
}
}
echo join(', ', $langs);
}
@abdallah
abdallah / 00monit
Last active August 29, 2015 14:18
Monit configurations
files in /etc/monit/conf.d/