Skip to content

Instantly share code, notes, and snippets.


Michael Endsley miend

View GitHub Profile
miend /
Last active Aug 29, 2015
Git rebase from origin shortcut
# Git rebase origin/["your checked out branch"]
function git_rebase_from_origin() {
git rebase origin/$(git rev-parse --symbolic-full-name --abbrev-ref HEAD)
alias 'gitrbo'='git_rebase_from_origin'
View token-regex
var = ""
r = /private-(.+)\//i
# should return:
# => "dw1938f3hf783h2g240o35o"
miend /
Created Nov 4, 2011
pure bash find and replace
for file in $(find DIRECTORY -name FILENAME)
sed -e "s/KEYWORD/REPLACEMENT/ig" $file > /tmp/tempfile.tmp
mv /tmp/tempfile.tmp $file
miend /
Created Nov 4, 2011
full mysql backups with push to s3
# Dumps all MySQL databases, each to its own file, rotates out old backups.
# set correct dates
NOWDATE=`date +%Y-%m-%d`
LASTDATE=$(date +%Y-%m-%d --date='1 week ago')
# dump each database to its own sql file
for DB in $(echo 'show databases' | mysql -hhostname -uuser -password=password --batch -N)
miend /
Created Apr 23, 2012
Tracking connected IPs
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more
# Take a look at the top IP addresses. If any stand out from the others, those would be the ones to firewall.
netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more
# This will look at the currently active connections to see if there are any IPs connecting to port 80. You might need to alter the cut -c 45- as the IP address may not start at column 45. If someone was doing a UDP flood to your webserver, this would pick it up as well.
#On the off chance that neither of these show any IPs that are excessively out of the norm, you would need to assume that you have a botnet attacking you and would need to look for particular patterns in the logs to see what they are doing. A common attack against wordpress sites is:
GET /index.php? HTTP/1.0
#If you look through the access logs for your website, you might be able to do something like:
miend / mime.types
Created Sep 14, 2012 — forked from joshkraemer/mime.types
Nginx Configuration Optimized for Unicorn Rails Apps
View mime.types
# /etc/nginx/mime.types
# Global Nginx mime.types file
types {
text/html html htm shtml;
text/css css;
text/xml xml rss;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
miend / unicorn
Created Sep 14, 2012 — forked from joshkraemer/unicorn
Unicorn init.d script
View unicorn
# Provides: unicorn
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: unicorn initscript
# Description: unicorn
miend / .bash_profile
Created Sep 14, 2012 — forked from joshkraemer/.bash_profile
AWS Local Machine Bash Configuration
View .bash_profile
# Load Amazon EC2 API tools
source ~/.ec2/
miend / rotation.bash
Created Sep 14, 2012
Better, simpler rotation script
View rotation.bash
# Find files in a path older than X days (represented by +X), execute removal.
# removes files older than 1 week
find /path/to/files/* -mtime +7 -exec rm {} \;
miend /
Last active Oct 10, 2015 — forked from joshkraemer/
Useful Terminal Commands
# Start an application in the background (leaving terminal free for other use once it starts)
application-name [whatever options] &
# No really, just put & on the end of it. Trust me.
# Recursively find all files named config and replace a string using sed. The -i flag requires a blank suffix '' to work on Mac.
find . -name config -type f -print | xargs sed -i '' 's/'
# Recursively find all files with a certain file extension and replace a string using perl.
find . -name "*.fileext" -print | xargs perl -i -p -e 's/STRINGTOFIND/STRINGTOREPLACE/g'
You can’t perform that action at this time.