Archive for September, 2010

A linux incremental backup system using DAR

This is a pair of scripts i designed in order to create and restore easily incremental backups of a game server, they allow you to backup automatically a specific folder every 30 minutes every backup is labeled with date hour/minutes/seconds and the script flush every backups that are older than seven days (you can change that obviously)

The system uses incremental updates through the “dar” program, it creates a master backup file every mornings at 0:00 and creates incremental backups every 30 minutes. This means only what changed through the day is saved instead of having one full backup 48 times a day.

this script you should execute through a cron job:

#the folder we want to backup is /home/username/folder_to_backup


DAY=`date -I`
HOUR=`date +%H%M%S`

#this define the day date of the backups we want to delete
OLD=`date -I -d "-1weeks"`


if [ -f ${BACKUP_FOLDER}/${DAY}.1.dar ]
	echo "master backup exist, making incremental update."
	LASTSLICE=`ls -1cr ${BACKUP_FOLDER}/${DAY}*.dar |tail -1`
	echo "last slice is: ${LASTSLICE}"
	echo "creating daily master backup"
	echo "deleting 7 days old backup (${OLD})"

	#we remove the older backups, if we can

Example cron job to execute this script (dev/null is required because dar tend to be quite chatty):

*/30 * * * * /home/user/scripts/ >> /dev/null 2>&1

Restoring backups with dar is a little tedious because you have to restore every incremental backups one by one. This script will restore the master backup and every incremental backups up to the one you defined in the folder of your choice.


if [ -n "$3" ]; then
        if [ -f "$1" ]; then
                if [ -f "$2" ]; then

                        FILES=`ls -m1cr ${MASTER_DAR}*.dar`

                        echo "MASTER DAR FILE is: ${MASTER_DAR}"
                        echo "LAST BACKUP is: ${LAST_BACKUP}"
                        echo "File list: ${FILES}"

                        for file in ${FILES}; do
                                echo "Processing... ${file}"
                                dar -Ox ${file%%.*} -w -R "$FS_ROOT"
                                if [ "${file%%.*}" == "${LAST_BACKUP}" ]; then
                                        echo "This was our last file."
                        echo "All done."
                        echo "ERROR: this increment doesn't exist."
                echo "ERROR: this base dar doesn't exist."
   echo "Not enough parameters.

Usage: master_backup.1.dar last_incremental_backup.1.dar /my/destination/folder/"

My first pong game

I never got around training myself on making a simple game from start to finish, so here is my first one, obviously it’s not going to provide you hours upon hours of entertainment, nor is it the most sleek and polished game ever made, but hey i tend to never finish projects, this one is!

…it has shadows and cellshading!

Basic latex hood, tatoo update

And again, i added tatoo layer to my basic latex hoods, and did a new product pic.

As usual if you already got a hood from me, just ask me for the extra layer, it’s free.

It’s also available on XStreet

Now proper tatoo versions of the Vixen hood

Inworld and on Xstreet, Enjoy 🙂

Kyrah Abattoir
Creator of BDSM and fetish content in Second Life since 2004.

Seasoned 3D artist and programmer, aspiring video game creator.