The shell scripts..

Here are the actual scripts that were once used to sync corz.org and my mac dev mirror, using only my mac. my friendly local linux box was offline for a few days (hardware), so I needed a mac-only version, and then I realised how poor the OS X version of cp is. This one uses tar to do the backup, and create the log. I couldn't survive even a couple of days without my sync script..

Why? well, I don't have to keep tabs on which files I've edited, for starters; and I tend to edit lots of different site files in one session; keeping track would be an enormous task; the backup script does this for me. Only new and changed files are backed up, thereby indicating which files are new or changed!

The first time you run this script, it creates a new tar archive of your entire site. this will take a few moments and used as your baseline mirror, after which we can really use the script. Now, whenever you run the it, you will have only the updated files in the output log.

The few seconds it takes to edit your prefs here will save you hours and hours and hours in the future. Mac users Note: If your local site folder has custom icons, the resultant tar and tar.gz archives will probably be unusable on a PC, possibly other platforms. Yeah, it's a resource fork thing.

okay, here goes..

 file: /usr/local/bin/cb


	#!/bin/sh
	# corz.org mirror backup script (single-mac version)..

	# an interactive version is also included in the zip archive

	# note: this script is still very immature.
	# please report any bugs/problems. ta

	# prefs..
	devroot="/Volumes/mac/webserv"
	sitefolder="cor"
	backupdir="/Users/corz/bax"
	arcname="corz"
	# this is the file who's content we will convert into ftp commands
	logfile="/Volumes/mac/webserver/itest/mirror.log"
	# end prefs

	cd $devroot
	echo  >> $logfile
	echo "corz backup script: "`date "+%Y.%m.%d-%H.%M"`.. >> $logfile
	echo "corz backup script - "`date "+%Y.%m.%d-%H.%M"`..

	if ! [ -e $backupdir/$arcname.tar ];then
	  echo "creating initial 'base' archive.."
	  echo "creating archive (base - no logging for this) .." >> $logfile
	  tar --verify -cSf $backupdir/$arcname.tar $sitefolder > /dev/null
	fi

	echo "syncing backup archive.."
	echo "creating archive (sync) .." >> $logfile
	echo  >> $logfile
	tar -uvSf $backupdir/$arcname.tar $sitefolder >> $logfile

	echo "gzipping backup archive.."
	echo "creating archive (gzipping) .." >> $logfile
	gzip -c9 $backupdir/$arcname.tar > $backupdir/`date "+%Y.%m.%d-%H.%M"`_$arcname.org.tar.gz

	echo "backup script completes .." >> $logfile
	echo  >> $logfile
	echo "corz backup script completed"
	exit 0

	# fin

The output from the converter would go into a script something like this..
(after a quick manual check, of course)


 file: ~/up


  #!/bin/sh

  # upload new files to website..

  HOST='ftp.mysite.com'
  USER='username'
  PASSWD='password'

  ftp -n $HOST <<FTP_QUIT
  quote USER $USER
  quote PASS $PASSWD
  binary

    # paste converted ftp commands right here

  quit
  FTP_QUIT
  exit 0

  # fin

That's it! your wesite and its mirror are one!

test conversion tooldownload the ziplinux version

Welcome to corz.org!

If something isn't working, I'm probably improving it, try again in a minute. If it's still not working, please mail me!