Skip to content

Instantly share code, notes, and snippets.

View mikeadmire's full-sized avatar

Mike Admire mikeadmire

View GitHub Profile
@mikeadmire
mikeadmire / MailFile.rb
Last active December 23, 2015 21:49
Send email using remote server with Ruby. `gem install mail`
require 'mail'
module MailFile
def email_it
options = { address: "email.server.example.com" }
Mail.defaults { delivery_method :smtp, options }
Mail.deliver do
from 'whoami@example.com'
to ['user1@example.com', 'user2@example.com']
subject 'Here is an awesome email for you'
@mikeadmire
mikeadmire / random_password.rb
Created September 25, 2013 13:15
Generate a random password hash
def random_password(size = 10)
chars = (('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a) - %w(i o 0 1 l 0 I O)
(1..size).collect{ |a| chars[rand(chars.size)] }.join
end
@mikeadmire
mikeadmire / table_backup.rb
Last active December 29, 2015 03:29
Dump tables from MySQL database and keep a running archive on S3.
#!/usr/bin/env ruby
require 'fileutils'
#----- Modify this block for environment -----#
# Set mysql_params to the username and password params for the environment.
# mysql_params = "-u root -psecret"
mysql_params = "-u root"
# Length of time in days to keep files
@mikeadmire
mikeadmire / s3_glacier_restore.rb
Created November 6, 2014 19:25
Read a list of files from a text file and use the ruby AWS SDK to restore them from Glacier storage.
#!/usr/bin/env ruby
require 'aws-sdk'
require 'logger'
s3 = AWS::S3.new(
access_key_id: '<ACCESS KEY>',
secret_access_key: '<SECRET KEY>'
)
logger = Logger.new('./s3_restores.log')
@mikeadmire
mikeadmire / rds_slave_skip_errors.rb
Created June 1, 2016 02:05
Script to run against RDS slave to skip 1045 errors and restart replication if it stops.
#!/usr/bin/env ruby
require 'mysql2'
while 1
client = Mysql2::Client.new(
host: "",
username: "",
password: "")
slave_status = client.query("show slave status;")