Skip to content

Instantly share code, notes, and snippets.

View gist:05ff2585ba3329e2164ab856801d0e84
#/usr/local/bin/bash
#set -x
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
declare -a folders
@serkanh
serkanh / UserData script for setup CloudWatch
Last active Sep 21, 2020 — forked from martinzuern/UserData script for setup CloudWatch
With this user data script, you can set up cron job to put some custom metrics for CloudWatch at instance initiation.
View UserData script for setup CloudWatch
#!/bin/sh
yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA unzip
cd /home/ec2-user
curl http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip -O
unzip CloudWatchMonitoringScripts-1.2.1.zip
rm -rf CloudWatchMonitoringScripts-1.2.1.zip
chown ec2-user:ec2-user aws-scripts-mon
echo "* * * * * /home/ec2-user/aws-scripts-mon/mon-put-instance-data.pl --mem-util --swap-util --aggregated --auto-scaling --from-cron" >> /var/spool/cron/ec2-user
echo "0 * * * * /home/ec2-user/aws-scripts-mon/mon-put-instance-data.pl --disk-space-used --disk-space-avail --disk-space-util --disk-path=/ --aggregated --auto-scaling --from-cron" >> /var/spool/cron/ec2-user
View fastly-dynamic-vcl-snippet.sh
#!/bin/bash
if [ $# -lt 3 ]; then
echo "To update fastly dynamic vcls"
echo "----------------------------"
echo "https://docs.fastly.com/vcl/vcl-snippets/using-dynamic-vcl-snippets/"
echo "$0 <fastly-key> <service-number> <revision-number>"
exit 1
@serkanh
serkanh / gist:382bbf454a123214d02681294a1348ad
Last active Feb 27, 2019
search user owned repos excluding forks.
View gist:382bbf454a123214d02681294a1348ad
curl https://api.github.com/users/serkanh/repos\?per_page\=1000 | jq '.[] | select(.fork==false) | .html_url'
curl https://api.github.com/users/serkanh/repos\?per_page\=1000 | jq '.[] | select(.fork==false and .language=="JavaScript") | .html_url'
View gist:7493538801411503c2c79e3a6cf1523c
#!/bin/sh
#set -ox
#either pass slack token as a param or env var SLACK_TOKEN=${1:SLACK_TOKEN}
SLACK_TOKEN=${SLACK_TOKEN}
# Get the list of channels
# https://api.slack.com/methods/channels.list/test
View gist:754dba0d1e8d2e8021085ecfd2f54dc2
aws --profile=HA sns list-subscriptions \
--query 'Subscriptions[*]|[?contains(Protocol,`lambda`)==`false`]|[?contains(Endpoint,`bark`)==`true`]|[?contains(Endpoint,`stg`)==`true`]|[?contains(TopicArn,`d6cbe`)==`false`].{TopicArn:TopicArn}' --output text
View gist:e007fb7550492c5c1eff3a3bfdcf9416
#!/bin/bash
# https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html
amazon_ips=( $(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="AMAZON") | .ip_prefix') )
ec2_ips=( $(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | .ip_prefix') )
containsElement () {
local element match="$1"
shift
for element
do [[ "$element" == "$match" ]] && return 0; done
View gist:ba00aca868cc61cc2964754cfed1e2b8
const axios = require('axios');
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function fetch_retry(url,n){
@serkanh
serkanh / gist:3d61feded47b975da5f061c90591d0b9
Created Feb 27, 2018
sort ecr images by push date and get the latest
View gist:3d61feded47b975da5f061c90591d0b9
aws --profile=jumpstart ecr describe-images --repository-name lead-front-door \
--query 'sort_by(imageDetails,& imagePushedAt)[-1].imageTags[0]' --output text
View gist:a7b41f4c7625d821d02d477556890ff6
#!/bin/bash
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
yum install -y aws-cli
yum install epel-release
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/epel.repo
yum update -y
yum install -y gcc libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel mailcap automake openssl-devel git
git clone https://github.com/s3fs-fuse/s3fs-fuse
cd s3fs-fuse/
./autogen.sh