Innobackupex is excellent- we use it- but it's not as trivial as a tar copy of the mysql directory (shut the database down first). For example, you may end up using the database username/password on the command line in your scripts (which you should probably avoid). Also, according to the man page, "After creating a backup, the data is not ready to be restored." ...Ehm, in a word: YIKES! RTFM for sure! At least they tell you what you need to do, and it's not hard, but if you miss it...
Anyway, here's a bash example of how we back up our production database. Details such as defining LOG_DIR and BACKUP_DIR left as an exercise for the reader:
cleanup () {
status=$?
rm -f $TMPFILE
exit $status
}
trap cleanup EXIT SIGQUIT SIGHUP SIGINT SIGTERM
TMPFILE=$(mktemp /tmp/dbbkpXXXXX)
suffix=$(date +%w)
cp /etc/my.cnf $TMPFILE
cat /var/lib/mysql/defaults.cnf >> $TMPFILE
mkdir -p $LOG_DIR $BACKUP_DIR
innobackupex --defaults-file $TMPFILE $FULL_BACKUP_DIR > $LOG_DIR/$suffix 2>&1
innobackupex --defaults-file $TMPFILE --apply-log $FULL_BACKUP_DIR >> $LOG_DIR/$suffix 2>&1