Archive for category Bash

Script to rotate the MySQL General Query Log

You want general query logging in, but don’t want to keep those pesky query log files around?

I generally setup the MySQL user and run this from cron.

Here’s my script to do so, here’s a gzip’d version, and here is a zipped version

 

#!/bin/bash
#setup a user in mysql with the RELOAD priviledge
#grant RELOAD on *.* to reloader@'localhost' identified by 'PASSWORD';
#flush privileges;

user="reloader"
password="PASSWORD"
LOG="${HOME}/mysqld/mysqld.log"
LOGARCHIVE="${HOME}/logarchive"
NEW_LOG="${LOGARCHIVE}/mysqld-`date +%F-%s`.log"
KEEP_MIN=15
MAX_LOAD="5.0"
RUNFILE="${HOME}/rotate-general-log.pid"

if [ -f ${RUNFILE} ]
 then
  echo "Runfile ${RUNFILE} exists, exiting at `date`"
  ${HOME}/bin/page.sh "Runfile ${RUNFILE} exists, exiting at `date`"
  exit 1
 else
  echo "$$" > ${RUNFILE}
fi

#if [ $(echo "`cut -f1 -d ' ' /proc/loadavg` < ${MAX_LOAD}" | bc) -eq 1 ];
if [ $(echo "`cut -f1 -d ' ' /proc/loadavg` < ${MAX_LOAD}" | bc) -eq 1 ];
 then
  echo "System load less than ${MAX_LOAD}, proceeding [DEBUG]"
else
  echo "log rotate delayed, due to system load > ${MAX_LOAD}"
  ${HOME}/bin/page.sh "log rotate delayed, due to system load > ${MAX_LOAD}"
  /bin/rm ${RUNFILE}
  exit 1
fi

MYSQLD_PID=`pgrep mysqld`

if [ ! "${MYSQLD_PID}" ]
 then
  echo "Mysqld is NOT running, paging and exiting at `date`"
  ${HOME}/bin/page.sh "NO MySQLD on `hostname` at `date`"
  /bin/rm ${RUNFILE}
  exit 1
else
  echo "Mysqld running at `date`, PID ${MYSQLD_PID}, continuing"
fi

if [ -d "${LOGARCHIVE}" ]
 then
  echo "Moving general log at `date`"
  /bin/mv ${LOG} ${NEW_LOG}
  touch ${LOG}
  chmod og-rwx ${LOG}
  echo "Flushing general log at `date`"
  mysqladmin -u ${user} -p --password="${password}" flush-logs
  echo "Done flushing general log at `date`"
  echo "Gzipping ${NEW_LOG} log at `date`"
  gzip ${NEW_LOG}
  echo "Done gzipping ${NEW_LOG} log at `date`"
  echo "Size is `du -sh ${LOGARCHIVE}` pre-clean"
  echo "Cleaning ${LOGARCHIVE}, deleting files older than ${KEEP_MIN} minutes at `date`"
  find ${LOGARCHIVE} -iname "*.gz" -mmin +${KEEP_MIN} -print -exec /bin/rm {} \;
  echo "Done cleaning ${LOGARCHIVE}, at `date`"
  echo "Size is `du -sh ${LOGARCHIVE}` post-clean"
else
 echo "Missing logarchive dir ${LOGARCHIVE}"
  ${HOME}/bin/page.sh "Missing logarchive dir ${LOGARCHIVE}"
 /bin/rm ${RUNFILE}
 exit 1
fi

/bin/rm ${RUNFILE}
echo "Done at `date`"

, , , , , , , ,

No Comments

I’m wondering if I should have my install script clone common Linux OS’s like Red Hat/CentOS and Debian/Ubuntu?

So, I have a script that can run from init. You configure it from a config file, set it to start on boot via normal init, and then you can run it on to snapshot your data to Amazon S3 anytime.

It supports directories/users/permissions as well as full MySQL dumps, only specific database MySQL dumps, and only specific table per database dump.

