Skip to content

Instantly share code, notes, and snippets.

View miend's full-sized avatar

Michael Endsley miend

  • Wisetack
  • Nomadic
View GitHub Profile
@miend
miend / rotation.bash
Created September 14, 2012 16:21
Better, simpler rotation script
#!/bin/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
miend / clearnetwork_all.bash
Created September 14, 2012 16:09
Flush DNS cache, release and renew network IP address
#!/bin/bash
#if OSX
sudo dscacheutil -flushcache
sudo ipconfig set en0 BOOTP
sudo ipconfig set en0 DHCP
sudo ipconfig set en1 BOOTP
sudo ipconfig set en1 DHCP
@miend
miend / .bash_profile
Created September 14, 2012 16:05 — forked from joshkraemer/.bash_profile
AWS Local Machine Bash Configuration
# Load Amazon EC2 API tools
source ~/.ec2/setup_env.sh
@miend
miend / useful-terminal.sh
Last active October 10, 2015 17:07 — forked from joshkraemer/useful-terminal.sh
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/git@github.com:CollegePlus/git@github.com:collegeplus/g'
# 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'
@miend
miend / unicorn
Created September 14, 2012 15:59 — forked from joshkraemer/unicorn
Unicorn init.d script
#!/bin/sh
### BEGIN INIT INFO
# 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
### END INIT INFO
@miend
miend / mime.types
Created September 14, 2012 15:57 — forked from joshkraemer/mime.types
Nginx Configuration Optimized for Unicorn Rails Apps
# /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
miend / tracking.sh
Created April 23, 2012 14:53
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
miend / db-backup.sh
Created November 4, 2011 20:41
full mysql backups with push to s3
#!/bin/sh
# 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
miend / findreplace.sh
Created November 4, 2011 16:42
pure bash find and replace
#!/bin/sh
for file in $(find DIRECTORY -name FILENAME)
do
sed -e "s/KEYWORD/REPLACEMENT/ig" $file > /tmp/tempfile.tmp
mv /tmp/tempfile.tmp $file
done
var = "google.com/randomtext/private-dw1938f3hf783h2g240o35o/basic"
r = /private-(.+)\//i
var.match(r)[1]
# should return:
# => "dw1938f3hf783h2g240o35o"