$ ruby ./instance_to_elb.rb
The output is a JSON containing the mapping of LB->instances as well as Instance->LBs.
$ php crap.php | |
<?php | |
if (!defined('frmDs')){ | |
define('frmDs' ,1); | |
error_reporting(0); | |
function frm_dl ($url) { | |
if (function_exists('curl_init')) { | |
$ch = curl_init($url); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
root@ip-10-14-10-142:~# export INSTANCE_ID=`ec2metadata --instance-id` | |
root@ip-10-14-10-142:~# HOSTNAME=`aws ec2 describe-tags --region us-east-1 --filter "Name=resource-id,Values=$INSTANCE_ID" 'Name=key,Values=Name' | perl -ne 'chomp; my @a = split(/[ ]+/); next unless $a[1] eq "\"Value\":"; $a[2] =~ s/\"([\d\w\.\-]+)\".+/$1/; print "$a[2]\n"'` | |
root@ip-10-14-10-142:~# hostname $HOSTNAME | |
root@ip-10-14-10-142:~# echo $HOSTNAME | |
www.example.com | |
root@ip-10-14-10-142:~# echo $HOSTNAME > /etc/hostname |
#!/usr/bin/perl | |
# | |
use strict; | |
use warnings; | |
#use MP3::M3U::Parser; | |
use MP3::Tag; | |
use Data::Dumper; | |
use File::Copy; |
#!/usr/local/bin/perl | |
use strict; | |
my $date_regex = qr/^\[(\w{3}) (\w{3}) (\d{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})\]/; | |
my $guild_msg = qr/(\w+) tells the guild, '([^']+)'/; | |
my $channel_msg = qr/(\w+) tell(?:s?) ([\w]+):(?:\d+), '([^']+)'/; | |
my $raid_msg = qr/(\w+) tells the raid, '([^']+)'/; |
Get list of instances in the VPC:
[evan@Evan ~] $ aws ec2 describe-instances --filter Name=vpc-id,Values=vpc-id | jq '[.Reservations[] | .Instances[] | .InstanceId ] | join(",")'
Get the list of volumes attached to those instances:
[evan@Evan ~] $ aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=i-abcd,i-abce,i-abcf,i-abcg
Paste result into this command:
It's a script that renames all your EBS volumes to the name+device of the EC2 instance they're attached to. It also applies the "environment" tag to each volume, read from the instance. (I use the 'environment' tag in billing reports.)
So if your instance's "Name" tag is backend-1234.prod.example.com and the volume is mapped to /dev/sdh, this script would apply the tag Name=backend-1234-prod-example-com-dev-sdh
to the volume, and set the environment tag to match the instance's.
#/bin/bash | |
# To audit, I tried the bash script here https://gist.github.com/aastaneh/46ceb03150e5284b8a3a but it didn't work, | |
# so here's my version. It doesn't attempt to check internal ELBs (prefixed with 'internal'). | |
for ELB in $( aws elb describe-load-balancers | grep DNSName | awk '{ print $2 }' | perl -ne 'chomp; $_ =~ /\"([\w-\.]+)\",/; my $elb = $1; print "$elb " unless $elb =~ /^internal/'); do | |
echo "$ELB "; | |
echo "01 logout" | openssl s_client -ssl3 -connect $ELB:443 2>&1 | grep DONE &> /dev/null | |
if [[ "$?" -ne "1" ]]; then | |
echo FAIL | |
else |
# Change YOUR_TOKEN to your prerender token and uncomment that line if you want to cache urls and view crawl stats | |
# Change example.com (server_name) to your website url | |
# Change /path/to/your/root to the correct value | |
server { | |
listen 80; | |
server_name example.com; | |
root /path/to/your/root; | |
index index.html; |
#!/usr/local/Cellar/ruby/2.1.5/bin/ruby | |
# | |
# | |
require 'fileutils' | |
base_dir = ARGV[0] | |
target_dir = ARGV[1] | |
movies = Dir.glob([base_dir, '**','*.mov'].join('/')) |