It goes both ways, run it with /etc/init.d/bluesun-setup.sh start and it deletes the local directories, and downloads all the updated ones from Amazon S3.

If you run it with /etc/init.d/bluesun-setup.sh updateS3 # it will push all the same configured files to Tar/GZ files on S3.

I need to polish it a bit more, but it’ll be free/open source here soon.

Any feedback is appreciated.

, , , , , , , ,

No Comments

Thinking about hosting a WordPress site on S3

I recently moved my Joomla backed consulting website completely to Amazon S3, and have been very happy with the results. I would like to do something similar for my personal blog site at jonzobrist.com, however I would like it to be more dynamic, or at least easily update-able.

For my Joomla site, I did a complete mirror to static html and then uploaded all of that to S3, in a bucket with the same name as the site’s (www.bluesun.net), and changed DNS to point to the CNAME for that bucket’s HTTP address. This involved running wget -r -k -E -p -U Mozilla http://www.bluesun.net, editing the files wget copied to all point at the right places for things like menus, etc, and then uploading the files to Amazon S3.

My goal here is to recreate that in a more automated way, so that I can have a main site that is dynamic, but most, if not all, of the content is served from a static repository on S3. The expected outcome I think will be to take a site that costs around $15-20/month and make it cost < $1 /month. And, if I get some huge surge of traffic, to handle the load gracefully, and scale into the many terabytes of serving up data affordably.

A few quick thoughts/notes;

First, if you don’t change permission on newly uploaded items on S3 they default to your default, which is usually no public access. However, if you upload a new version of a file, it keeps the permissions the previous version had.

