Firs tof all i dont use shellscripts anymore - besides they are technically ver powerfull (specially with rsync) they have a real problem - Management.

Starting from logging / reporting / and so on i think this isnt a professional Solution so im using another Product (easy for me since we provide onlinebackup services : )

So what im doing is i run several times a day a incremental hotbackup
to reduce the downtime at cold to a minimum

but of course theres one thing - you have todo it within the same backup set - no other way to reduce coldbackup downtime to 3 minutes

so i wrote 2 little shellscript which trigger zimbrashutdown by time
its Simple - it will only shutdown and startup zimbra if a certain timelimit is reached so the decision if its a cold or hotbackup is made by system clock trough that script

Explanation chour is the actual hour.
it simply runs if hour is equal 5 AND less then 11 strigger startup / shutdown - so 5:00 - 10:59 - change it for your needs
i made this timewindow something really went wrong and backup run way longer than expected - so i gave him 1 hour longer than a usually fullbackup takes - just in case otherwise - lets say for some reason the coldbackup trigger a fullbackup it woudl run for hours and the postbackup script would never trigger startup again

(of course you can easyly add minutes but i dont need em i got those backups running at xx:05)

luclyly my backupsoftware collect the stdout data of that scripts so i recive everyday my reportmails with the shelloutput

one note: its not really nessesary to have a postbackup script you could rigger a zimbra start always and it shoudl do no harm - but i dont like that - maybe something will change withing the startupscript some day - so i really only want to trigger start when i have to

I am bit confused between zmbak_v.0.8.sh and zmDBbac scripts.
Could anybody please explain me in details about how to install and use these scripts.
Is this are two diff script?
I don't know where to start and how to restore.

This will make sure you have all the required tools, and install the crontab to do full and diff backups automatically. You may have to do a web search to get dar installed.

Is this are two diff script?

The zmbak.sh script does a local or remote rsync backup of your entire /opt/zimbra directory. This allows you to restore an entire Zimbra installation.
The zmDBbac.sh script does MySQL and LDAP dumps for each user, allowing you to restore individual users, or even individual user folders. The post on zmDBbac.sh install describes how to call it from the zmbak.sh script.

I don't know where to start and how to restore.

If you have to do a full restore, you simply stop Zimbra services, replace the existing /opt/zimbra directory with the backup one, restart Zimbra services. If you are restoring to a new server, you may have a couple of other things to do, e.g. set up split DNS.
The method for restoring individual users or folders is somewhat involved, and is described in the zmDBbac references above in this post.

You simply call the zmdbbac script from within the zmbak script, as shown in the post. In other words, you have to modify zmbak slightly to work with zmdbbac. A cron job starts zmbak, which does a warm rsync, then shuts down Zimbra and does a cold rsync. While Zimbra is still shut down, the zmdbbac script is called, and it backs up SQL and LDAP. When it's finished, it returns to zmbak, and the main script finishes. So you still only need the one cron job to get the whole thing done.

I am still wondering why this script is taking more than 24 hours to complete backup of 300 GB of data...

The first full rsync of that amount of data will take a long time. Future rsyncs should go much faster. Dar creation, on the other hand, will continue to take a long time on every full backup.

If _every_ full takes that long, some things to consider:
What is your destination, a locally mounted volume or remote? If local, does the backup volume use completely different disks than Zimbra? If remote, is it on your LAN or over the internet? Are you using SSH? What is the transfer rate shown in the backup email? Does it take 24 hours just to rsync, or to both rsync and dar? The time at the bottom of the email includes the dar time.

For me, it takes about 5 hours to full rsync and dar a 100GB /opt/zimbra to a local volume. Most of that is dar creation. After your first full rsync, future fulls will probably only need to sync 3% or so of the total. Hot sync takes about 7 minutes for 3GB, which works out to about 4hrs for 100GB. You can calculate from the sent bytes and bytes/sec in the hotsync section of the email. Cold sync takes about 1min25sec. DB and LDAP dumps takes 2-3 minutes. Downtime, for me, is about 5min30sec, which includes DB and LDAP dumps. Thus, dar takes up about 4hrs45min of the 5hr total, to dar up 100GB. Extrapolating to your 300GB, it would have taken about 12hrs for rsync and 14.25hrs for dar, total about 26.5hrs, the very first time I ran the script.

My backup volume is local and separate, but part of a RAID set, so it is not on separate disks. I backup the backup to another RAID.

The fake backup is happening on SATA Storage (IBM DS3500) Virtualized on Xenserver. However the dars are being created on cifs share mounted on NAS with 100mbps of LAN Connectivity to server. I am also not receving mail for backup as it ends up with /usr/lib/sendmail not found.