RSS



Linux Basics – How to use Cron to automate just about anything including backups

Mon, Oct 23, 2006

ArsGeek, Linux, Tech@life, Ubuntu

Talk about it in our Forums

<meta content="OpenOffice.org 2.0 (Linux)" name="GENERATOR" /><meta content="ben" name="AUTHOR" /><meta content="20061023;7142500" name="CREATED" /><meta content="ben" name="CHANGEDBY" /><meta content="20061023;10084800" name="CHANGED" /><img width="124" height="124" align="top" title="Let me check my schedule" alt="Let me check my schedule" src="http://www.theteacherplace.com/Assets/clipart/schedule.gif" /><br /> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in } --> </style> <p style="margin-bottom: 0in">Cron is one of those little programs that can change the world. It’s a scheduling progam, meaning that you can give it instructions such as ‘at 10:45am on every Monday run this program’ and it will faithfully wait until the appointed time to do what you asked it.</p> <p style="margin-bottom: 0in">Why is this useful? Cron can be used to automate tasks such as backups, the running of hourly, daily weekly monthly or yearly reports, and just about anything else you can think of. This will be a basic guide to using cron. Specifically, to run the backups we <a target="_blank" href="http://www.arsgeek.com/?p=637">discussed earlier</a>.</p> <p style="margin-bottom: 0in"><!--digg--></p> <p style="margin-bottom: 0in"><span id="more-652"></span></p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">In it’s basic form, Cron is told to do things by text files called crontabs, which are located in <em>/var/spool/cron/crontabs</em>. When Cron is launched (and every minute after that) it checks this directory for crontabs, and loads these into memory for execution at the appropriate time. If any single crontab shows a modified timestamp been modified, it checks them all to be sure nothing else has changed.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Editing a crontab is fairly easy. If you’re used to <em>Nano</em>, you can simply type:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">crontab -e</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">If you’re more comfortable with a GUI editor like <em>Gedit</em>, you can type:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">EDITOR=gedit crontab -e</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Here’s where an important distinction needs to be made. Each user can have their own Crontab, including root. If you want or need to run something with root privilages, it’s a good idea to do the following:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">EDITOR=gedit sudo crontab -e</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">If you have elevated privileges, you can also tweak other user’s crontabs by using the <em>-u switch</em>. Another way to modify root’s crontab would be to run:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">EDITOR=gedit sudo crontab -e -u root</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Crontab has several switches which are good to know right away. <em>-e= edit, -u= user, -l= list, and -r= remove</em>.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Being a scheduling tool, cron has to know what your schedule is going to be be. Cron determines when it’s going to run things by a series of entries that correspond to various times, days of the weeks and months. You’ll see abbreviations for these when you edit your crontab. They are as follows:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">#m h dom mon dow command</p> </blockquote> <p style="margin-bottom: 0in">That’s shorthand for Minute, Hour, Day Of Month, Month, Day of Week and then then Command you want cron to run. The ‘*’ (asterisk) stands for any time, and entering a number tells cron exactly when to do something. Cron uses a 24 hour clock. So, if I wanted to run the command foobar at 1pm every day of the week, this is what I’d tell cron:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">0 13 * * * /home/username/foobar</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">That means Any minute, hour 13 (1pm on the 24 hour clock) any day of the month, any month, any day of the week run foobar located at <em>/home/username/</em></p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">It can take a bit to wrap your head around this structure, so we’re going to look at a few examples.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Commands can be separated by commas if you want several different times. If I wanted to run foobar every fifteen minutes my entry would look like this:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">0,15,30,45 * * * * /home/username/foobar</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Minutes are done from 0 to 59. Hours from 0 to 24. Days of the month from 1 to 31. Months from 1 to 12. Days of the week from 0 (Sunday) to 6 (Saturday). So if I wanted to run a command at 3am on the 1<sup>st</sup> and 15<sup>th</sup> of every month, my crontab entry would look like this:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">0 3 1,15 * * /home/username/foobar</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">If I wanted to tell cron to run this job on the 10<sup>th</sup> to the 20<sup>th</sup> of every month at 3 am, my entry would look like this:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">0 3 10-2 * * /home/username/foobar</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">If I wanted it to run at 3 am on Tuesday and Thursday</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">0 3 * * 2,4 /home/username/foobar</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Notice that in all of these examples, I use the full path to the executable, which in this case is something called foobar. It’s always a good idea to use the full path to whatever you’re running as cron may become confused with your<em> $PATH</em> settings. Particularly if you’re running a cron job as a different use, who’s path is different from what you may be used too.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Now, we’ve gone through a whole bunch of examples on what various cron jobs in your crontabs will look like. As with regular shell scripting, a ‘<em>#</em>‘ in a crontab means it’s a comment and cron will ignore anything after the <em>#</em>.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">I’ve found that the for me it’s easier book keeping to save my commands as scripts, and then have Cron execute a single script rather than a long command. You can do it however you’d like. Since this is a howto written by me however, I’m going to show you how I do it.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">As we’ve already looked at using <a target="_blank" href="http://www.arsgeek.com/?p=637">tar and rsync </a>to back something up to a local drive, an external drive and how to do that over a network, we’re going to look at using cron to automate this task. In this example, I’m going to set up a crontab for the root user to execute an rsync command to copy my music folder once a week to an external drive, and use tar to back up my entire computer once a month. I’ll use the same examples I did on this earlier post. I’m going to execute my weekly rsyncs as my own user, and I’m going to back up my system once a month as the root user.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">In my home directory (/home/arsgeek) I’m going to create a small script which will contain nothing but a comment and my rsync command. I’ve also got to make sure that my external drive is hooked up and on. Open up a terminal session and let’s make this script.</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">gedit musicbak.sh</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">In there, I’m going to paste my rsync command to back up my music directory from my <em>FAT32</em> partition to my external drive.</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">#! /bin/bash</p> <p style="margin-bottom: 0in">#back up my music folder to my external firewire drive</p> <p style="margin-bottom: 0in">rsync -arvu /media/sda5/music /media/ieee1394disk/arsgeek_backup</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Now save your file. We’ll have to make it executable.</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">chmod +x musicbak.sh</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Now, let’s decided when this thing is going to run. I’m going to have Cron back up my music directory every Wednesday at noon. Why? Well, I’m usually at lunch and my laptop is idle and plugged into my dock (with my external drive). Now to edit my crontab and tell cron to do this:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">EDITOR=gedit crontab -e</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">And then I’ll write:</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">#Backup my music</p> <p style="margin-bottom: 0in">0 12 * * 3 /home/arsgeek/musicbak.sh</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Save the file and Cron will now execute this as I have planned.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Now, I also want to do a system backup once a month. I’m going to automate this to happen on the first Monday of every month, at 11:15 am. Here again is a time when I know I’ll be at my desk, with my laptop on and my external drive active. Let’s create another small script that will contain this command.</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">gedit fullbackup.sh</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">And into this I’ll put the following.</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">#! /bin/bash</p> <p style="margin-bottom: 0in">#Tar command to do a full system backup to my external drive. Yo.</p> <p style="margin-bottom: 0in">tar cvpzf /media/ieee1394fdisk/arsgeek_wholeshebank/arsgeek.backup.tgz –exclude=”/proc/*” –exclude=”/lost+found/*” –exclude=”/dev/*” –exclude=”/mnt/*” –exclude=”/media/*” –exclude=”/sys/*” –exclude=”/tmp/*” –exclude “/var/cache/apt/*” /</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in"><strong>Note that this is one complete line, if you’re cutting and pasting this to modify it, please check that there are no line breaks.</strong></p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Again we’ll make this file executable.</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">chmod +x fullbackup.sh</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Now, we’re going to tell cron to run this but we’ll need to do it so that the root user’s crontab is the one activated, as regular old users won’t have access to everything I’m trying to back up.</p> <p style="margin-bottom: 0in"> <blockquote> <p style="margin-bottom: 0in">sudo crontab -e</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">And in root’s crontab, I’ll enter the following:</p> <blockquote> <p style="margin-bottom: 0in">#Backup my system</p> <p style="margin-bottom: 0in">15 11 * * MON#1 /home/arsgeek/fullbackup.sh</p> </blockquote> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">Woah! Got a bit different on you there, didn’t I? Cron is really flexible, and modern crontabs can contain 3 letter (caps) abbreviations for the days. Also, what’s the ‘<em>#1</em>‘ portion mean? It’s an <em>nth</em> value – in this case I’m saying run this on Monday, the 1<sup>st</sup> one of the month. If I changed it to <em>#2</em> it would run on the second Monday of every month.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">You can get very specific with Cron, specifiying seconds, years and everything in between. If you’re interested in looking into Cron a bit deeper, I would start with the man pages. There are also tons of highly detailed tutorials and examples that a simple google will turn up.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">There are a few GUI tools available as well to modify your crontabs. Two that I’ve experimented with are gcrontab and gnome-schedule. Both act as front ends to Cron. Perhaps it’s simply what I’m used too but I still find using the CLI in this case to be much easier.</p> <p style="margin-bottom: 0in"> <script type="text/javascript">AKPC_IDS += "652,";</script><p class="akpc_pop">Popularity: 1% <span class="akpc_help">[<a href="http://alexking.org/projects/wordpress/popularity-contest" title="What does this mean?">?</a>]</span></p><div class='sociable'><div class='sociable-tagline'><strong>Share and Enjoy:</strong></div><ul><li><a rel='nofollow' href='http://digg.com/submit?phase=2&url=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F&title=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups&bodytext=%20%09%20%09%20%09%20%09%20%09%20%09%20%09%20%09%20%09%0D%0ACron%20is%20one%20of%20those%20little%20programs%20that%20can%20change%20the%20world.%20%20It%27s%20a%20scheduling%20progam%2C%20meaning%20that%20you%20can%20give%20it%20instructions%20such%20as%20%27at%2010%3A45am%20on%20every%20Monday%20run%20this%20program%27%20and%20it%20will%20faithfully%20wait%20until%20the%20appoi'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/digg.png' class='sociable-img' title='Digg' alt='Digg' /></a></li><li><a rel='nofollow' href='http://delicious.com/post?url=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F&title=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups&notes=%20%09%20%09%20%09%20%09%20%09%20%09%20%09%20%09%20%09%0D%0ACron%20is%20one%20of%20those%20little%20programs%20that%20can%20change%20the%20world.%20%20It%27s%20a%20scheduling%20progam%2C%20meaning%20that%20you%20can%20give%20it%20instructions%20such%20as%20%27at%2010%3A45am%20on%20every%20Monday%20run%20this%20program%27%20and%20it%20will%20faithfully%20wait%20until%20the%20appoi'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/delicious.png' class='sociable-img' title='del.icio.us' alt='del.icio.us' /></a></li><li><a rel='nofollow' href='http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F&bm_description=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups&plugin=soc'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/misterwong.png' class='sociable-img' title='MisterWong' alt='MisterWong' /></a></li><li><a rel='nofollow' href='http://reddit.com/submit?url=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F&title=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/reddit.png' class='sociable-img' title='Reddit' alt='Reddit' /></a></li><li><a rel='nofollow' href='http://technorati.com/faves?add=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/technorati.png' class='sociable-img' title='Technorati' alt='Technorati' /></a></li><li><a rel='nofollow' href='http://www.blinklist.com/index.php?Action=Blink/addblink.php&Url=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F&Title=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/blinklist.png' class='sociable-img' title='BlinkList' alt='BlinkList' /></a></li><li><a rel='nofollow' href='http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F&t=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/facebook.png' class='sociable-img' title='Facebook' alt='Facebook' /></a></li><li><a rel='nofollow' href='http://cgi.fark.com/cgi/fark/farkit.pl?h=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups&u=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/fark.png' class='sociable-img' title='Fark' alt='Fark' /></a></li><li><a rel='nofollow' href='http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F&title=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/mixx.png' class='sociable-img' title='Mixx' alt='Mixx' /></a></li><li><a rel='nofollow' href='http://slashdot.org/bookmark.pl?title=Linux%20Basics%20-%20How%20to%20use%20Cron%20to%20automate%20just%20about%20anything%20including%20backups&url=http%3A%2F%2Fwww.arsgeek.com%2F2006%2F10%2F23%2Flinux-basics-how-to-use-cron-to-automate-just-about-anything-including-backups%2F'><img src='http://www.arsgeek.com/wp-content/plugins/sociable/images/default/16/slashdot.png' class='sociable-img' title='Slashdot' alt='Slashdot' /></a></li></ul></div> </div> <div class="author_info"> <h3>This post was written by:</h3> <span class="author_photo"><img src="http://www.gravatar.com/avatar.php?gravatar_id=5c60ebfea32a4887de52a370c4ce2437&default=http%3A%2F%2Fwww.arsgeek.com%2Fwp-content%2Fthemes%2Ffreshnews%2Fimages%2Fgravatar.jpg&size=48" width="48" height="48" alt="" /></span> <p><a href="http://www.arsgeek.com/author/admin/" title="Posts by arsgeek">arsgeek</a> - who has written 1989 posts on <a href="http://www.arsgeek.com/">ArsGeek</a>.</p> <p> <br style="clear:both;" /></p> <p class="author_email"><a href="mailto:support@arsgeek.com">Contact the author</a></p> </div> </div><!--/post--> <div id="comments" class="box2"> <!-- You can start editing here. --> <h2 class="commh2">2 Comments For This Post</h2> <ol class="commentlist"> <li class="alt " id="comment-749"> <span class="gravatar"><img src="http://www.gravatar.com/avatar.php?gravatar_id=a1ef92c51b46b8fdd3fddb69231a2f9a&default=http%3A%2F%2Fwww.arsgeek.com%2Fwp-content%2Fthemes%2Ffreshnews%2Fimages%2Fgravatar.jpg&size=48" width="48" height="48" alt="" /></span> <cite><span class='eg-image' style='float:right; margin-left:10px; display:block; width:80px' ><a rel='external nofollow' href='http://www.hormel.com'><img alt='' src='http://0.gravatar.com/avatar/a1ef92c51b46b8fdd3fddb69231a2f9a?s=80&d=http%3A%2F%2Fuse.perl.org%2Fimages%2Fpix.gif%3Fs%3D80&r=PG' class='avatar avatar-80 photo' height='80' width='80' /></a></span><a href='http://www.hormel.com' rel='external' class='url'>VonSkippy</a></cite> Says: <br /> <span class="commentmetadata"><a href="#comment-749" title="">October 23rd, 2006 at 11:56 am</a> </span> <p>For what ever Deity you think exists, get a freaking “Print this” button, plug-in, magic-elf so that your articles can be printed out in easy to read format and saved for posterity (or used as a step by step guide at a real linux terminal).</p> </li> <li class=" " id="comment-760"> <span class="gravatar"><img src="http://www.gravatar.com/avatar.php?gravatar_id=9db0dcec26b03857b412e18bd6e36677&default=http%3A%2F%2Fwww.arsgeek.com%2Fwp-content%2Fthemes%2Ffreshnews%2Fimages%2Fgravatar.jpg&size=48" width="48" height="48" alt="" /></span> <cite><span class='eg-image' style='float:right; margin-left:10px; display:block; width:80px' ><img alt='' src='http://1.gravatar.com/avatar/9db0dcec26b03857b412e18bd6e36677?s=80&d=http%3A%2F%2Fuse.perl.org%2Fimages%2Fpix.gif%3Fs%3D80&r=PG' class='avatar avatar-80 photo' height='80' width='80' /></span>arsgeek</cite> Says: <br /> <span class="commentmetadata"><a href="#comment-760" title="">October 23rd, 2006 at 1:53 pm</a> </span> <p>VonSkippy – that comment made me laugh! We’re working on it now. I’ve got several plugins that I’ve been trying but none seem to work all that well. I’ll keep hunting though!</p> <p>Hopefully I’ll have a solution in the next day or two.</p> </li> </ol> <h2 class="commh2">2 Trackbacks For This Post</h2> <ol class="commentlist"> <li class="alt " id="comment-789"> <cite><a href='http://linuxcarl.dk/?p=61' rel='external' class='url'>Friheden til at vælge » Blog-arkiv » Cron</a></cite> Says: <br /> <small class="commentmetadata"><a href="#comment-789" title="">October 24th, 2006 at 11:29 am</a> </small> <p>[...] Du kan læse mere her [...]</p> </li> <li class=" " id="comment-843"> <cite><a href='http://www.arsgeek.com/?p=660' rel='external' class='url'>ArsGeek - Free your inner geek » Ubunt Edgy Eft out tomorrow (26th)- How to prepare for and execute your upgrade</a></cite> Says: <br /> <small class="commentmetadata"><a href="#comment-843" title="">October 25th, 2006 at 9:03 am</a> </small> <p>[...] Linux Basics – How to use Cron to automate just about anything including backups [...]</p> </li> </ol> <h2 class="commh2">Leave a Reply</h2> <form action="http://www.arsgeek.com/wp-comments-post.php" method="post" id="commentform"> <p style="padding:5px 0px 10px 0px;"><input type="text" name="author" id="author" value="" size="22" tabindex="1" /> <label for="author"><small>Name (required)</small></label></p> <p style="padding:5px 0px 10px 0px;"><input type="text" name="email" id="email" value="" size="22" tabindex="2" /> <label for="email"><small>Mail (will not be published) (required)</small></label></p> <p style="padding:5px 0px 10px 0px;"><input type="text" name="url" id="url" value="" size="22" tabindex="3" /> <label for="url"><small>Website</small></label></p> <!--<p><small><strong>XHTML:</strong> You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> </small></p>--> <p style="padding:5px 0px 10px 0px;"><textarea name="comment" id="comment" style="width:97%;" rows="10" tabindex="4"></textarea></p> <p style="padding:10px 0px 10px 0px;"><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" /> <input type="hidden" name="comment_post_ID" value="652" /> </p> <p style="clear: both;" class="subscribe-to-comments"> <input type="checkbox" name="subscribe" id="subscribe" value="subscribe" style="width: auto;" /> <label for="subscribe">Check this box to get an email notification whenever a new comment is posted.</label> </p> </form> </div> <center><script language=JavaScript src="http://aj.600z.com/aj/63333/0/vj?z=1&dim=63329"></script></center> <div class="navigation"> <div class="alignleft"></div> <div class="alignright"></div> </div> </div><!--/centercol--> <div id="sidebar" class="grid_6"> <center><script src="http://www.ientry.com/ustream_player.php" type="text/javascript"></script><br><br><script language=JavaScript src="http://aj.600z.com/aj/70419/0/vj?z=1&dim=122"></script><br><br><a href="http://www.ientry.com/10th-anniversary.html" title="iEntry 10 Year Anniversary!"><img src="http://images.ientrymail.com/ientry/10-anniversary9.jpg" border="0" alt="iEntry 10 Year Anniversary!"></center><br/> <div class="box2"> <ul class="idTabs"> <li><a href="#pop">Popular</a></li> <li><a href="#comm">Comments</a></li> <li><a href="#feat">Featured</a></li> <li><a href="#tagcloud">Tags</a></li> </ul> <div class="spacer white"> <ul class="list1" id="pop"> <li><a href="http://www.arsgeek.com/2008/01/15/how-to-fix-your-windows-mbr-with-an-ubuntu-livecd/">How to fix your Windows MBR with an Ubuntu liveCD</a></li><li><a href="http://www.arsgeek.com/2008/07/10/every-single-led-zeppelin-song-in-drm-free-mp3-format-for-999/">Every single Led Zeppelin song in DRM free MP3 format for $9.99</a></li><li><a href="http://www.arsgeek.com/2006/09/25/ubuntu-tricks-how-to-mount-your-windows-partition-and-make-it-readwritable/">Ubuntu tricks - how to mount your Windows partition and make it read/writable</a></li><li><a href="http://www.arsgeek.com/2008/01/30/psp-firmware-hits-390-if-youve-got-the-slim-or-2000-you-can-now-skype-with-it/">PSP Firmware hits 3.90 - If you've got the slim (or 2000) you can now Skype with it</a></li><li><a href="http://www.arsgeek.com/2008/03/26/rip-dvd-movie-on-mac-os-x/">Rip DVD Movie on Mac OS X</a></li><li><a href="http://www.arsgeek.com/2007/08/02/and-so-gull-baiting-has-become-a-hot-game-among-dolphins/">"and so gull baiting has become a hot game among dolphins"</a></li><li><a href="http://www.arsgeek.com/2007/10/24/get-usb-devices-mounted-on-your-virtualbox-xp-machine-in-gutsy-ubuntu-710/">Get USB devices mounted on your Virtualbox XP machine in Gutsy (Ubuntu 7.10)</a></li><li><a href="http://www.arsgeek.com/2008/01/02/how-to-find-your-uuids-for-devices-in-ubuntu-and-other-debian-based-distros/">How to find your UUID's for devices in Ubuntu (and other Debian based distros)</a></li><li><a href="http://www.arsgeek.com/2007/05/17/5-steps-to-create-a-pdf-printer-print-to-pdf-in-ubuntu/">5 steps to create a PDF printer (print to PDF) in Ubuntu</a></li><li><a href="http://www.arsgeek.com/2008/01/22/how-to-clone-your-bootable-ubuntu-install-to-another-drive/">How to clone your bootable Ubuntu install to another drive</a></li> </ul> <ul class="list1" id="comm"> <li><a href="http://www.arsgeek.com/2006/10/16/using-hamachi-to-remotely-control-your-windows-and-linux-boxes/" title="Using Hamachi to remotely control your Windows and Linux boxes">Using Hamachi to remotely control your Windows and Linux boxes</a> (1152)</li><li><a href="http://www.arsgeek.com/2007/01/08/sonys-round-computer/" title="Sony’s round computer">Sony’s round computer</a> (589)</li><li><a href="http://www.arsgeek.com/2007/08/02/and-so-gull-baiting-has-become-a-hot-game-among-dolphins/" title="“and so gull baiting has become a hot game among dolphins”">“and so gull baiting has become a hot game among dolphins”</a> (469)</li><li><a href="http://www.arsgeek.com/2008/01/15/how-to-fix-your-windows-mbr-with-an-ubuntu-livecd/" title="How to fix your Windows MBR with an Ubuntu liveCD">How to fix your Windows MBR with an Ubuntu liveCD</a> (304)</li><li><a href="http://www.arsgeek.com/2008/03/26/rip-dvd-movie-on-mac-os-x/" title="Rip DVD Movie on Mac OS X">Rip DVD Movie on Mac OS X</a> (206)</li><li><a href="http://www.arsgeek.com/2008/03/06/boriska-boy-genius-says-hes-from-mars-knows-of-a-switch-behind-the-sphinxs-ear/" title="Boriska, boy genius says he’s from Mars, knows of a switch behind the Sphinx’s ear.">Boriska, boy genius says he’s from Mars, knows of a switch behind the Sphinx’s ear.</a> (194)</li><li><a href="http://www.arsgeek.com/2009/09/24/its-good-to-be-a-super-hero-now/" title="It’s Good To Be a Super Hero Now">It’s Good To Be a Super Hero Now</a> (186)</li><li><a href="http://www.arsgeek.com/2008/09/04/linux-and-flash-cut-the-crap-already/" title="Linux and Flash – cut the crap already!">Linux and Flash – cut the crap already!</a> (183)</li><li><a href="http://www.arsgeek.com/2009/10/15/female-characters-in-gaming-past-present-and-future/" title="Female Characters In Gaming: Past, Present, and Future">Female Characters In Gaming: Past, Present, and Future</a> (182)</li><li><a href="http://www.arsgeek.com/2008/05/09/got-a-band-but-cant-afford-to-shoot-a-video-use-public-cctv-cameras-and-then-demand-the-footage/" title="Got a band but can’t afford to shoot a video? Use public CCTV cameras and then demand the footage!">Got a band but can’t afford to shoot a video? Use public CCTV cameras and then demand the footage!</a> (165)</li> </ul> <ul class="list1" id="feat"> <li><a title="Permanent Link to New India Search Engine and Directory Is Comprehensive" href="http://www.arsgeek.com/2012/01/26/new-india-search-engine-and-directory-is-comprehensive/" rel="bookmark">New India Search Engine and Directory Is Comprehensive</a></li> <li><a title="Permanent Link to DC Comics New 52" href="http://www.arsgeek.com/2011/08/31/dc-comics-new-52/" rel="bookmark">DC Comics New 52</a></li> <li><a title="Permanent Link to Rating The “Burton” Factor in Tim Burton’s Filmography" href="http://www.arsgeek.com/2011/01/26/rating-the-burton-factor-in-tim-burtons-filmography/" rel="bookmark">Rating The “Burton” Factor in Tim Burton’s Filmography</a></li> <li><a title="Permanent Link to Top Fast Food Product Placements In Cinema History" href="http://www.arsgeek.com/2011/01/14/top-fast-food-product-placements-in-cinema-history/" rel="bookmark">Top Fast Food Product Placements In Cinema History</a></li> <li><a title="Permanent Link to Comic Review Quickies – 01/12/11" href="http://www.arsgeek.com/2011/01/13/comic-review-quickies-011211/" rel="bookmark">Comic Review Quickies – 01/12/11</a></li> <li><a title="Permanent Link to Comic Review Quickies – 01/05/11" href="http://www.arsgeek.com/2011/01/06/comic-review-quickies-010511/" rel="bookmark">Comic Review Quickies – 01/05/11</a></li> <li><a title="Permanent Link to Looking Back at the Awesome of 2010" href="http://www.arsgeek.com/2011/01/05/looking-back-at-the-awesome-of-2010/" rel="bookmark">Looking Back at the Awesome of 2010</a></li> <li><a title="Permanent Link to Have You Seen These Actors and Actress?" href="http://www.arsgeek.com/2010/12/16/have-you-seen-these-actors-and-actress/" rel="bookmark">Have You Seen These Actors and Actress?</a></li> <li><a title="Permanent Link to Sort Through Crap Apps With AppGeek" href="http://www.arsgeek.com/2010/11/18/sort-through-crap-apps-with-appgeek/" rel="bookmark">Sort Through Crap Apps With AppGeek</a></li> <li><a title="Permanent Link to Guild Wars 2 Forum Website Launches" href="http://www.arsgeek.com/2010/06/10/guild-wars-2-forum-website-launches/" rel="bookmark">Guild Wars 2 Forum Website Launches</a></li> </ul> </div> <!--/spacer --> </div> <div class="widget"> <div class="textwidget"><br /> <center><script language=JavaScript src="http://aj.600z.com/aj/62825/0/vj?z=1&dim=145"></script></center> <br /></div> </div><!--/widget--><div class="widget"><h3 class="hl">Archives</h3> <ul> <li><a href='http://www.arsgeek.com/2012/01/' title='January 2012'>January 2012</a></li> <li><a href='http://www.arsgeek.com/2011/08/' title='August 2011'>August 2011</a></li> <li><a href='http://www.arsgeek.com/2011/01/' title='January 2011'>January 2011</a></li> <li><a href='http://www.arsgeek.com/2010/12/' title='December 2010'>December 2010</a></li> <li><a href='http://www.arsgeek.com/2010/11/' title='November 2010'>November 2010</a></li> <li><a href='http://www.arsgeek.com/2010/06/' title='June 2010'>June 2010</a></li> <li><a href='http://www.arsgeek.com/2009/10/' title='October 2009'>October 2009</a></li> <li><a href='http://www.arsgeek.com/2009/09/' title='September 2009'>September 2009</a></li> <li><a href='http://www.arsgeek.com/2009/08/' title='August 2009'>August 2009</a></li> <li><a href='http://www.arsgeek.com/2009/07/' title='July 2009'>July 2009</a></li> <li><a href='http://www.arsgeek.com/2009/06/' title='June 2009'>June 2009</a></li> <li><a href='http://www.arsgeek.com/2009/05/' title='May 2009'>May 2009</a></li> <li><a href='http://www.arsgeek.com/2009/04/' title='April 2009'>April 2009</a></li> <li><a href='http://www.arsgeek.com/2009/03/' title='March 2009'>March 2009</a></li> <li><a href='http://www.arsgeek.com/2009/02/' title='February 2009'>February 2009</a></li> <li><a href='http://www.arsgeek.com/2009/01/' title='January 2009'>January 2009</a></li> <li><a href='http://www.arsgeek.com/2008/12/' title='December 2008'>December 2008</a></li> <li><a href='http://www.arsgeek.com/2008/11/' title='November 2008'>November 2008</a></li> <li><a href='http://www.arsgeek.com/2008/10/' title='October 2008'>October 2008</a></li> <li><a href='http://www.arsgeek.com/2008/09/' title='September 2008'>September 2008</a></li> <li><a href='http://www.arsgeek.com/2008/08/' title='August 2008'>August 2008</a></li> <li><a href='http://www.arsgeek.com/2008/07/' title='July 2008'>July 2008</a></li> <li><a href='http://www.arsgeek.com/2008/06/' title='June 2008'>June 2008</a></li> <li><a href='http://www.arsgeek.com/2008/05/' title='May 2008'>May 2008</a></li> <li><a href='http://www.arsgeek.com/2008/04/' title='April 2008'>April 2008</a></li> <li><a href='http://www.arsgeek.com/2008/03/' title='March 2008'>March 2008</a></li> <li><a href='http://www.arsgeek.com/2008/02/' title='February 2008'>February 2008</a></li> <li><a href='http://www.arsgeek.com/2008/01/' title='January 2008'>January 2008</a></li> <li><a href='http://www.arsgeek.com/2007/12/' title='December 2007'>December 2007</a></li> <li><a href='http://www.arsgeek.com/2007/11/' title='November 2007'>November 2007</a></li> <li><a href='http://www.arsgeek.com/2007/10/' title='October 2007'>October 2007</a></li> <li><a href='http://www.arsgeek.com/2007/09/' title='September 2007'>September 2007</a></li> <li><a href='http://www.arsgeek.com/2007/08/' title='August 2007'>August 2007</a></li> <li><a href='http://www.arsgeek.com/2007/07/' title='July 2007'>July 2007</a></li> <li><a href='http://www.arsgeek.com/2007/06/' title='June 2007'>June 2007</a></li> <li><a href='http://www.arsgeek.com/2007/05/' title='May 2007'>May 2007</a></li> <li><a href='http://www.arsgeek.com/2007/04/' title='April 2007'>April 2007</a></li> <li><a href='http://www.arsgeek.com/2007/03/' title='March 2007'>March 2007</a></li> <li><a href='http://www.arsgeek.com/2007/02/' title='February 2007'>February 2007</a></li> <li><a href='http://www.arsgeek.com/2007/01/' title='January 2007'>January 2007</a></li> <li><a href='http://www.arsgeek.com/2006/12/' title='December 2006'>December 2006</a></li> <li><a href='http://www.arsgeek.com/2006/11/' title='November 2006'>November 2006</a></li> <li><a href='http://www.arsgeek.com/2006/10/' title='October 2006'>October 2006</a></li> <li><a href='http://www.arsgeek.com/2006/09/' title='September 2006'>September 2006</a></li> <li><a href='http://www.arsgeek.com/2006/08/' title='August 2006'>August 2006</a></li> <li><a href='http://www.arsgeek.com/2006/07/' title='July 2006'>July 2006</a></li> <li><a href='http://www.arsgeek.com/2006/06/' title='June 2006'>June 2006</a></li> <li><a href='http://www.arsgeek.com/2006/05/' title='May 2006'>May 2006</a></li> <li><a href='http://www.arsgeek.com/2006/04/' title='April 2006'>April 2006</a></li> <li><a href='http://www.arsgeek.com/2006/03/' title='March 2006'>March 2006</a></li> <li><a href='http://www.arsgeek.com/2006/02/' title='February 2006'>February 2006</a></li> </ul> </div><!--/widget--> <div class="clear"></div> <div class="grid_3 alpha"> </div><!--/grid_3 alpha--> <div class="grid_3 omega"> </div><!--/grid_3 omega--> <div class="clear"></div> <br /><div id="adtest"><script language=JavaScript src="http://aj.600z.com/aj/62824/0/vj?z=1&dim=122" wmode="opaque"> so.addParam("wmode", "opaque");</script></div> <br /> </div><!--/sidebar--> <div class="fix"></div> <div class="fix"></div> </div> <!--/#page .container_16--> <div id="footer"> <div class="container_16"> <div class="grid_16"> <p class="fl"><a href="http://www.ArsGeek.com/">ArsGeek</a> is an <script type="text/javascript" src="http://www.ientry.com/copyrightjs.php"></script> <a href="http://www.ientry.com/page/corp/privacy.html">Privacy Policy</a> and <a href="http://www.ientry.com/page/corp/legal.html">Legal</a></p> </div> </div> <!-- end .container_16--> </div> <script type="text/javascript"> jQuery(function() { jQuery.post("index.php",{ak_action:"api_record_view", ids: AKPC_IDS, type:"single"}, false, "json"); }); </script> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-5639021-15"); pageTracker._trackPageview(); </script> <div id="top1" class="container_16"> <div class="floatleft"> <ul class="nav1"> <li ><a href="http://www.arsgeek.com/">Home</a></li> <li class="page_item page-item-4084"><a href="http://www.arsgeek.com/archives/" title="Archives">Archives</a></li> <li class="page_item page-item-4247"><a href="http://www.arsgeek.com/contact/" title="Contact">Contact</a></li> <li class="page_item page-item-4358"><a href="http://www.arsgeek.com/about-us/" title="About Us">About Us</a></li> <li><script type="text/javascript" language="JavaScript" src="http://aj.600z.com/aj/65271/0/vj?z=1&dim=65095"></script></li> <li><script type="text/javascript" language="JavaScript" src="http://aj.600z.com/aj/65272/0/vj?z=1&dim=65096"></script></li> <li><script type="text/javascript" language="JavaScript" src="http://aj.600z.com/aj/65273/0/vj?z=1&dim=65097"></script></li> </ul></div> <!--/nav1--> <!-- end .grid_12 --> <div class="floatright"> <span class="subscribe">Subscribe:   <a href="http://feeds.feedburner.com/Arsgeek">Posts</a>   |   <a href="http://www.arsgeek.com/comments/feed/">Comments</a>   |   <a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=Arsgeek" target="_blank">Email</a></span> </div> <!-- end .grid_4 --> </div> <script type="text/javascript" language="Javascript" src="http://images.ientrymail.com/ientry/network_footer/footer.php"></script> </body> </html>