Systems Administration

Keep external hard drives mounted under OS X without being logged in

I have an old G4 mac mini running OS X 10.5 Leopard that I've set up as a NAS for my home network. The idea was to have our laptops and other macs use Time Machine to backup to the USB drives attached to the mini. The mini draws only a small amount of electricity and I happened to have a couple of large USB drives kicking around so it seemed like a great replacement setup for my aging Linux solution. So I plugged the drives in, turned on file sharing, shared the drives, and started backing things up.

The joys of OpenSuSE 11.4 on a Dell Latitude, and a Docking Station

I've been running SuSE for 12 years. So, when I got my standard issue Dell Latitude E64xx I installed OpenSuSE 11.4. It runs great except when it's time to plug or unplug it from the docking station in my office. Then it's a pain because of the display switching issues.

Listing the unique IP addresses from a Web log

I want a list of the unique IP addresses for the machines that have requested pages from a specific directory of a Web application.

// pull out the requests for just this directory
grep DIRECTORY/request_log > DIRECTORY/request_log

// remove all hits to non-pages (e.g., graphics, CSS, JS, etc)
cat DIRECTORY/request_log | grep -v "\.gif" | grep -v "\.js" | grep -v "\.jpg" | grep -v "\.css" > DIRECTORY/page_hit_log

// pull out the IPs, sort them file and remove duplicates

Solution for umount "device is busy" errors

We've all experienced it. We want to unmount something and the device is busy. Enter the lazy switch for the umount command.
umount -l /dev/
As soon as the last process stops using the device it gets unmounted. Many times this happens instantly.

Firefox 3 sec_error_crl_invalid errors

For the last month or so I've been experiencing sec_error_crl_invalid errors on a couple of sites when using Firefox 3. Thanks to this post on NZGeek's blog I was able to resolve the issue. It turns out by deleting the CRLs (that where disabled anyway) I was able to solve my issue.

HOWTO: Apache Name-based SSL-enabled Virtual Hosting

I want to do virtual hosting of SSL-enabled virtual hosts on the same Apache server as my other non-SSL-enabled virtual hosts. I don't want to assign more than one IP address to the server and all of my virtual hosts will be within the same domain (e.g., example.com).

BACKGROUND

When Apache processes a request for a name-based virtual host it receives the request from the browser, which includes the Host header (e.g., Host: www.example.com). Apache uses the Host header to determine which name-based virtual host to route the request to. It works this way regardless of the connection type, HTTP or HTTPS.

Automated backups of MySQL databases

Unless you have intelligent backup software that can do something smart to backup your databases, restoring a backup of a running MySQL server is like restarting your database after a hard system crash, it's a crap shoot. Since I don't have any fancy backup software that can help I decided to use mysqldump to create a snapshot of my database server and write it out to a compressed SQL file. Then my (dumb) backup software can continue to be used and I will be able to recover easily if my server dies.

Here's the quick and dirty script:

#!/bin/sh
#
# This script automates a call to mysqldump
# and sends the output to a file in a backup
# directory. The script is set up to keep
# seven days of history.
#
# Before you can run this script you must
# set up a MySQL user that can perform the
# backup. This user must have permission to
# SELECT and LOCK TABLES. The user should not
# be permitted to access MySQL in any way other
# than through the local socket. Here's how the
# user should be created:
#
# GRANT SELECT,LOCK TABLES ON *.* TO 'SomeUser'@'localhost' IDENTIFIED BY 'SomePassword'
# FLUSH PRIVILEGES;
#
# This script should be owned by root and only
# root should be able to read, write, and
# execute it. (i.e., chmod 700)
#