<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Zimbra_FOSS_User_Backup</id>
	<title>Zimbra FOSS User Backup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Zimbra_FOSS_User_Backup"/>
	<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_User_Backup&amp;action=history"/>
	<updated>2026-04-19T06:46:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=Zimbra_FOSS_User_Backup&amp;diff=2052&amp;oldid=prev</id>
		<title>Sstrutt: Added Bash category and Meta</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_User_Backup&amp;diff=2052&amp;oldid=prev"/>
		<updated>2012-07-11T11:33:55Z</updated>

		<summary type="html">&lt;p&gt;Added Bash category and Meta&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:33, 11 July 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l219&quot;&gt;Line 219:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 219:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Zimbra]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Zimbra]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Bash]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=Zimbra_FOSS_User_Backup&amp;diff=1860&amp;oldid=prev</id>
		<title>Sstrutt: Added &quot;Needs lftp&quot; note</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_User_Backup&amp;diff=1860&amp;oldid=prev"/>
		<updated>2012-04-23T08:17:54Z</updated>

		<summary type="html">&lt;p&gt;Added &amp;quot;Needs lftp&amp;quot; note&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:17, 23 April 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;My script is still a work in progress, but so far I&amp;#039;ve made the following modifications&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;My script is still a work in progress, but so far I&amp;#039;ve made the following modifications&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Added ability to FTP backup&amp;#039;s off to remote server&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Added ability to FTP backup&amp;#039;s off to remote server&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** Requires [http://lftp.yar.ru/ &amp;lt;code&amp;gt;lftp&amp;lt;/code&amp;gt;], install with &amp;lt;code&amp;gt;apt-get lftp&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Added logging output to end of script email&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Added logging output to end of script email&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=Zimbra_FOSS_User_Backup&amp;diff=1792&amp;oldid=prev</id>
		<title>Sstrutt: Initial creation</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_User_Backup&amp;diff=1792&amp;oldid=prev"/>
		<updated>2012-04-04T09:51:20Z</updated>

		<summary type="html">&lt;p&gt;Initial creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The following script is a modified version of one that can found on the Zimbra Forum here by LHammonds - http://www.zimbra.com/forums/installation/53227-my-notes-installing-zimbra-7-1-3-ubuntu-server-10-04-3-lts-2.html#post230528. The post in general is effectively a start to finish account of getting Zimbra FOSS up and running in an enterprise environment.  Its well worth browsing through the whole chain, it covers everything!&lt;br /&gt;
