Posts categorized under: tech

MySQL Backup Script


date=$(date +%Y.%m.%d)

# echo and exit
function die {
    echo "$1"
    exit 1

# dump per database
function per_db {
    for db in $(mysql -u ${user} -p${pass} -Bse "show databases"); do
        [ ${db} = "information_schema" ] && continue
        [ ${db} = "performance_schema" ] && continue
        echo ${db}
        mysqldump …

Discovering the Seagate Central


ryant@spitfire:~$ nmap

Starting Nmap 6.00 ( ) at 2013-06-29 13:17 SAST
Nmap scan report for
Host is up (0.0098s latency).
Not shown: 990 closed ports
21/tcp   open  ftp
22/tcp   open …

Expect the Unexpected


Need to automate an rsync to a fileserver and, unfortunately, required to authenticate using a password.


Use expect...


set timeout 20
set password [lindex $argv 0]

spawn rsync -av --no-p --no-g  /media/ryant/My\ Book/Photo/ user@

expect …

Persistence With SQLite

The Problem-ette

I needed to keep track of up until where in a database table I had already queried. Later queries needed to draw data from that point onwards. For example if I've done the query select id, name, surname from table where id > 255623 and it yielded results with …

Do They Fit?

Do you want to know if the MP3s in that folder will fit on a CD?

No problem.

#!/usr/bin/env python

import audioread
import sys

    files = sys.argv[1:]
    print('Usage: %s <files/glob>' % (sys.argv[0],))

total_length = 0.0
for file in files:
    f …

Commandline Completion for Fabric

To get a list of functions in a Fabric file you use fab --list. I use Fabric frequently so I thought I'd save myself some time by using bash completion to render fab --list obsolete.

Being a learn-from-example type of person I immediately consulted Google for some precedence. After a …

MySQL Over an SSH Tunnel

The Problem-ette

I need to access a number of MySQL servers which are only accessible via ssh jump boxes, ie. I have to ssh to Box A in order to connect to Box B via SSH or the MySQL client.

This can get a bit tedious.

The Solution

Being able …

Keeping IT Simple With

The web framework shootout

There are many Python based web frameworks out there waiting to be discovered, tested, set aside, and even used for something useful. Some argue that there are too many and that what Python needs is a Rails-style killer app. One app to rule them all… Like …

SQL Converter

The Problem

I had a text file containg MS SQL Server database table definitions and I needed to make it compatible with MySQL. Here’s an example:

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Blecchs]') AND type in (N'U'))

Twisted Exim

Use the source, Luke

The great thing about open source is that you can learn from those who have published code on the 'net. At the very least you can shamelessly plagiarise it and bend it until it looks like something you could use ;-)

Another great thing about OSS is …