Second, you cannot host a naked domain (in this case http://bluesun.net) on Amazon S3. This is more a limitation of the the standards that say you shouldn’t. It means that you need something to redirect your naked domain to your web server. A lot of people don’t do this at all, but I think it’s a good thing to do. I think the details of this limitation will actually come in handy in my hybrid dynamic/static WordPress site.

Third, it makes a lot of sense to compress objects, and setting the right headers on the object will, I believe, get S3 to automatically server it up in a way a browser can understand. Most of the things that make up web pages (HTML and javascript) are text based and compress very well. On the other side images used on the web are generally already very compressed.

Fourth, having a hybrid site means you will still have some dynamic objects and this will mean manually processing (or manually setting up automated processing) html files to separate dynamic from static content.

Fifth, I’m a huge fan of things like Google Analytics, which are hosted by Google, and only included in my site as a static snippet of code that pulls more code direct from their servers. I would love to have something similar for comments and other user generated content that messes up the static website paradigm. I think technologies like AJAX can really shine here.

Brief background, my site (jonzobrist.com) is a standard WordPress install, currently running on an EC2 Micro Instance running Ubuntu 10.04 with Apache/PHP/MySQL all running on one machine. It’s an EBS backed instance, and I snapshot the root volume. I don’t really make updates more than once or twice a week, and none of my content needs to be pushed live in any kind of urgent manner. That said, I use WP to Twitter to auto tweet new posts, so I need to be able to force an update, or handle not having new content on S3 gracefully. I don’t get a particularly large number of visitors, lately about 1,000 a month. My main motivation for doing this is to see if it can be done, so I can do it for other sites I support.

Here is a graphical representation of what I think it will look like when done.

Diagram of a static WordPress site on Amazon S3

Then I just need to push all the very static content to Cloud Front for CDN!

What do you think?

, , , , , , , , ,

No Comments

Delete lots of EC2 EBS volumes

Here is a quick script to delete lots of EBS volumes on Amazon EC2.

The output from something like

ec2-describe-instances i-6fc30f01 | grep ‘^BLOCKDEVICE’ | awk ‘{ print $3 }’ > delete-these-volumes.txt

Then run

./delete-volumes.sh delete-these-volumes.txt

Can be fed into this script (you may want to edit the file first, I accept no responsibility for you deleting your volumes, with or without my script.

Download the gzipped script here.

 

#!/bin/bash
if [ "${1}" ]
then
for V in `cat ${1}`
do
ec2-detach-volume ${V}
echo “Waiting for ${V} to detach”
while ! ec2-describe-volumes ${V} | grep -q available
do
echo -n “.”
sleep 1
done
ec2-delete-volume ${V}
echo “Volume ${V} deleted at `date`”
done
else
echo “Usage : ${0} filename”
echo “Where filename is a file with volumes to be deleted”
exit 1
fi

Example output from me deleting 60 real volumes:

time delete-volumes-list.sh i-6fc30f01.info.delvolumes
Client.IncorrectState: Volume ‘vol-3bab1d50′is in the ‘available’ state.
Waiting for vol-3bab1d50 to detach
VOLUME vol-3bab1d50
Volume vol-3bab1d50 deleted at Mon May 23 10:53:56 MDT 2011
ATTACHMENT vol-33ab1d58 i-6fc30f01 /dev/sdh2 detaching 2011-05-23T16:15:08+0000
Waiting for vol-33ab1d58 to detach
VOLUME vol-33ab1d58
Volume vol-33ab1d58 deleted at Mon May 23 10:54:08 MDT 2011
ATTACHMENT vol-07ab1d6c i-6fc30f01 /dev/sdh3 detaching 2011-05-23T16:15:08+0000
Waiting for vol-07ab1d6c to detach
VOLUME vol-07ab1d6c
Volume vol-07ab1d6c deleted at Mon May 23 10:54:21 MDT 2011
ATTACHMENT vol-17ab1d7c i-6fc30f01 /dev/sdh4 detaching 2011-05-23T16:15:08+0000
Waiting for vol-17ab1d7c to detach
VOLUME vol-17ab1d7c
Volume vol-17ab1d7c deleted at Mon May 23 10:54:33 MDT 2011
ATTACHMENT vol-f9ab1d92 i-6fc30f01 /dev/sdh5 detaching 2011-05-23T16:15:08+0000
Waiting for vol-f9ab1d92 to detach
VOLUME vol-f9ab1d92
Volume vol-f9ab1d92 deleted at Mon May 23 10:54:46 MDT 2011
ATTACHMENT vol-c1ab1daa i-6fc30f01 /dev/sdh6 detaching 2011-05-23T16:15:08+0000
Waiting for vol-c1ab1daa to detach
VOLUME vol-c1ab1daa
Volume vol-c1ab1daa deleted at Mon May 23 10:54:58 MDT 2011
ATTACHMENT vol-ddab1db6 i-6fc30f01 /dev/sdh7 detaching 2011-05-23T16:15:08+0000
Waiting for vol-ddab1db6 to detach
VOLUME vol-ddab1db6
Volume vol-ddab1db6 deleted at Mon May 23 10:55:12 MDT 2011
ATTACHMENT vol-a5ab1dce i-6fc30f01 /dev/sdh8 detaching 2011-05-23T16:15:08+0000
Waiting for vol-a5ab1dce to detach
VOLUME vol-a5ab1dce
Volume vol-a5ab1dce deleted at Mon May 23 10:55:24 MDT 2011
ATTACHMENT vol-8bab1de0 i-6fc30f01 /dev/sdh9 detaching 2011-05-23T16:15:08+0000
Waiting for vol-8bab1de0 to detach
VOLUME vol-8bab1de0
Volume vol-8bab1de0 deleted at Mon May 23 10:55:37 MDT 2011
ATTACHMENT vol-85ab1dee i-6fc30f01 /dev/sdh10 detaching 2011-05-23T16:15:08+0000
Waiting for vol-85ab1dee to detach
VOLUME vol-85ab1dee
Volume vol-85ab1dee deleted at Mon May 23 10:55:49 MDT 2011
ATTACHMENT vol-67a81e0c i-6fc30f01 /dev/sdh11 detaching 2011-05-23T16:15:08+0000
Waiting for vol-67a81e0c to detach
VOLUME vol-67a81e0c
Volume vol-67a81e0c deleted at Mon May 23 10:56:01 MDT 2011
ATTACHMENT vol-4da81e26 i-6fc30f01 /dev/sdh12 detaching 2011-05-23T16:15:08+0000
Waiting for vol-4da81e26 to detach
VOLUME vol-4da81e26
Volume vol-4da81e26 deleted at Mon May 23 10:56:17 MDT 2011
ATTACHMENT vol-57a81e3c i-6fc30f01 /dev/sdh13 detaching 2011-05-23T16:15:08+0000
Waiting for vol-57a81e3c to detach
VOLUME vol-57a81e3c
Volume vol-57a81e3c deleted at Mon May 23 10:56:29 MDT 2011
ATTACHMENT vol-1fa81e74 i-6fc30f01 /dev/sdh14 detaching 2011-05-23T16:15:08+0000
Waiting for vol-1fa81e74 to detach
VOLUME vol-1fa81e74
Volume vol-1fa81e74 deleted at Mon May 23 10:56:42 MDT 2011
ATTACHMENT vol-c9a81ea2 i-6fc30f01 /dev/sdi1 detaching 2011-05-23T16:15:08+0000
Waiting for vol-c9a81ea2 to detach
VOLUME vol-c9a81ea2
Volume vol-c9a81ea2 deleted at Mon May 23 10:56:54 MDT 2011
ATTACHMENT vol-afa81ec4 i-6fc30f01 /dev/sdi2 detaching 2011-05-23T16:15:08+0000
Waiting for vol-afa81ec4 to detach
VOLUME vol-afa81ec4
Volume vol-afa81ec4 deleted at Mon May 23 10:57:07 MDT 2011
ATTACHMENT vol-9fa81ef4 i-6fc30f01 /dev/sdi3 detaching 2011-05-23T16:15:08+0000
Waiting for vol-9fa81ef4 to detach
VOLUME vol-9fa81ef4
Volume vol-9fa81ef4 deleted at Mon May 23 10:57:20 MDT 2011
ATTACHMENT vol-6fa91f04 i-6fc30f01 /dev/sdi4 detaching 2011-05-23T16:15:08+0000
Waiting for vol-6fa91f04 to detach
VOLUME vol-6fa91f04
Volume vol-6fa91f04 deleted at Mon May 23 10:57:33 MDT 2011
ATTACHMENT vol-7da91f16 i-6fc30f01 /dev/sdi5 detaching 2011-05-23T16:15:08+0000
Waiting for vol-7da91f16 to detach
VOLUME vol-7da91f16
Volume vol-7da91f16 deleted at Mon May 23 10:57:45 MDT 2011
ATTACHMENT vol-4fa91f24 i-6fc30f01 /dev/sdi6 detaching 2011-05-23T16:15:08+0000
Waiting for vol-4fa91f24 to detach
VOLUME vol-4fa91f24
Volume vol-4fa91f24 deleted at Mon May 23 10:57:58 MDT 2011
ATTACHMENT vol-57a91f3c i-6fc30f01 /dev/sdi7 detaching 2011-05-23T16:15:08+0000
Waiting for vol-57a91f3c to detach
VOLUME vol-57a91f3c
Volume vol-57a91f3c deleted at Mon May 23 10:58:10 MDT 2011
ATTACHMENT vol-33a91f58 i-6fc30f01 /dev/sdi8 detaching 2011-05-23T16:15:08+0000
Waiting for vol-33a91f58 to detach
VOLUME vol-33a91f58
Volume vol-33a91f58 deleted at Mon May 23 10:58:24 MDT 2011
ATTACHMENT vol-07a91f6c i-6fc30f01 /dev/sdi9 detaching 2011-05-23T16:15:08+0000
Waiting for vol-07a91f6c to detach
VOLUME vol-07a91f6c
Volume vol-07a91f6c deleted at Mon May 23 10:58:36 MDT 2011
ATTACHMENT vol-fba91f90 i-6fc30f01 /dev/sdi10 detaching 2011-05-23T16:15:08+0000
Waiting for vol-fba91f90 to detach
VOLUME vol-fba91f90
Volume vol-fba91f90 deleted at Mon May 23 10:58:49 MDT 2011
ATTACHMENT vol-fda91f96 i-6fc30f01 /dev/sdi11 detaching 2011-05-23T16:15:08+0000
Waiting for vol-fda91f96 to detach
VOLUME vol-fda91f96
Volume vol-fda91f96 deleted at Mon May 23 10:59:01 MDT 2011
ATTACHMENT vol-c9a91fa2 i-6fc30f01 /dev/sdi12 detaching 2011-05-23T16:15:08+0000
Waiting for vol-c9a91fa2 to detach
VOLUME vol-c9a91fa2
Volume vol-c9a91fa2 deleted at Mon May 23 10:59:14 MDT 2011
ATTACHMENT vol-afa91fc4 i-6fc30f01 /dev/sdi13 detaching 2011-05-23T16:15:08+0000
Waiting for vol-afa91fc4 to detach
VOLUME vol-afa91fc4
Volume vol-afa91fc4 deleted at Mon May 23 10:59:27 MDT 2011
ATTACHMENT vol-bda91fd6 i-6fc30f01 /dev/sdi14 detaching 2011-05-23T16:15:08+0000
Waiting for vol-bda91fd6 to detach
VOLUME vol-bda91fd6
Volume vol-bda91fd6 deleted at Mon May 23 10:59:39 MDT 2011
ATTACHMENT vol-85a91fee i-6fc30f01 /dev/sdj1 detaching 2011-05-23T16:15:08+0000
Waiting for vol-85a91fee to detach
VOLUME vol-85a91fee
Volume vol-85a91fee deleted at Mon May 23 10:59:52 MDT 2011
ATTACHMENT vol-6d962006 i-6fc30f01 /dev/sdj2 detaching 2011-05-23T16:15:08+0000
Waiting for vol-6d962006 to detach
VOLUME vol-6d962006
Volume vol-6d962006 deleted at Mon May 23 11:00:05 MDT 2011
ATTACHMENT vol-7196201a i-6fc30f01 /dev/sdj3 detaching 2011-05-23T16:15:08+0000
Waiting for vol-7196201a to detach
VOLUME vol-7196201a
Volume vol-7196201a deleted at Mon May 23 11:00:17 MDT 2011
ATTACHMENT vol-59962032 i-6fc30f01 /dev/sdj4 detaching 2011-05-23T16:15:08+0000
Waiting for vol-59962032 to detach
VOLUME vol-59962032
Volume vol-59962032 deleted at Mon May 23 11:00:29 MDT 2011
ATTACHMENT vol-2196204a i-6fc30f01 /dev/sdj5 detaching 2011-05-23T16:15:08+0000
Waiting for vol-2196204a to detach
VOLUME vol-2196204a
Volume vol-2196204a deleted at Mon May 23 11:00:42 MDT 2011
ATTACHMENT vol-3596205e i-6fc30f01 /dev/sdj6 detaching 2011-05-23T16:15:08+0000
Waiting for vol-3596205e to detach
VOLUME vol-3596205e
Volume vol-3596205e deleted at Mon May 23 11:00:54 MDT 2011
ATTACHMENT vol-0796206c i-6fc30f01 /dev/sdj7 detaching 2011-05-23T16:15:08+0000
Waiting for vol-0796206c to detach
VOLUME vol-0796206c
Volume vol-0796206c deleted at Mon May 23 11:01:07 MDT 2011
ATTACHMENT vol-ed962086 i-6fc30f01 /dev/sdj8 detaching 2011-05-23T16:15:08+0000
Waiting for vol-ed962086 to detach
VOLUME vol-ed962086
Volume vol-ed962086 deleted at Mon May 23 11:01:19 MDT 2011
ATTACHMENT vol-ff962094 i-6fc30f01 /dev/sdj9 detaching 2011-05-23T16:15:08+0000
Waiting for vol-ff962094 to detach
VOLUME vol-ff962094
Volume vol-ff962094 deleted at Mon May 23 11:01:32 MDT 2011
ATTACHMENT vol-fd962096 i-6fc30f01 /dev/sdj10 detaching 2011-05-23T16:15:08+0000
Waiting for vol-fd962096 to detach
VOLUME vol-fd962096
Volume vol-fd962096 deleted at Mon May 23 11:01:45 MDT 2011
ATTACHMENT vol-d39620b8 i-6fc30f01 /dev/sdj11 detaching 2011-05-23T16:15:08+0000
Waiting for vol-d39620b8 to detach
VOLUME vol-d39620b8
Volume vol-d39620b8 deleted at Mon May 23 11:01:57 MDT 2011
ATTACHMENT vol-a59620ce i-6fc30f01 /dev/sdj12 detaching 2011-05-23T16:15:08+0000
Waiting for vol-a59620ce to detach
VOLUME vol-a59620ce
Volume vol-a59620ce deleted at Mon May 23 11:02:10 MDT 2011
ATTACHMENT vol-6f972104 i-6fc30f01 /dev/sdj13 detaching 2011-05-23T16:15:08+0000
Waiting for vol-6f972104 to detach
VOLUME vol-6f972104
Volume vol-6f972104 deleted at Mon May 23 11:02:23 MDT 2011
ATTACHMENT vol-5d972136 i-6fc30f01 /dev/sdj14 detaching 2011-05-23T16:15:08+0000
Waiting for vol-5d972136 to detach
VOLUME vol-5d972136
Volume vol-5d972136 deleted at Mon May 23 11:02:36 MDT 2011
ATTACHMENT vol-3b972150 i-6fc30f01 /dev/sdk1 detaching 2011-05-23T16:15:08+0000
Waiting for vol-3b972150 to detach
VOLUME vol-3b972150
Volume vol-3b972150 deleted at Mon May 23 11:02:48 MDT 2011
ATTACHMENT vol-3797215c i-6fc30f01 /dev/sdk2 detaching 2011-05-23T16:15:08+0000
Waiting for vol-3797215c to detach
VOLUME vol-3797215c
Volume vol-3797215c deleted at Mon May 23 11:03:01 MDT 2011
ATTACHMENT vol-1d972176 i-6fc30f01 /dev/sdk3 detaching 2011-05-23T16:15:08+0000
Waiting for vol-1d972176 to detach
VOLUME vol-1d972176
Volume vol-1d972176 deleted at Mon May 23 11:03:13 MDT 2011
ATTACHMENT vol-ef972184 i-6fc30f01 /dev/sdk4 detaching 2011-05-23T16:15:08+0000
Waiting for vol-ef972184 to detach
VOLUME vol-ef972184
Volume vol-ef972184 deleted at Mon May 23 11:03:26 MDT 2011
ATTACHMENT vol-fd972196 i-6fc30f01 /dev/sdk5 detaching 2011-05-23T16:15:08+0000
Waiting for vol-fd972196 to detach
VOLUME vol-fd972196
Volume vol-fd972196 deleted at Mon May 23 11:03:38 MDT 2011
ATTACHMENT vol-c19721aa i-6fc30f01 /dev/sdk6 detaching 2011-05-23T16:15:08+0000
Waiting for vol-c19721aa to detach
VOLUME vol-c19721aa
Volume vol-c19721aa deleted at Mon May 23 11:03:51 MDT 2011
ATTACHMENT vol-af9721c4 i-6fc30f01 /dev/sdk7 detaching 2011-05-23T16:15:08+0000
Waiting for vol-af9721c4 to detach
VOLUME vol-af9721c4
Volume vol-af9721c4 deleted at Mon May 23 11:04:03 MDT 2011
ATTACHMENT vol-a59721ce i-6fc30f01 /dev/sdk8 detaching 2011-05-23T16:15:08+0000
Waiting for vol-a59721ce to detach
VOLUME vol-a59721ce
Volume vol-a59721ce deleted at Mon May 23 11:04:16 MDT 2011
ATTACHMENT vol-8d9721e6 i-6fc30f01 /dev/sdk9 detaching 2011-05-23T16:15:08+0000
Waiting for vol-8d9721e6 to detach
VOLUME vol-8d9721e6
Volume vol-8d9721e6 deleted at Mon May 23 11:04:28 MDT 2011
ATTACHMENT vol-9d9721f6 i-6fc30f01 /dev/sdk10 detaching 2011-05-23T16:15:08+0000
Waiting for vol-9d9721f6 to detach
VOLUME vol-9d9721f6
Volume vol-9d9721f6 deleted at Mon May 23 11:04:41 MDT 2011
ATTACHMENT vol-33942258 i-6fc30f01 /dev/sdk11 detaching 2011-05-23T16:15:08+0000
Waiting for vol-33942258 to detach
VOLUME vol-33942258
Volume vol-33942258 deleted at Mon May 23 11:04:53 MDT 2011
ATTACHMENT vol-1794227c i-6fc30f01 /dev/sdk12 detaching 2011-05-23T16:15:08+0000
Waiting for vol-1794227c to detach
VOLUME vol-1794227c
Volume vol-1794227c deleted at Mon May 23 11:05:06 MDT 2011
ATTACHMENT vol-fb942290 i-6fc30f01 /dev/sdk13 detaching 2011-05-23T16:15:08+0000
Waiting for vol-fb942290 to detach
VOLUME vol-fb942290
Volume vol-fb942290 deleted at Mon May 23 11:05:19 MDT 2011
ATTACHMENT vol-d99422b2 i-6fc30f01 /dev/sdk14 detaching 2011-05-23T16:15:08+0000
Waiting for vol-d99422b2 to detach
VOLUME vol-d99422b2
Volume vol-d99422b2 deleted at Mon May 23 11:05:31 MDT 2011
ATTACHMENT vol-839422e8 i-6fc30f01 /dev/sdl1 detaching 2011-05-23T16:15:08+0000
Waiting for vol-839422e8 to detach
VOLUME vol-839422e8
Volume vol-839422e8 deleted at Mon May 23 11:05:44 MDT 2011
ATTACHMENT vol-9d9422f6 i-6fc30f01 /dev/sdl2 detaching 2011-05-23T16:15:08+0000
Waiting for vol-9d9422f6 to detach
VOLUME vol-9d9422f6
Volume vol-9d9422f6 deleted at Mon May 23 11:05:56 MDT 2011
ATTACHMENT vol-6595230e i-6fc30f01 /dev/sdl3 detaching 2011-05-23T16:15:08+0000
Waiting for vol-6595230e to detach
VOLUME vol-6595230e
Volume vol-6595230e deleted at Mon May 23 11:06:10 MDT 2011
ATTACHMENT vol-7d952316 i-6fc30f01 /dev/sdl4 detaching 2011-05-23T16:15:08+0000
Waiting for vol-7d952316 to detach
VOLUME vol-7d952316
Volume vol-7d952316 deleted at Mon May 23 11:06:22 MDT 2011
real 12m38.753s
user 18m46.140s
sys 0m38.000s

, , , , , , ,

1 Comment

My EC2 EBS RAID-0 creation script

I want to write up a full howto/tutorial, but have not had the time.

Here is the script that I referred to in my post at http://jonzobrist.com/2011/04/16/ec2-raid0-on-linux-with-ebs-volumes-notes/

This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License HERE for more details.

http://jonzobrist.com/files/setup-ec2-raid-0.zip

http://jonzobrist.com/files/setup-ec2-raid-0.sh.gz

This script needs an AWS command line setup, and may need some minor tweaking if you’re not running a Ubuntu server.

Ubuntu’s latest AMI’s are available for 10.04 here.

Please feel free to submit patches, comments, or questions.

Thanks to everyone whose helpful posts online and in the AWS forums helped me with this script. I could not have done it with out your generous sharing of work.

Enjoy!

 

, , , , , , , , , , ,

No Comments

S3-du.sh script to get bucket size on Amazon AWS S3

AWSHere is my script s3-du.sh that I wrote to determine how big a bucket is on Amazon S3. I’m sure there are other ways to skin this cat, but I wrote this and figured I’d share it. Feel free to use it under any free license.

Requires you to have a working s3ls and your Amazon AWS credentials setup already. I use Tim Kays AWS tools.

Links to the file as text, as gzip, as zip.


#!/bin/bash

if [ "${1}" ]
then
NUM=0
COUNT=0
for N in `s3ls ${1} | awk ‘{print $11}’ | grep [0-9]`
do
NUM=`expr $NUM + $N`
((COUNT++))
done
KB=`expr ${NUM} / 1024`
MB=`expr ${NUM} / 1048576`
GB=`expr ${NUM} / 1073741824`
echo “${COUNT} files in bucket ${1}”
echo “${NUM} B”
echo “${KB} KB”
echo “${MB} MB”
echo “${GB} GB”
else
echo “Usage : ${0} s3-bucket”
exit 1
fi

, , , , , ,

No Comments

LCOD – 11.17.09 – Simple page/alert email script

Here’s a quick page script for *nix boxes with mail.
I grabbed the mail / file redirect from

http://theos.in/shell-scripting/send-mail-bash-script/


#!/bin/bash
#Author : dougnaka@gmail.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it
#Description : Quick alert/page script, edit EMAIL="" to include a comma separated list of emails to send to
#Usage : page.sh "Short or long message"
if [ "${1}" ]
then
SUBJECT="[ALERT] ${1}"
EMAIL=" someone@example.com"
EMAILMESSAGE="/tmp/`date +%s`-message"
echo "ALERT: at `date`" > ${EMAILMESSAGE}
echo "${1}" >> ${EMAILMESSAGE}
echo "From `hostname`" >> ${EMAILMESSAGE}
mail -s "${SUBJECT}" "${EMAIL}" < ${EMAILMESSAGE}
/bin/rm ${EMAILMESSAGE}
else
echo "Usage: ${0} MESSAGE"
exit 1
fi

, , , ,

No Comments

LCOD 11.14.07 – Quick RAID check script for cron

This is a quick script that will let you run the new raid checks, or repair, or pause a running raid check. It doesn’t do e-mails or anything, and from what I read on this thread it’s something mdadm needs to be set to watch for. I ran the check on a RAID and received no output, so I guess it was ok?

I will update the script as I find out more. I’d like to add a simple escalation from check to rebuild? (I think it does this anyways), and an e-mail status report, or even a syslog call saying I ran all things look good.


#!/bin/bash
###############
# Quick script to use raid functionality
# Author : Jon Zobrist < jon@bluesun.netThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it >
# http://www.bluesun.net/
# License : LGPL
# Version : 1.0
# Date : 11.14.07
# install/notes:
# put it somewhere, /root/bin/ is where I prefer
# put this in your root crontab to run from cron monthly
# @monthly /root/bin/checkraids check > /root/logs/cron.log 2>&1
###############

case "$1" in
check)
for raid in /sys/block/md*/md/sync_action
do
echo check > $raid
done
;;

repair)
for raid in /sys/block/md*/md/sync_action
do
echo repair > $raid
done
;;

pause)
for raid in /sys/block/md*/md/sync_action
do
echo idle > $raid
done
;;

status)
for raid in /sys/block/md*/md/sync_action
do
echo "******************************"
echo $raid `cat $raid`
echo ""
done
;;

*)
echo "Usage : $0 check|repair|pause|status"
;;
esac

, , , , , ,

No Comments

Easy AdSense by Unreal