&lt;br /&gt;
My script is still a work in progress, but so far I&amp;#039;ve made the following modifications&lt;br /&gt;
* Added ability to FTP backup&amp;#039;s off to remote server&lt;br /&gt;
* Added logging output to end of script email&lt;br /&gt;
&lt;br /&gt;
The script performs an &amp;#039;&amp;#039;&amp;#039;online&amp;#039;&amp;#039;&amp;#039; backup of all user accounts, which you can perform daily (or even more frequently), and maybe perform a [[Zimbra_FOSS_Full_Backup|full offline backup]] weekly or monthly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
########################################################################&lt;br /&gt;
# Name          : zm-user-backup.sh&lt;br /&gt;
# Version       : 0.2&lt;br /&gt;
# Date          : 2011-10-29&lt;br /&gt;
# Author        : LHammonds&lt;br /&gt;
# Modifier      : SStrutt&lt;br /&gt;
# Compatibility : Ubuntu 10.04.3 LTS, Zimbra 7.1.2 - 7.1.3&lt;br /&gt;
# Purpose       : Backup individual mailbox accounts.&lt;br /&gt;
# Exit Codes    : (if multiple errors, value is the addition of codes)&lt;br /&gt;
#   0 = success&lt;br /&gt;
#   1 = failure&lt;br /&gt;
################ CHANGE LOG ##########################################&lt;br /&gt;
# DATE       WHO WHAT WAS CHANGED&lt;br /&gt;
# ---------- --- ----------------------------&lt;br /&gt;
# 2011-10-23 LTH Created script.&lt;br /&gt;
# 2011-10-29 LTH Various improvements. (yes, I forgot what)&lt;br /&gt;
# 2012-03-01 SSS Added remote FTPS option (requires lftp, backup retained locally for 5 days)&lt;br /&gt;
#		 Updated logging to log to email,&lt;br /&gt;
#####################################################################&lt;br /&gt;
# TO DO !!&lt;br /&gt;
# Add time-out to lftp command&lt;br /&gt;
# Improve error detection/handling around user export&lt;br /&gt;
# Add mechanism to allow monitoring of sucess.failure by Nagios&lt;br /&gt;
&lt;br /&gt;
# Email notification options&lt;br /&gt;
EMAILFROM=&amp;quot;admin@domain.com&amp;quot;&lt;br /&gt;
EMAILTO=&amp;quot;someone@domain.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Email account NOT to backup&lt;br /&gt;
EXCEPTIONS=&amp;quot;spam.t1ml2qhoo@domain.com;ham.w5adcmdphn@domain.com;virus-quarantine.lzab8c2m_@domain.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Paths and file defs, probably nothing for you to change&lt;br /&gt;
TEMPDIR=&amp;quot;/backup&amp;quot;&lt;br /&gt;
LOGFILE=&amp;quot;${TEMPDIR}/zm-user-backup.log&amp;quot;&lt;br /&gt;
SOURCEDIR=&amp;quot;/opt/zimbra&amp;quot;&lt;br /&gt;
TARGETDIR=&amp;quot;${TEMPDIR}/zmusers&amp;quot;&lt;br /&gt;
ARCHIVEFILE=&amp;quot;`date +%Y-%m-%d_%H-%M`_zmusers.tar&amp;quot;&lt;br /&gt;
MAILFILE=&amp;quot;${TEMPDIR}/zm-user-backup-mail.$$&amp;quot;&lt;br /&gt;
MAILLOG=&amp;quot;${TEMPDIR}/zm-user-backup-mail-log.$$&amp;quot;&lt;br /&gt;
FTPLOG=&amp;quot;${TEMPDIR}/zm-user-backup-ftp-log.$$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Remote NFS mount&lt;br /&gt;
REMOTESITE=&amp;quot;/mnt/zmbackup&amp;quot;&lt;br /&gt;
REMOTETESTFILE=&amp;quot;${REMOTESITE}/online.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Remote FTPS server&lt;br /&gt;
FTP=&amp;quot;yes&amp;quot;				# To FTP or not to FTP, if no, copy to NFS will be performed&lt;br /&gt;
FTPSERVER=&amp;quot;ftp.domain.com&amp;quot;		# FTP server to copy backup to&lt;br /&gt;
FTPUSER=&amp;quot;backup&amp;quot;			# FTP account username&lt;br /&gt;
FTPPASS=&amp;quot;backup&amp;quot;			# FTP account password&lt;br /&gt;
FTPDIR=&amp;quot;/backups/mail&amp;quot;			# Directory on FTP server to place backup into&lt;br /&gt;
&lt;br /&gt;
# Nothing to change here, move along&lt;br /&gt;
HOSTNAME=$(hostname -f)&lt;br /&gt;
SCRIPTNAME=${0}&lt;br /&gt;
RETURNVALUE=0&lt;br /&gt;
UCOUNT=0&lt;br /&gt;
ERRORFLAG=0&lt;br /&gt;
&lt;br /&gt;
#######################################&lt;br /&gt;
##            FUNCTIONS              ##&lt;br /&gt;
#######################################&lt;br /&gt;
&lt;br /&gt;
function f_sendmail()&lt;br /&gt;
{&lt;br /&gt;
  # Purpose: Send email message.&lt;br /&gt;
  # Parameter #1 = Subject&lt;br /&gt;
  # Parameter #2 = Body&lt;br /&gt;
  echo &amp;quot;From: ${EMAILFROM}&amp;quot; &amp;gt; ${MAILFILE}&lt;br /&gt;
  echo &amp;quot;To: ${EMAILTO}&amp;quot; &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  echo &amp;quot;Subject: ${1}&amp;quot; &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  echo ${2} &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  cat ${MAILLOG} &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  cat ${FTPLOG} &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  echo &amp;quot;Server: ${HOSTNAME}, Program: ${SCRIPTNAME}&amp;quot; &amp;gt;&amp;gt; ${MAILFILE}&lt;br /&gt;
  ${SOURCEDIR}/postfix/sbin/sendmail -t &amp;lt; ${MAILFILE}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function f_cleanup()&lt;br /&gt;
{&lt;br /&gt;
  rm ${MAILFILE}&lt;br /&gt;
  rm ${MAILLOG}&lt;br /&gt;
  rm ${FTPLOG}&lt;br /&gt;
  # Remove backup&amp;#039;s older then 5 days&lt;br /&gt;
  find ${TEMPDIR}/*.tar -mtime +5 -exec rm {} \;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function f_log()&lt;br /&gt;
{&lt;br /&gt;
  # Handles logging of messages&lt;br /&gt;
  # Parameter #1 = Log Message&lt;br /&gt;
  STAMP=`date &amp;#039;+%Y-%m-%d %H:%M:%S&amp;#039;`&lt;br /&gt;
  echo &amp;quot;${STAMP} ${1}&amp;quot;&lt;br /&gt;
  echo &amp;quot;${STAMP} ${1}&amp;quot; &amp;gt;&amp;gt; ${LOGFILE}&lt;br /&gt;
  echo &amp;quot;${STAMP} ${1}&amp;quot; &amp;gt;&amp;gt; ${MAILLOG}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#######################################&lt;br /&gt;
##           MAIN PROGRAM            ##&lt;br /&gt;
#######################################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;---------------------------------------------------&amp;quot; &amp;gt;&amp;gt; ${LOGFILE}&lt;br /&gt;
f_log &amp;quot;- zm user backup started.&amp;quot;&lt;br /&gt;
if [ -d &amp;quot;${TARGETDIR}&amp;quot; ]; then&lt;br /&gt;
  # Purge existing archives.&lt;br /&gt;
  rm ${TARGETDIR}/*.tgz 1&amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
else&lt;br /&gt;
  # Make the folder if it does not exist.&lt;br /&gt;
  mkdir -p ${TARGETDIR} 1&amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
fi&lt;br /&gt;
f_log &amp;quot;-- Getting list of user accounts&amp;quot;&lt;br /&gt;
for ACCT in `su - zimbra -c &amp;quot;zmprov -l gaa&amp;quot;`&lt;br /&gt;
do&lt;br /&gt;
  # Check to see if current account should be skipped.&lt;br /&gt;
  if echo &amp;quot;${EXCEPTIONS}&amp;quot; | grep -q ${ACCT}&lt;br /&gt;
  then&lt;br /&gt;
    # Exception found, skip this account.&lt;br /&gt;
    echo &amp;quot;&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
  else&lt;br /&gt;
    # Backup user account.&lt;br /&gt;
    UCOUNT=$((UCOUNT+1))&lt;br /&gt;
    f_log &amp;quot;--- Backing up user ${ACCT}&amp;quot;&lt;br /&gt;
    ${SOURCEDIR}/bin/zmmailbox -z -m ${ACCT} getRestURL &amp;quot;//?fmt=tgz&amp;quot; &amp;gt; ${TARGETDIR}/${ACCT}.tgz&lt;br /&gt;
    RETURNVALUE=$?&lt;br /&gt;
    if [ ! ${RETURNVALUE} -eq 0 ]; then&lt;br /&gt;
      # Something went wrong.&lt;br /&gt;
      f_log &amp;quot;---- Error on ${ACCT}, exit code ${RETURNVALUE}&amp;quot;&lt;br /&gt;
      ERRORFLAG=$((ERRORFLAG+1))&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
f_log &amp;quot;-- ${UCOUNT} accounts processed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Comment out the below line if you do not want to receive statistic emails.&lt;br /&gt;
#f_sendmail &amp;quot;Zimbra User Mailbox Backup&amp;quot; &amp;quot;${UCOUNT} accounts backed up.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
f_log &amp;quot;--- Setting file permissions on ${TARGETDIR}/*.tgz&amp;quot;&lt;br /&gt;
chmod 0600 ${TARGETDIR}/*.tgz&lt;br /&gt;
f_log &amp;quot;--- Creating a single archive ${TEMPDIR}/${ARCHIVEFILE}&amp;quot;&lt;br /&gt;
tar -cf ${TEMPDIR}/${ARCHIVEFILE} ${TARGETDIR} 1&amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
RETURNVALUE=$?&lt;br /&gt;
if [ ! &amp;quot;${RETURNVALUE}&amp;quot; -eq &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
  # Something went wrong.&lt;br /&gt;
  f_log &amp;quot;--- Error creating ${TEMPDIR}/${ARCHIVEFILE}, Return Value: ${RETURNVALUE}&amp;quot;&lt;br /&gt;
  ERRORFLAG=$((ERRORFLAG+1))&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$FTP&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
then&lt;br /&gt;
        # Do FTPS copy to FTP site&lt;br /&gt;
        f_log &amp;quot;-- Starting FTPS copy to ${FTPSERVER}&amp;quot;&lt;br /&gt;
        lftp -u ${FTPUSER},${FTPPASS} -e &amp;quot;set ftp:ssl-force true,ftp:ssl-protect-data true,net:max-retries 5; cd ${FTPDIR}; put ${TEMPDIR}/${ARCHIVEFILE}; exit&amp;quot; ${FTPSERVER}&lt;br /&gt;
        RETURNVALUE=$?&lt;br /&gt;
        if [ &amp;quot;${RETURNVALUE}&amp;quot; == &amp;quot;0&amp;quot; ]&lt;br /&gt;
        then&lt;br /&gt;
                f_log &amp;quot;--- FTPS upload completed successfully&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                f_log &amp;quot;--- FTPS upload FAILED, exit code ${RETURNVALUE}&amp;quot;&lt;br /&gt;
                ERRORFLAG=$((ERRORFLAG+1))&lt;br /&gt;
        fi&lt;br /&gt;
else&lt;br /&gt;
        # Do copy to remote file store&lt;br /&gt;
&lt;br /&gt;
        if [ -f ${TEMPDIR}/${ARCHIVEFILE} ]; then&lt;br /&gt;
          # Copy archive to remote site.&lt;br /&gt;
          if [ -f ${REMOTETESTFILE} ]; then&lt;br /&gt;
            # Remote site is online / available.&lt;br /&gt;
            cp ${TEMPDIR}/${ARCHIVEFILE} ${REMOTESITE}/${ARCHIVEFILE} 1&amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
          else&lt;br /&gt;
            # Remote site is offline / unavailable.&lt;br /&gt;
            f_log &amp;quot;--- Error: Remote site is unavailable: ${REMOTESITE}&amp;quot;&lt;br /&gt;
            ERRORFLAG=$((ERRORFLAG+1))&lt;br /&gt;
          fi&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
        if [ -f ${REMOTESITE}/${ARCHIVEFILE} ]; then&lt;br /&gt;
          # Remote copy worked.  Remove local archive.&lt;br /&gt;
          rm ${TEMPDIR}/${ARCHIVEFILE}&lt;br /&gt;
&lt;br /&gt;
          # Uncomment the following 2 lines if you do not wish to have a local copy of individual mailboxes.&lt;br /&gt;
          #rm ${TARGETDIR}/*.tgz&lt;br /&gt;
          #rmdir ${TARGETDIR}&lt;br /&gt;
        else&lt;br /&gt;
          # Remote copy failed.&lt;br /&gt;
          f_log &amp;quot;--- Error creating ${TEMPDIR}/${ARCHIVEFILE}, Return Value: ${RETURNVALUE}&amp;quot;&lt;br /&gt;
          ERRORFLAG=$((ERRORFLAG+1))&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
f_log &amp;quot;- zm user backup complete. exit code: ${ERRORFLAG}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;${ERRORFLAG}&amp;quot; -ne &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
  f_sendmail &amp;quot;Zimbra Mailbox Backup Error - ${HOSTNAME}&amp;quot; &amp;quot;${ERRORFLAG} errors detected in ${HOSTNAME} ${SCRIPTNAME}&amp;quot;&amp;lt;${MAILLOG}&lt;br /&gt;
else&lt;br /&gt;
  f_sendmail &amp;quot;Zimbra User Mailbox Backup - ${HOSTNAME}&amp;quot; &amp;quot;${UCOUNT} accounts backed up.&amp;quot;&amp;lt;${MAILLOG}&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Perform cleanup routine.&lt;br /&gt;
f_cleanup&lt;br /&gt;
# Exit with the combined return code value.&lt;br /&gt;
exit ${ERRORFLAG}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Zimbra]]&lt;/div&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
</feed>