<?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_Full_Backup</id>
	<title>Zimbra FOSS Full 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_Full_Backup"/>
	<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_Full_Backup&amp;action=history"/>
	<updated>2026-04-19T04:08:38Z</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_Full_Backup&amp;diff=1793&amp;oldid=prev</id>
		<title>Sstrutt: Added link to user only backup</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_Full_Backup&amp;diff=1793&amp;oldid=prev"/>
		<updated>2012-04-04T09:52:28Z</updated>

		<summary type="html">&lt;p&gt;Added link to user only backup&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 09:52, 4 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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The following script is a modified version of one that can found on the Zimbra Forum here - http://www.zimbra.com/forums/administrators/15275-solved-yet-another-backup-script-community-version.html.  I&#039;ve...&lt;/div&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;The following script is a modified version of one that can found on the Zimbra Forum here - http://www.zimbra.com/forums/administrators/15275-solved-yet-another-backup-script-community-version.html&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.  It performs a full (offline) backup of your whole Zimbra installation&lt;/ins&gt;.  I&#039;ve...&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;* Changed some of the logging (added timestamps, reduced verbosity)&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;* Changed some of the logging (added timestamps, reduced verbosity)&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 FTP option so that backup&amp;#039;s can be FTP&amp;#039;ed off&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 FTP option so that backup&amp;#039;s can be FTP&amp;#039;ed off&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;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See [[Zimbra#Backup|Zimbra Backup]] for a bit of guidance on how to run.&lt;/div&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;See [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Procedures_(&lt;/ins&gt;Zimbra&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;#Backup|Zimbra Backup]] for a bit of guidance on how to run&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, and see [[Zimbra FOSS User Backup]] for how to perform an online, user only backup&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;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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;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_Full_Backup&amp;diff=1700&amp;oldid=prev</id>
		<title>Sstrutt: Minor rewording</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_Full_Backup&amp;diff=1700&amp;oldid=prev"/>
		<updated>2012-02-08T22:06:19Z</updated>

		<summary type="html">&lt;p&gt;Minor rewording&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 22:06, 8 February 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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The following script is a modified one that can found &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;from &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;following &lt;/del&gt;Zimbra Forum &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;item &lt;/del&gt;- http://www.zimbra.com/forums/administrators/15275-solved-yet-another-backup-script-community-version.html.  See [[Zimbra#Backup|Zimbra Backup]] for a bit of guidance on how to run.&lt;/div&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;The following script is a modified &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;version of &lt;/ins&gt;one that can found &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;on &lt;/ins&gt;the Zimbra Forum &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;here &lt;/ins&gt;- http://www.zimbra.com/forums/administrators/15275-solved-yet-another-backup-script-community-version.html.  &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I&#039;ve...&lt;/ins&gt;&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;* Changed some of the logging (added timestamps, reduced verbosity)&lt;/ins&gt;&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;* Added FTP option so that backup&#039;s can be FTP&#039;ed off&lt;/ins&gt;&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;/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;See [[Zimbra#Backup|Zimbra Backup]] for a bit of guidance on how to run.&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;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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;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_Full_Backup&amp;diff=1515&amp;oldid=prev</id>
		<title>Sstrutt: Added categories</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=Zimbra_FOSS_Full_Backup&amp;diff=1515&amp;oldid=prev"/>
		<updated>2011-11-08T07:56:12Z</updated>

		<summary type="html">&lt;p&gt;Added categories&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 07:56, 8 November 2011&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-l960&quot;&gt;Line 960:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 960:&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;exit 0&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;exit 0&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;&amp;lt;/source&amp;gt;&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;&amp;lt;/source&amp;gt;&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;&lt;/ins&gt;&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:Zimbra]]&lt;/ins&gt;&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_Full_Backup&amp;diff=1514&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_Full_Backup&amp;diff=1514&amp;oldid=prev"/>
		<updated>2011-11-08T07:51:22Z</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 one that can found from the following Zimbra Forum item - http://www.zimbra.com/forums/administrators/15275-solved-yet-another-backup-script-community-version.html.  See [[Zimbra#Backup|Zimbra Backup]] for a bit of guidance on how to run.&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;
## *** Info ***&lt;br /&gt;
# VERSION:  .0.8 alpha, proposed 1/3/2010&lt;br /&gt;
#		- fix EMAILCC bug&lt;br /&gt;
#		- make -V work as advertised&lt;br /&gt;
#		- update version output for accuracy&lt;br /&gt;
#		- use full date stamp in backup log rather than only time&lt;br /&gt;
#		- add trailing / to default TO_MEDIA_DIR as advised in comment&lt;br /&gt;
#           SSS - Modified by Simon Strutt 2010/12/09&lt;br /&gt;
#			- Added FTP functionality &lt;br /&gt;
#		- Further modified 2011/03/02&lt;br /&gt;
#			- Changed logging (added timestamps, reduced verbosity)&lt;br /&gt;
# USAGE:    -h or --help for help &amp;amp; usage.&lt;br /&gt;
#           -f or --full for Full backup.&lt;br /&gt;
#           -d or --diff for Diff backup.&lt;br /&gt;
#           -V or --version for version info.&lt;br /&gt;
#           --INSTALL	 for script install and setup.&lt;br /&gt;
#&lt;br /&gt;
# This is a backup script for the FOSS version of Zimbra mail server.&lt;br /&gt;
# The script is free and open source and for use by anyone who can find a use for it.&lt;br /&gt;
#&lt;br /&gt;
# THIS SCRIPT IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
# ``AS IS&amp;#039;&amp;#039; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
# A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT&lt;br /&gt;
# HOLDERS AND/OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;br /&gt;
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;br /&gt;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED&lt;br /&gt;
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,&lt;br /&gt;
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF&lt;br /&gt;
# THE USE OF THIS DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
#&lt;br /&gt;
# CONTRIBUTORS:&lt;br /&gt;
# heinzg of osoffice.de (original author)&lt;br /&gt;
# Quentin Hartman of Concentric Sky, qhartman[AT]concentricsky.com (refactor and cleanup)&lt;br /&gt;
# Vincent Sherwood of IT Solutions Ltd., vincents[AT]itsolutions.ie (bugfix and addons)&lt;br /&gt;
# Patrick Bennett of PEB Consulting, patrick[AT]pebcomputing.com&lt;br /&gt;
# Simon Strutt of SandfordIT Ltd., simon[AT]sandfordit.com&lt;br /&gt;
#&lt;br /&gt;
# What this script does:&lt;br /&gt;
# 1. Makes daily off-line backups, at a service downtime of ~ &amp;lt; 2 min.&lt;br /&gt;
# 2. Weekly backup cycle - 1 full backup &amp;amp; 6 diffs.&lt;br /&gt;
# 3. Predefined archive sizes, for writing backups to CD or DVD media...&lt;br /&gt;
# 4. Backup archive compression.&lt;br /&gt;
# 5. Backup archive encryption.&lt;br /&gt;
# 6. Backup archive integrity checks and md5 checksums creation.&lt;br /&gt;
# 7. Automated DR - Off-site copy of backup archives via ssh.&lt;br /&gt;
# 8. Install and setup function for needed software (Ubuntu Systems only)&lt;br /&gt;
# 9. Weekly eMail report &amp;amp; eMail on error - including CC address.&lt;br /&gt;
#&lt;br /&gt;
# This script makes use of following tools:&lt;br /&gt;
# apt-get, cron, dar, dpkg, mailx, md5sum, rsync, ssh, uuencode, wget, zimbra mta.&lt;br /&gt;
#&lt;br /&gt;
# We have opted to use a pre-sync directory to save on &amp;quot;down time&amp;quot;, but this &lt;br /&gt;
# causes one to have huge additional space usage.&lt;br /&gt;
# But hard drives are cheep today!&lt;br /&gt;
#&lt;br /&gt;
# What is still to come or needs work on:&lt;br /&gt;
# 1. Recovery option&lt;br /&gt;
# 2. Better documentation&lt;br /&gt;
&lt;br /&gt;
##------- CONFIG -------#&lt;br /&gt;
# Edit this part of the script to fit your needs.&lt;br /&gt;
&lt;br /&gt;
#--- Directories ---#&lt;br /&gt;
# Please add the trailing &amp;quot;/&amp;quot; to directories!&lt;br /&gt;
ZM_HOME=/opt/zimbra/			# where zimbra lives&lt;br /&gt;
SYNC_DIR=/tmp/fakebackup/		# intermediate dir for hot/cold syncs. must have at least as much free space as ZM_HOME consumes&lt;br /&gt;
ARCHIVEDIR=/Backup/zimbra_dars/		# where to store final backups&lt;br /&gt;
TO_MEDIA_DIR=/Backup/burn/&lt;br /&gt;
&lt;br /&gt;
#--- PROGRAM OPTIONS ---# &lt;br /&gt;
RSYNC_OPTS=&amp;quot;-aHK --delete --exclude=*.pid&amp;quot; # leave these unless you are sure you need something else&lt;br /&gt;
&lt;br /&gt;
#--- ARCHIVE NAMES ---#&lt;br /&gt;
BACKUPNAME=&amp;quot;ZimbraBackup&amp;quot;		# what you want your backups called&lt;br /&gt;
FULL_PREFIX=&amp;quot;FULL&amp;quot;			# prefix used for full backups&lt;br /&gt;
DIFF_PREFIX=&amp;quot;DIFF&amp;quot;			# prefix used for differential backups&lt;br /&gt;
BACKUPDATE=`date +%Y%m%d`		# date format used in archive names&lt;br /&gt;
# BACKUPWEEK=`date +%W`  		# Week prefix used for backup weekly rotation and naming&lt;br /&gt;
# VJS - Commented out above, and added below to allow Weekly baseline to be any day of week.&lt;br /&gt;
#          Needs full set of tests to be run, including archiving old weeks data, etc.&lt;br /&gt;
BACKUPWEEKFILE=&amp;quot;/opt/zimbra/backup.week&amp;quot;&lt;br /&gt;
case $1 in&lt;br /&gt;
-f | --full)&lt;br /&gt;
date +%W &amp;gt; $BACKUPWEEKFILE&lt;br /&gt;
;;&lt;br /&gt;
-d | --diff)&lt;br /&gt;
    if [ ! -e &amp;quot;$BACKUPWEEKFILE&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo Backup Week identifier file &amp;quot;$BACKUPWEEKFILE&amp;quot; not found !&lt;br /&gt;
        echo You must run a FULL backup before a DIFF backup&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
BACKUPWEEK=`cat $BACKUPWEEKFILE`        # Week prefix used for backup weekly rotation and naming&lt;br /&gt;
&lt;br /&gt;
#--- ARCHIVE SIZE ---#&lt;br /&gt;
ARCHIVESIZE=&amp;quot;4395M&amp;quot;			# storage media size, for full-backup archiving&lt;br /&gt;
# VJS - Uncomment next line for testing multi-DAR scenario on small mail store.&lt;br /&gt;
#ARCHIVESIZE=&amp;quot;50M&amp;quot;			# storage media size, for full-backup archiving&lt;br /&gt;
COMPRESS=&amp;quot;9&amp;quot;				# valid answers are 1 - 9 ( 9 = best )&lt;br /&gt;
&lt;br /&gt;
#--- Encryption Options ---#&lt;br /&gt;
# !! !!! !!! CRYPT is a legacy option and should best not be used for future compatibility !!! !!! !!&lt;br /&gt;
CRYPT=&amp;quot;no&amp;quot;				# valid answers are &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot; BEST IS LEFT AS IS&lt;br /&gt;
PASSDIR=/etc/`basename $0`/ 		# the directory the encryption hash is stored in. &lt;br /&gt;
PASSFILE=&amp;quot;noread&amp;quot;			# the file containing the password hash&lt;br /&gt;
&lt;br /&gt;
#--- Log Settings ---#&lt;br /&gt;
EMAIL=&amp;quot;admin@domain.com&amp;quot;		# the address to send logs to&lt;br /&gt;
# VJS - Added CC email to avoid errors sending report&lt;br /&gt;
EMAILCC=&amp;quot;admin2@domain.com&amp;quot;		# another address to send to, blank for none&lt;br /&gt;
LOG=&amp;quot;/var/log/zim_backup.log&amp;quot;		# log location&lt;br /&gt;
# VJS - Added chewitt suggestion for optional listing on report email&lt;br /&gt;
ATTACHLIST=&amp;quot;no&amp;quot;				# attach backup file or not?&lt;br /&gt;
# VJS - Added FILTERLIST to remove all except changed or removed files from the listing&lt;br /&gt;
FILTERLIST=&amp;quot;yes&amp;quot;  			# Answer &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot; - &amp;quot;no&amp;quot; lists everything. &amp;quot;yes&amp;quot; filters out unchanged files.&lt;br /&gt;
&lt;br /&gt;
#--- SSH REMOTE DR COPY ---#&lt;br /&gt;
# This option will secure copy your archives to a remote server via &amp;#039;scp&amp;#039;&lt;br /&gt;
DRCP=&amp;quot;no&amp;quot;				# valid answers are &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot; &lt;br /&gt;
SSHUSER=&amp;quot;you&amp;quot;				# recommend creating a user on the remote machine just for transferring backups	&lt;br /&gt;
SSHKEY=&amp;quot;rsa&amp;quot;				# recommended answers are &amp;quot;rsa&amp;quot; or &amp;quot;dsa&amp;quot; but &amp;quot;rsa1&amp;quot; is also valid.&lt;br /&gt;
REMOTEHOST=&amp;quot;remote.server.fqdn&amp;quot;		# can use IP too&lt;br /&gt;
REMOTEDIR=&amp;quot;/tmp/&amp;quot;			# where you want your backups saved.&lt;br /&gt;
&lt;br /&gt;
#--- FTP REMOTE DR COPY ---#&lt;br /&gt;
# SSS - The options allows FTP&amp;#039;ing to a remote FTP server(!)&lt;br /&gt;
DRFTP=&amp;quot;yes&amp;quot;				# Yes to enable, anything else not to&lt;br /&gt;
FTPSERVER=&amp;quot;ftp.domain.local&amp;quot;&lt;br /&gt;
FTPUSER=&amp;quot;backup-user&amp;quot;&lt;br /&gt;
FTPPASS=&amp;quot;backup-pass&amp;quot;&lt;br /&gt;
FTPDIR=&amp;quot;/Backup/app-mail&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#--- Use Hacks? ---#&lt;br /&gt;
# Built in hacks to fix common problems&lt;br /&gt;
#Hack to start Stats, even run zmlogprocess if needed&lt;br /&gt;
STATHACK=&amp;quot;yes&amp;quot; 				# valid answers are &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## ~~~~~!!!! SCRIPT RUNTIME !!!!!~~~~~ ##&lt;br /&gt;
# Best you don&amp;#039;t change anything from here on, &lt;br /&gt;
# ONLY EDIT IF YOU KNOW WHAT YOU ARE DOING&lt;br /&gt;
&lt;br /&gt;
ROOT_UID=0&lt;br /&gt;
if [ &amp;quot;$UID&amp;quot; -ne &amp;quot;$ROOT_UID&amp;quot; ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Run script as &amp;quot;root&amp;quot;.&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
	&lt;br /&gt;
# Static Variables and other setup&lt;br /&gt;
&lt;br /&gt;
# Find absolute paths of required binaries&lt;br /&gt;
DAR_BIN=`whereis dar | awk &amp;#039;{print $2}&amp;#039;`&lt;br /&gt;
MAILX_BIN=`whereis mailx | awk &amp;#039;{print $2}&amp;#039;`&lt;br /&gt;
RSYNC_BIN=`whereis rsync | awk &amp;#039;{print $2}&amp;#039;`&lt;br /&gt;
SSH_BIN=`whereis ssh | awk &amp;#039;{print $2}&amp;#039;`&lt;br /&gt;
MD5SUM_BIN=`whereis md5sum | awk &amp;#039;{print $2}&amp;#039;`&lt;br /&gt;
UUENCODE_BIN=`whereis uuencode | awk &amp;#039;{print $2}&amp;#039;`&lt;br /&gt;
FTP_BIN=`whereis ftp | awk &amp;#039;{print $2}&amp;#039;`&lt;br /&gt;
&lt;br /&gt;
STATPIDBASE=&amp;quot;$ZM_HOME&amp;quot;&amp;quot;zmstat/pid/&amp;quot; 	# Location of Zimbra&amp;#039;s PID files&lt;br /&gt;
touch $LOG 				# Create log file&lt;br /&gt;
HOSTNAME=`hostname --fqdn` 		# Set hostname&lt;br /&gt;
STARTTIME=(`date +%s`) 			# Script Timer start&lt;br /&gt;
&lt;br /&gt;
# Set mail function CC address - if not null, add &amp;quot;-c&amp;quot; cmd switch&lt;br /&gt;
if [ -n &amp;quot;$EMAILCC&amp;quot; ]; then&lt;br /&gt;
        EMAILCC=&amp;quot;-c $EMAILCC&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
### Functions ###&lt;br /&gt;
&lt;br /&gt;
function mail_log {&lt;br /&gt;
	cat $LOG | mail $EMAILCC -s &amp;quot;Zimbra backup error on $HOSTNAME&amp;quot; $EMAIL&lt;br /&gt;
	if [ &amp;quot;$2&amp;quot; = &amp;quot;down&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
		cat $LOG | mail $EMAILCC -s &amp;quot;Zimbra Down on $HOSTNAME&amp;quot; $EMAIL&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function config_fail {&lt;br /&gt;
	 echo &amp;quot;Please check script Config, and try again&amp;quot;&lt;br /&gt;
	 exit 1&lt;br /&gt;
}	    &lt;br /&gt;
&lt;br /&gt;
function install_fail {&lt;br /&gt;
	 echo &amp;quot;Had a problem installing $1, please ask for help in the forums&amp;quot;&lt;br /&gt;
	 exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function check_req_bin {&lt;br /&gt;
	if [ ! -e &amp;quot;$1&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
    	echo &amp;quot;Please install &amp;quot;`echo $1 | awk -F / &amp;#039;{print $NF}&amp;#039;`&amp;quot;!&amp;quot;&lt;br /&gt;
	echo &amp;quot;Try running the script with --INSTALL&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function check_req_dir {&lt;br /&gt;
	if [ ! -d $1 ]&lt;br /&gt;
    then&lt;br /&gt;
   	echo &amp;quot;Required directory $1 not found!&amp;quot;&lt;br /&gt;
   	if [ &amp;quot;$2&amp;quot; = &amp;quot;create&amp;quot; ]&lt;br /&gt;
   	then&lt;br /&gt;
   		echo&lt;br /&gt;
        echo &amp;quot;$REQ_DIR not found!&amp;quot;&lt;br /&gt;
		echo -n &amp;quot;Create $REQ_DIR &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
		read ANSWER&lt;br /&gt;
		if [ &amp;quot;$ANSWER&amp;quot; = &amp;quot;y&amp;quot; ]&lt;br /&gt;
		then&lt;br /&gt;
	    	mkdir -vp -m 600 $REQ_DIR&lt;br /&gt;
		else&lt;br /&gt;
	    	config_fail&lt;br /&gt;
	    fi&lt;br /&gt;
	else    	&lt;br /&gt;
		mail_log&lt;br /&gt;
		exit 1&lt;br /&gt;
    fi&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function do_install {&lt;br /&gt;
	# Check for configured Directories and Create them if needed&lt;br /&gt;
	for REQ_DIR in $SYNC_DIR $ARCHIVEDIR $TO_MEDIA_DIR&lt;br /&gt;
	do&lt;br /&gt;
    	check_req_dir $REQ_DIR create&lt;br /&gt;
	done&lt;br /&gt;
	&lt;br /&gt;
    # Check for needed software or try install it&lt;br /&gt;
&lt;br /&gt;
    if [ ! -e &amp;quot;$MAILX_BIN&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
    	echo&lt;br /&gt;
	echo &amp;quot;&amp;#039;mailx&amp;#039; is not installed!&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;For a &amp;quot;Howto&amp;quot; install mailx without postfix please visit the link below&amp;quot;&lt;br /&gt;
	echo &amp;quot;http://www.zimbra.com/forums/administrators/13528-sending-email-comand-line-logwatch-ubuntu-6-06-a.html#post70636&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;Should I &amp;quot;try&amp;quot; install this for you?&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;!! Only say yes if you are running Ubuntu!!&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
	read ANSWER&lt;br /&gt;
	if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
            echo&lt;br /&gt;
	    echo &amp;quot;Downloading &amp;quot;mta-dummy&amp;quot; package to &amp;quot;/tmp&amp;quot;&amp;quot;&lt;br /&gt;
	    cd /tmp&lt;br /&gt;
	    wget -v -S -c -t 40 --random-wait -T 60 http://ubuntu.lnix.net/misc/mta-dummy/mta-dummy_1.0_all.deb&lt;br /&gt;
	    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	    then&lt;br /&gt;
            install_fail mta-dummy&lt;br /&gt;
	    fi&lt;br /&gt;
        echo&lt;br /&gt;
        dpkg -i mta-dummy_1.0_all.deb&lt;br /&gt;
        if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
        then&lt;br /&gt;
            install_fail mta-dummy&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
        echo&lt;br /&gt;
        apt-get -y install mailx&lt;br /&gt;
        if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
        then&lt;br /&gt;
            install_fail mailx&lt;br /&gt;
        fi&lt;br /&gt;
        echo&lt;br /&gt;
        echo &amp;quot;Writing config file &amp;quot;/etc/mail.rc&amp;quot;&amp;quot;&lt;br /&gt;
	echo &amp;quot;set sendmail=$ZM_HOME&amp;quot;postfix/sbin/sendmail&amp;quot;&amp;quot; &amp;gt;&amp;gt; /etc/mail.rc&lt;br /&gt;
        else&lt;br /&gt;
            echo &amp;quot;This script would like to send you a mail or two... so please install a dummy mta for your Distro&amp;quot;&lt;br /&gt;
	    echo&lt;br /&gt;
	    exit 1&lt;br /&gt;
	fi&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    if [ ! -e &amp;quot;$UUENCODE_BIN&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
    	echo&lt;br /&gt;
	echo &amp;quot;&amp;#039;uuencode&amp;#039; is not installed!&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;Should I &amp;quot;try&amp;quot; install &amp;#039;uuencode&amp;#039; for you?&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;!! Only say yes if you are running Ubuntu!!&amp;quot;&lt;br /&gt;
	echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
	read ANSWER&lt;br /&gt;
	if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    apt-get -y install sharutils&lt;br /&gt;
	    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	    then&lt;br /&gt;
        	install_fail sharutils&lt;br /&gt;
	    fi&lt;br /&gt;
	fi&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    if [ ! -e &amp;quot;$DAR_BIN&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
    	echo&lt;br /&gt;
	echo &amp;quot;&amp;#039;dar&amp;#039; is not installed!&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;Should I &amp;quot;try&amp;quot; install &amp;#039;dar&amp;#039; for you?&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;!! Only say yes if you are running Ubuntu!!&amp;quot;&lt;br /&gt;
	echo &amp;quot;!! You must have Universe enabled or this will fail!!&amp;quot;&lt;br /&gt;
	echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
	read ANSWER&lt;br /&gt;
	if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    apt-get -y install dar&lt;br /&gt;
	    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	    then&lt;br /&gt;
		     install_fail dar&lt;br /&gt;
	    fi&lt;br /&gt;
	fi&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    if [ ! -e &amp;quot;$SSH_BIN&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
    	echo&lt;br /&gt;
	echo &amp;quot;&amp;#039;ssh&amp;#039; is not installed!&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;Should I &amp;quot;try&amp;quot; to install a &amp;#039;ssh client &amp;amp; server&amp;#039; for you?&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;!! Only say yes if you are running Ubuntu!!&amp;quot;&lt;br /&gt;
	echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
	read ANSWER&lt;br /&gt;
	if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    apt-get -y install openssh-server&lt;br /&gt;
	    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	    then&lt;br /&gt;
            install_fail openssh-server&lt;br /&gt;
	    fi&lt;br /&gt;
	fi&lt;br /&gt;
    fi&lt;br /&gt;
    &lt;br /&gt;
    if [ $CRYPT = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
    	if [ ! -d &amp;quot;$PASSDIR&amp;quot; ]&lt;br /&gt;
    	then&lt;br /&gt;
    	    echo &amp;quot;Create $PASSDIR&amp;quot;&lt;br /&gt;
    	    echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
    	    read ANSWER&lt;br /&gt;
	    if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
	    then&lt;br /&gt;
	        mkdir -vp -m 600 $PASSDIR&lt;br /&gt;
	        echo &amp;quot;done&amp;quot;&lt;br /&gt;
	        echo&lt;br /&gt;
	    else    &lt;br /&gt;
	    	config_fail&lt;br /&gt;
	    fi&lt;br /&gt;
	fi&lt;br /&gt;
    fi&lt;br /&gt;
	&lt;br /&gt;
	if [ ! -e &amp;quot;$PASSDIR&amp;quot;&amp;quot;$PASSFILE&amp;quot; ]    &lt;br /&gt;
	then&lt;br /&gt;
    	    echo &amp;quot;Create $PASSFILE&amp;quot;&lt;br /&gt;
    	    echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
    	    read ANSWER&lt;br /&gt;
    	    if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
	    then&lt;br /&gt;
	        touch &amp;quot;$PASSDIR&amp;quot;&amp;quot;$PASSFILE&amp;quot;&lt;br /&gt;
	        chmod 600 &amp;quot;$PASSDIR&amp;quot;&amp;quot;$PASSFILE&amp;quot;&lt;br /&gt;
	        echo &amp;quot;&amp;#039;G&amp;#039;enerate or &amp;#039;E&amp;#039;nter a secure passphrase&amp;quot;&lt;br /&gt;
	        echo -n &amp;quot;please enter G or E: &amp;quot;&lt;br /&gt;
	        read ANSWER&lt;br /&gt;
	        if [ &amp;quot;$ANSWER&amp;quot; = &amp;quot;G&amp;quot; ]&lt;br /&gt;
	        then &lt;br /&gt;
	            openssl rand -base64 48 -out &amp;quot;$PASSDIR&amp;quot;&amp;quot;$PASSFILE&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
	        else&lt;br /&gt;
	            echo -n &amp;quot;Enter a secure passphrase: &amp;quot;&lt;br /&gt;
	            read PASSPHRASE&lt;br /&gt;
	            echo $PASSPHRASE &amp;gt; &amp;quot;$PASSDIR&amp;quot;&amp;quot;$PASSFILE&amp;quot;&lt;br /&gt;
	            echo &amp;quot;done&amp;quot;&lt;br /&gt;
	            echo&lt;br /&gt;
	        fi&lt;br /&gt;
	    else    &lt;br /&gt;
	        config_fail&lt;br /&gt;
	    fi&lt;br /&gt;
	fi&lt;br /&gt;
    &lt;br /&gt;
    echo&lt;br /&gt;
    if [ $DRCP = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
    	echo&lt;br /&gt;
	echo &amp;quot;For &amp;#039;scp&amp;#039; to work, you have to have setup PKI authentication (passwordless login)&amp;quot;&lt;br /&gt;
	echo &amp;quot;Should I try setup this for you?&amp;quot;&lt;br /&gt;
    echo &amp;quot;If PKI authentication is already setup answer &amp;#039;n&amp;#039;&amp;quot;&lt;br /&gt;
	echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
	read ANSWER&lt;br /&gt;
	if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    ssh-copy-id &amp;quot;$SSHUSER&amp;quot;@&amp;quot;$REMOTEHOST&amp;quot;&lt;br /&gt;
	    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	    then&lt;br /&gt;
            	echo &amp;quot;$?&amp;quot;&lt;br /&gt;
		echo -n &amp;quot;Create ssh ID? &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
		read ANSWER&lt;br /&gt;
		    if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
		    then&lt;br /&gt;
		        echo &amp;quot;Please accept the &amp;#039;defaults&amp;#039;and DO NOT ENTER A &amp;#039;passphrase&amp;#039; !!&amp;quot;&lt;br /&gt;
		        ssh-keygen -t &amp;quot;$SSHKEY&amp;quot;&lt;br /&gt;
		        echo&lt;br /&gt;
		        echo &amp;quot;copying your ID to $REMOTEHOST&amp;quot;&lt;br /&gt;
		        echo &amp;quot;please enter your &amp;#039;$SSHUSER&amp;#039; user password on &amp;#039;$REMOTEHOST&amp;#039; at the prompt&amp;quot;&lt;br /&gt;
                    if [ &amp;quot;$SSHKEY&amp;quot; = &amp;quot;rsa&amp;quot; ]&lt;br /&gt;
                    then&lt;br /&gt;
		                ssh-copy-id -i /root/.ssh/id_rsa &amp;quot;$SSHUSER&amp;quot;@&amp;quot;$REMOTEHOST&amp;quot;&lt;br /&gt;
                    elif [ &amp;quot;$SSHKEY&amp;quot; = &amp;quot;dsa&amp;quot; ]&lt;br /&gt;
                    then&lt;br /&gt;
		                ssh-copy-id -i /root/.ssh/id_dsa &amp;quot;$SSHUSER&amp;quot;@&amp;quot;$REMOTEHOST&amp;quot;&lt;br /&gt;
                    elif [ &amp;quot;$SSHKEY&amp;quot; = &amp;quot;rsa1&amp;quot; ]&lt;br /&gt;
                    then&lt;br /&gt;
		            ssh-copy-id -i /root/.ssh/identity &amp;quot;$SSHUSER&amp;quot;@&amp;quot;$REMOTEHOST&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
		    fi&lt;br /&gt;
	    fi&lt;br /&gt;
	fi&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;Install cronjob to automate the nightly backups?&amp;quot;&lt;br /&gt;
    echo -n &amp;quot;install &amp;quot;y&amp;quot; or &amp;quot;n&amp;quot;: &amp;quot;&lt;br /&gt;
    read ANSWER&lt;br /&gt;
    if [ $ANSWER = &amp;quot;y&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo &amp;quot;Setting the time when to start the backup cycle&amp;quot;&lt;br /&gt;
        crontab -l &amp;gt; $HOME/.crontab.save&lt;br /&gt;
        echo -n &amp;quot;At what hour? 0-23: &amp;quot;&lt;br /&gt;
        read HOUR&lt;br /&gt;
	echo&lt;br /&gt;
	echo -n &amp;quot;and what minute do you want the backup to start? 0-59: &amp;quot;&lt;br /&gt;
	read MINUTE&lt;br /&gt;
	echo&lt;br /&gt;
	echo &amp;quot;path to script e.g. /root/scripts&amp;quot;&lt;br /&gt;
	read SPATH&lt;br /&gt;
	echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; $HOME/.crontab.save&lt;br /&gt;
        echo &amp;quot;$MINUTE $HOUR * * 1     /bin/bash     $SPATH/`basename $0` -f &amp;gt; $LOG 2&amp;gt;&amp;amp;1&amp;quot; &amp;gt;&amp;gt; $HOME/.crontab.save&lt;br /&gt;
        echo &amp;quot;$MINUTE $HOUR * * 2-7   /bin/bash     $SPATH/`basename $0` -d &amp;gt;&amp;gt; $LOG 2&amp;gt;&amp;amp;1&amp;quot; &amp;gt;&amp;gt; $HOME/.crontab.save&lt;br /&gt;
        echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; $HOME/.crontab.save&lt;br /&gt;
        crontab $HOME/.crontab.save&lt;br /&gt;
        rm $HOME/.crontab.save&lt;br /&gt;
        echo&lt;br /&gt;
        crontab -l&lt;br /&gt;
        echo&lt;br /&gt;
        echo &amp;quot;Done setting up crontab&amp;quot;&lt;br /&gt;
        echo&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function show_version {&lt;br /&gt;
    echo &lt;br /&gt;
    echo &amp;quot;Version .0.8 alpha&amp;quot;&lt;br /&gt;
    echo &amp;quot;proposed 1/3/2010&amp;quot;&lt;br /&gt;
    echo &amp;quot;first published Feb 08&amp;quot;&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;Change Log January 2010:&amp;quot;&lt;br /&gt;
    echo &amp;quot;- fix EMAILCC bug&amp;quot;&lt;br /&gt;
    echo &amp;quot;- make -V work as advertised&amp;quot;&lt;br /&gt;
    echo &amp;quot;- update version output for accuracy&amp;quot;&lt;br /&gt;
    echo &amp;quot;- use full date stamp in backup log rather than only time&amp;quot;&lt;br /&gt;
    echo &amp;quot;- add trailing / to default TO_MEDIA_DIR as advised in comment&amp;quot;&lt;br /&gt;
    echo &amp;quot;Change Log March 08:&amp;quot;&lt;br /&gt;
    echo &amp;quot;- Use the su command insted if sudo to stop and start services&amp;quot;&lt;br /&gt;
    echo &amp;quot;- Using shutdown insted of stop with zmcontrol&amp;quot;&lt;br /&gt;
    echo &amp;quot;- DATE_VERSION.txt now contains date and version and is created with full backups&amp;quot;&lt;br /&gt;
    echo &amp;quot;- Built in some more checks&amp;quot;&lt;br /&gt;
    echo &amp;quot;- eMail notification on error&amp;quot;&lt;br /&gt;
    echo &amp;quot;- Documentation - Added more comments&amp;quot;&lt;br /&gt;
    echo &amp;quot;- Dar archive is now built from current dir&amp;quot; &lt;br /&gt;
    echo &amp;quot;- Stats hack to make sure stats is starting again&amp;quot; &lt;br /&gt;
    echo &amp;quot;- 260 more lines of code... and who knows how many bugs&amp;quot; &lt;br /&gt;
    echo&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function show_help {&lt;br /&gt;
 echo&lt;br /&gt;
    echo &amp;quot;Configure the &amp;quot;CONFIG&amp;quot; part of the script to suit your needs.&amp;quot;&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;USAGE:    -h or --help for help &amp;amp; usage.&amp;quot;&lt;br /&gt;
    echo &amp;quot;          -f or --full for Full backup.&amp;quot;&lt;br /&gt;
    echo &amp;quot;          -d or --diff for Diff backup.&amp;quot;&lt;br /&gt;
    echo &amp;quot;          --INSTALL    for script install and setup.&amp;quot;&lt;br /&gt;
    echo &lt;br /&gt;
    echo &amp;quot;Usage with cron, e.g.&amp;quot;&lt;br /&gt;
    echo &amp;quot;0 3 * * 1     /bin/bash     /root/zmbac.sh -f &amp;gt; $LOG 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
    echo &amp;quot;0 3 * * 2-7   /bin/bash     /root/zmbac.sh -d &amp;gt;&amp;gt; $LOG 2&amp;gt;&amp;amp;1&amp;quot;&lt;br /&gt;
    echo&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function do_stat_hack {&lt;br /&gt;
		        echo &amp;quot;`date +%X` Running A hack... This one to check and start Stats subsystem&amp;quot;&lt;br /&gt;
		#Checking if Stats is running&lt;br /&gt;
		sleep 5&lt;br /&gt;
		STAT_CK=(`su - &amp;quot;$ZM_USER&amp;quot; -c $ZM_HOME&amp;quot;bin/zmcontrol status&amp;quot; |grep -i stats | awk &amp;#039;{print $2}&amp;#039;`)&lt;br /&gt;
		if [ &amp;quot;$STAT_CK&amp;quot; = &amp;quot;Stopped&amp;quot; ]&lt;br /&gt;
	        then&lt;br /&gt;
                    echo &amp;quot;`date +%X` Stats is not running, thus booting Stats subsystem!&amp;quot;&lt;br /&gt;
                    echo&lt;br /&gt;
                    # Stopping Stats&lt;br /&gt;
		    su - $ZM_USER -c $ZM_HOME&amp;quot;bin/zmstatctl stop&amp;quot; &lt;br /&gt;
                    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
                    then&lt;br /&gt;
                        echo &amp;quot;`date +%X` Stopping stats failed!&amp;quot;&lt;br /&gt;
                    else&lt;br /&gt;
		        echo &amp;quot;`date +%X` Stats have been stopped&amp;quot;&lt;br /&gt;
                        echo&lt;br /&gt;
                    fi&lt;br /&gt;
		&lt;br /&gt;
		    # Running Stats cronjob zmlogprocess manually &lt;br /&gt;
                    su - $ZM_USER -c $ZM_HOME&amp;quot;libexec/zmlogprocess&amp;quot; &amp;gt; /tmp/logprocess.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
                    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
                    then&lt;br /&gt;
                        echo &amp;quot;`date +%X` Error running &amp;#039;logprocess&amp;#039;&amp;quot;&lt;br /&gt;
                    else&lt;br /&gt;
                        echo &amp;quot;`date +%X` Logprocess done...&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
                &lt;br /&gt;
		    # Running Stats cronjob zmqueuelog manually                &lt;br /&gt;
		    su - $ZM_USER -c $ZM_HOME&amp;quot;libexec/zmqueuelog&amp;quot;&lt;br /&gt;
                    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
                    then&lt;br /&gt;
                        echo &amp;quot;`date +%X` Error running &amp;#039;libexec/zmqueuelog&amp;#039;&amp;quot;&lt;br /&gt;
                    else&lt;br /&gt;
                        echo &amp;quot;`date +%X` zmqueuelog done...&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
		    &lt;br /&gt;
		    # Starting Stats&lt;br /&gt;
		    su - &amp;quot;$ZM_USER&amp;quot; -c $ZM_HOME&amp;quot;bin/zmstatctl start&amp;quot;&lt;br /&gt;
	            if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
		    then&lt;br /&gt;
		        echo &amp;quot;`date +%X` Starting stats failed!&amp;quot;&lt;br /&gt;
		    else&lt;br /&gt;
		        echo &amp;quot;`date +%X` Stats started...&amp;quot;&lt;br /&gt;
		    fi&lt;br /&gt;
        else&lt;br /&gt;
			echo &amp;quot;`date +%X` Hack not needed Stats seems to be running fine...&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function do_backup {&lt;br /&gt;
	TYPE=$1&lt;br /&gt;
&lt;br /&gt;
	# VJS - Added Date/time stamp for log file&lt;br /&gt;
	echo ===============&lt;br /&gt;
	date +&amp;#039;%a %x %X&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if [ $TYPE = &amp;quot;full&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
		PREFIX=$FULL_PREFIX&lt;br /&gt;
	elif [ $TYPE = &amp;quot;diff&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
		PREFIX=$DIFF_PREFIX&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;`date +%X` Invalid Backup Type!&amp;quot;&lt;br /&gt;
		exit 1&lt;br /&gt;
	fi	&lt;br /&gt;
	&lt;br /&gt;
	# VJS - Added Backup type for log file&lt;br /&gt;
	echo Performing $PREFIX backup&lt;br /&gt;
	#echo ============================&lt;br /&gt;
	&lt;br /&gt;
  # VJS - Added ARCHIVENAME and changed all subsequent lines that referenced the other variable string to just use $ARCHIVENAME&lt;br /&gt;
  	ARCHIVENAME=&amp;quot;$BACKUPWEEK&amp;quot;_&amp;quot;$BACKUPNAME&amp;quot;_&amp;quot;$BACKUPDATE&amp;quot;_&amp;quot;$PREFIX&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	# Check for required directories and helper apps&lt;br /&gt;
    for REQ_BIN in $DAR_BIN $MAILX_BIN $RSYNC_BIN $SSH_BIN $MD5SUM_BIN $UUENCODE_BIN&lt;br /&gt;
    do&lt;br /&gt;
    	check_req_bin $REQ_BIN&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
    for REQ_DIR in $ZM_HOME $SYNC_DIR $ARCHIVEDIR $TO_MEDIA_DIR&lt;br /&gt;
    do&lt;br /&gt;
    	check_req_dir $REQ_DIR&lt;br /&gt;
    done&lt;br /&gt;
    # SSS [not req] echo &amp;quot;$TYPE Backup started at: `date`&amp;quot;&lt;br /&gt;
	# Check to make sure we have not already done a backup today.&lt;br /&gt;
    CURRENTNAME2=`ls -A -1 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;*dar 2&amp;gt; /dev/null | head -qn1` &lt;br /&gt;
    &lt;br /&gt;
  # VJS - Changed *dar to .1.dar to prevent CURRENTFULL getting multi-line output where the full backup &lt;br /&gt;
  #       went to more than a single DAR file&lt;br /&gt;
  #  CURRENTFULL=`ls -A -1 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$BACKUPWEEK&amp;quot;*&amp;quot;$FULL_PREFIX&amp;quot;*dar 2&amp;gt;/dev/null | cut -d . -f1 `&lt;br /&gt;
    CURRENTFULL=`ls -A -1 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$BACKUPWEEK&amp;quot;*&amp;quot;$FULL_PREFIX&amp;quot;.1.dar 2&amp;gt;/dev/null | cut -d . -f1 `&lt;br /&gt;
&lt;br /&gt;
    if [ -f &amp;quot;$CURRENTNAME2&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo &amp;quot;`date +%X` Full Zimbra Backup failed! FOUND A BACKUP WITH SAME NAME&amp;quot;&lt;br /&gt;
        echo &amp;quot;Please check why! You should only run this script once a day with the current backup date settings!&amp;quot;&lt;br /&gt;
        mail_log&lt;br /&gt;
        exit 1&lt;br /&gt;
  # VJS - Added check for a full backup prior to allowing a diff backup to begin. &lt;br /&gt;
  #       It will ultimarely fail at the DAR step if no full backup exists - so better to stop it now.&lt;br /&gt;
    elif [ -f $CURRENTFULL ] &amp;amp;&amp;amp; [ $TYPE = &amp;quot;diff&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo &amp;quot;`date +%X` Diff Zimbra Backup failed! FOUND NO FULL BACKUP FOR CURRENT WEEK&amp;quot;&lt;br /&gt;
        echo &amp;quot;Please check why! You should only run this script with -d option once a full backup (-f option) has been run for the week!&amp;quot;&lt;br /&gt;
        mail_log&lt;br /&gt;
        exit 1&lt;br /&gt;
  # VJS - Added -f to $CURRENTFULL test, so it will clear folder in advance of starting new week FULL backup&lt;br /&gt;
  # elif [ $CURRENTFULL ] &amp;amp;&amp;amp; [ $TYPE = &amp;quot;full&amp;quot; ]&lt;br /&gt;
    elif [ -f $CURRENTFULL ] &amp;amp;&amp;amp; [ $TYPE = &amp;quot;full&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
		# Look for old backups and put then in directory from where you write them to some form of&lt;br /&gt;
    	# storage media&lt;br /&gt;
    	LAST_FULL_DAR=`ls -A -1 $ARCHIVEDIR | grep $BACKUPNAME | cut -d _ -f1 | head -n1`&lt;br /&gt;
&lt;br /&gt;
    	if [ -z &amp;quot;$LAST_FULL_DAR&amp;quot; ]&lt;br /&gt;
    	then&lt;br /&gt;
        	echo &amp;quot;`date +%X` No old backups found&amp;quot;&lt;br /&gt;
	    elif [ &amp;quot;$LAST_FULL_DAR&amp;quot; -lt &amp;quot;$BACKUPWEEK&amp;quot; ]&lt;br /&gt;
    	then&lt;br /&gt;
        	echo &amp;quot;`date +%X` Old backups found: Last week $LAST_FULL_DAR, Current $BACKUPWEEK&amp;quot;&lt;br /&gt;
        	echo &lt;br /&gt;
        	for i in `ls -A -1 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$LAST_FULL_DAR&amp;quot;_&amp;quot;$BACKUPNAME&amp;quot;*`&lt;br /&gt;
        	#for i in `ls -A -1 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$LAST_FULL_DAR&amp;quot;_&amp;quot;$BACKUPNAME&amp;quot;*dar`&lt;br /&gt;
            do&lt;br /&gt;
                mv $i $TO_MEDIA_DIR&lt;br /&gt;
                if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
                then&lt;br /&gt;
                    echo &amp;quot;`date +%X` error during move: $i --&amp;gt; $TO_MEDIA_DIR&amp;quot;&lt;br /&gt;
                #else&lt;br /&gt;
                    # SSS echo &amp;quot;$i moved to $TO_MEDIA_DIR&amp;quot;&lt;br /&gt;
                fi&lt;br /&gt;
            done&lt;br /&gt;
    	fi&lt;br /&gt;
    fi&lt;br /&gt;
    # Checking for a backup file collisions. Creating Date and Marker file.&lt;br /&gt;
    CURRENTNAME1=`ls -A -1 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;*dar 2&amp;gt; /dev/null | head -qn1`&lt;br /&gt;
    if [ -f &amp;quot;$CURRENTNAME1&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo&lt;br /&gt;
        echo &amp;quot;`date +%X` Full Zimbra Backup failed!&amp;quot; &lt;br /&gt;
        echo &amp;quot;FOUND A BACKUP WITH SAME NAME IN $ARCHIVEDIR &amp;gt;&amp;gt; Please check why ????&amp;quot;&lt;br /&gt;
        echo &amp;quot;!! You should only run this script once a day with the current backup date settings !!&amp;quot;&lt;br /&gt;
		mail_log&lt;br /&gt;
		exit 1&lt;br /&gt;
    else&lt;br /&gt;
        su - &amp;quot;$ZM_USER&amp;quot; -c $ZM_HOME&amp;quot;bin/zmcontrol -v&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
		if [ -z &amp;quot;$?&amp;quot; ]&lt;br /&gt;
    	then &lt;br /&gt;
        	echo &amp;quot;`date +%X` zmcontrol has some problems! check config or call for help...&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
	    	#echo &amp;quot;Setting date &amp;amp; version Marker into &amp;quot;$ZM_HOME&amp;quot;DATE_VERSION.txt&amp;quot;&lt;br /&gt;
	    	echo &amp;quot;$BACKUPDATE&amp;quot; &amp;gt; &amp;quot;$ZM_HOME&amp;quot;DATE_VERSION.txt&lt;br /&gt;
	    	su - &amp;quot;$ZM_USER&amp;quot; -c $ZM_HOME&amp;quot;bin/zmcontrol -v&amp;quot; | grep ^R &amp;gt;&amp;gt; &amp;quot;$ZM_HOME&amp;quot;DATE_VERSION.txt&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
	# HotSync to backup directory&lt;br /&gt;
	echo &amp;quot;`date +%X` Doing a hotsync of $ZM_HOME to $SYNC_DIR&amp;quot; &lt;br /&gt;
	nice -19 $RSYNC_BIN $RSYNC_OPTS $ZM_HOME $SYNC_DIR &lt;br /&gt;
	if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;`date +%X` rsync threw a hotsync error. this is not unusual, continuing...&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
	echo &amp;quot;`date +%X` Disabling the Zimbra crontab...&amp;quot;&lt;br /&gt;
	#Disable zimbra user&amp;#039;s crontab, we don&amp;#039;t want it starting any jobs while we backup&lt;br /&gt;
	crontab -u $ZM_USER -l &amp;gt; &amp;quot;$ZM_HOME&amp;quot;crontab.org&lt;br /&gt;
	if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    echo &amp;quot;`date +%X` could not backup &amp;quot;$ZM_USER&amp;quot;&amp;#039;s crontab...&amp;quot; &lt;br /&gt;
	    echo &amp;quot;continuing with out changing users crontab!&amp;quot;&lt;br /&gt;
	    exit 1&lt;br /&gt;
	else&lt;br /&gt;
	    touch &amp;quot;$ZM_HOME&amp;quot;crontab.blank&lt;br /&gt;
	    crontab -u $ZM_USER &amp;quot;$ZM_HOME&amp;quot;crontab.blank&lt;br /&gt;
	    rm &amp;quot;$ZM_HOME&amp;quot;crontab.blank&lt;br /&gt;
   	fi&lt;br /&gt;
	&lt;br /&gt;
	#Starting &amp;#039;service downtime&amp;#039; counter&lt;br /&gt;
	DOWNTIMEA=(`date +%s`)&lt;br /&gt;
	# Stopping Zimbra&lt;br /&gt;
	echo &amp;quot;`date +%X` Stopping the Zimbra server...&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
	su - $ZM_USER -c $ZM_HOME&amp;quot;bin/zmcontrol stop&amp;quot; &lt;br /&gt;
	if [ &amp;quot;$?&amp;quot; -eq &amp;quot;1&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    echo &amp;quot;`date +%X` zmcontrol shutdown had an error!&amp;quot;&lt;br /&gt;
	    mail_log&lt;br /&gt;
	    exit 1&lt;br /&gt;
	fi&lt;br /&gt;
    # Some times I still have zimbra procs running, so I murder them! :-O&lt;br /&gt;
    sleep 10&lt;br /&gt;
    PROX=(`ps -u $ZM_USER | awk &amp;#039;{print $1}&amp;#039; | grep -v PID`)&lt;br /&gt;
    if [ &amp;quot;$PROX&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        ps -u $ZM_USER | awk &amp;#039;{print $1}&amp;#039; | grep -v PID | xargs kill -s 15&lt;br /&gt;
        echo &amp;quot;`date +%X` Had to kill some left over procs...&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    # ColdSyncing the zimbra server&lt;br /&gt;
    echo &amp;quot;`date +%X` Doing a fast cold sync...&amp;quot; &lt;br /&gt;
	$RSYNC_BIN $RSYNC_OPTS $ZM_HOME $SYNC_DIR &lt;br /&gt;
    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo &amp;quot;`date +%X` rsync threw an error!&amp;quot;&lt;br /&gt;
	    echo &amp;quot;`date +%X` This should not happen at this stage... exiting!&amp;quot;&lt;br /&gt;
	    mail_log&lt;br /&gt;
		exit 1&lt;br /&gt;
    fi	&lt;br /&gt;
	# Starting the Zimbra server again&lt;br /&gt;
    # Reinstate zimbra user&amp;#039;s crontab&lt;br /&gt;
	echo &amp;quot;`date +%X` Reinstating Zimbra&amp;#039;s crontab...&amp;quot;&lt;br /&gt;
	crontab -u $ZM_USER &amp;quot;$ZM_HOME&amp;quot;crontab.org&lt;br /&gt;
	if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    echo &amp;quot;`date +%X` Could not reinstate &amp;quot;$ZM_USER&amp;quot;&amp;#039;s crontab!!&amp;quot;&lt;br /&gt;
	    echo &amp;quot;Please do this manually!&amp;quot;&lt;br /&gt;
	    mail_log&lt;br /&gt;
	    exit 1&lt;br /&gt;
	fi&lt;br /&gt;
	# Starting Zimbra services again&lt;br /&gt;
	echo &amp;quot;`date +%X` Starting Zimbra...&amp;quot;&lt;br /&gt;
	su - &amp;quot;$ZM_USER&amp;quot; -c $ZM_HOME&amp;quot;bin/zmcontrol start&amp;quot;&lt;br /&gt;
    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo &amp;quot;`date +%X` There was an error starting Zimbra!&amp;quot;&lt;br /&gt;
        mail_log&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
	# Service Timerc&lt;br /&gt;
	DOWNTIMEB=(`date +%s`)&lt;br /&gt;
	RUNTIME=$(expr $DOWNTIMEB \- $DOWNTIMEA)&lt;br /&gt;
	hours=$(($RUNTIME / 3600))&lt;br /&gt;
	# VJS - changed seconds to RUNTIME so minutes get computed correctly if backup runs over an hour&lt;br /&gt;
	#       seconds=$(($RUNTIME  % 3600))&lt;br /&gt;
	RUNTIME=$(($RUNTIME  % 3600))&lt;br /&gt;
	minutes=$(($RUNTIME  / 60))&lt;br /&gt;
	seconds=$(($RUNTIME  % 60))&lt;br /&gt;
	echo &amp;quot;`date +%X` Svc down time - $hours:$minutes:$seconds&amp;quot;&lt;br /&gt;
	# Do Hacks?&lt;br /&gt;
    if [ $STATHACK = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
		do_stat_hack&lt;br /&gt;
	fi&lt;br /&gt;
           &lt;br /&gt;
    # Status Check to see that is running&lt;br /&gt;
	STATUS=(`su - &amp;quot;$ZM_USER&amp;quot; -c &amp;quot;/opt/zimbra/bin/zmcontrol status&amp;quot; | grep -i Stopped`)&lt;br /&gt;
    if [ &amp;quot;$STATUS&amp;quot; ] &lt;br /&gt;
    then &lt;br /&gt;
        echo &amp;quot;`date +%X` Services that are not running&amp;quot;&lt;br /&gt;
        echo $STATUS&lt;br /&gt;
        mail_log down&lt;br /&gt;
    fi&lt;br /&gt;
  echo &amp;quot;`date +%X` Writing a $TYPE backup: &amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;&lt;br /&gt;
	echo &amp;quot;into: $ARCHIVEDIR with file sizes of max: $ARCHIVESIZE&amp;quot;&lt;br /&gt;
	cd $SYNC_DIR&lt;br /&gt;
	if [ &amp;quot;$CRYPT&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    KEY=`cat &amp;quot;$PASSDIR&amp;quot;&amp;quot;$PASSFILE&amp;quot;`&lt;br /&gt;
	    echo &amp;quot;`date +%X` Saving Encrypted Archive...&amp;quot;&lt;br /&gt;
		if [ &amp;quot;$TYPE&amp;quot; = &amp;quot;full&amp;quot; ]&lt;br /&gt;
		then&lt;br /&gt;
			nice -19 $DAR_BIN -K bf:$KEY -s $ARCHIVESIZE -z$COMPRESS -Z &amp;quot;*.gz&amp;quot; -Z &amp;quot;*.zip&amp;quot;\&lt;br /&gt;
			-Z &amp;quot;*.bz2&amp;quot; -Z &amp;quot;*.tgz&amp;quot; -Z &amp;quot;*.zgz&amp;quot; -Z &amp;quot;*.jar&amp;quot; -Z &amp;quot;*.tiff&amp;quot; \&lt;br /&gt;
			-Z &amp;quot;*.jpg&amp;quot; -Z &amp;quot;*.png&amp;quot; -Z &amp;quot;*.gif&amp;quot; -Z &amp;quot;*.jpeg&amp;quot; -R `pwd` \&lt;br /&gt;
			-c &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q&lt;br /&gt;
		elif [ &amp;quot;$TYPE&amp;quot; = &amp;quot;diff&amp;quot; ]&lt;br /&gt;
		then&lt;br /&gt;
		    nice -19 $DAR_BIN -J bf:$KEY -s $ARCHIVESIZE -z$COMPRESS -Z &amp;quot;*.gz&amp;quot; -Z &amp;quot;*.zip&amp;quot;\&lt;br /&gt;
			-Z &amp;quot;*.bz2&amp;quot; -Z &amp;quot;*.tgz&amp;quot; -Z &amp;quot;*.zgz&amp;quot; -Z &amp;quot;*.jar&amp;quot; -Z &amp;quot;*.tiff&amp;quot; \&lt;br /&gt;
			-Z &amp;quot;*.jpg&amp;quot; -Z &amp;quot;*.png&amp;quot; -Z &amp;quot;*.gif&amp;quot; -Z &amp;quot;*.jpeg&amp;quot; -R `pwd` \&lt;br /&gt;
			-c &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q\&lt;br /&gt;
			-A &amp;quot;$CURRENTFULL&amp;quot; -Q&lt;br /&gt;
		else&lt;br /&gt;
			echo &amp;quot;Unkown Backup Type. Fail.&amp;quot;&lt;br /&gt;
			mail_log&lt;br /&gt;
			exit 1&lt;br /&gt;
		fi&lt;br /&gt;
	else        &lt;br /&gt;
	    echo &amp;quot;`date +%X` Saving Unencrtyped Archive...&amp;quot;&lt;br /&gt;
		if [ &amp;quot;$TYPE&amp;quot; = &amp;quot;full&amp;quot; ]&lt;br /&gt;
		then&lt;br /&gt;
			nice -19 $DAR_BIN -s $ARCHIVESIZE -z$COMPRESS -Z &amp;quot;*.gz&amp;quot; -Z &amp;quot;*.zip&amp;quot;\&lt;br /&gt;
		    -Z &amp;quot;*.bz2&amp;quot; -Z &amp;quot;*.tgz&amp;quot; -Z &amp;quot;*.zgz&amp;quot; -Z &amp;quot;*.jar&amp;quot; -Z &amp;quot;*.tiff&amp;quot; \&lt;br /&gt;
		    -Z &amp;quot;*.jpg&amp;quot; -Z &amp;quot;*.png&amp;quot; -Z &amp;quot;*.gif&amp;quot; -Z &amp;quot;*.jpeg&amp;quot; -R `pwd` \&lt;br /&gt;
		    -c &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q&lt;br /&gt;
		elif [ &amp;quot;$TYPE&amp;quot; = &amp;quot;diff&amp;quot; ]&lt;br /&gt;
		then&lt;br /&gt;
	    	nice -19 $DAR_BIN -s $ARCHIVESIZE -z$COMPRESS -Z &amp;quot;*.gz&amp;quot; -Z &amp;quot;*.zip&amp;quot;\&lt;br /&gt;
		    -Z &amp;quot;*.bz2&amp;quot; -Z &amp;quot;*.tgz&amp;quot; -Z &amp;quot;*.zgz&amp;quot; -Z &amp;quot;*.jar&amp;quot; -Z &amp;quot;*.tiff&amp;quot; \&lt;br /&gt;
		    -Z &amp;quot;*.jpg&amp;quot; -Z &amp;quot;*.png&amp;quot; -Z &amp;quot;*.gif&amp;quot; -Z &amp;quot;*.jpeg&amp;quot; -R `pwd` \&lt;br /&gt;
		    -c &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q\&lt;br /&gt;
		    -A &amp;quot;$CURRENTFULL&amp;quot; -Q&lt;br /&gt;
		else&lt;br /&gt;
			echo &amp;quot;Unkown Backup Type. Fail.&amp;quot;&lt;br /&gt;
			mail_log&lt;br /&gt;
			exit 1&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo &amp;quot;`date +%X` Dar had a problem!&amp;quot;&lt;br /&gt;
        mail_log&lt;br /&gt;
        exit 1&lt;br /&gt;
    else&lt;br /&gt;
	    # Create MD5 Checksums to verify archives after writing to media or network transfers&lt;br /&gt;
	    cd $ARCHIVEDIR&lt;br /&gt;
	    # VJS - Changed from simple assignment of FILENAME to creating a loop&lt;br /&gt;
	    #       This allows for backups that span more than one DAR file&lt;br /&gt;
	    # FILENAME=`ls -A &amp;quot;$ARCHIVENAME&amp;quot;*`&lt;br /&gt;
	    for FILENAME in `ls -A &amp;quot;$ARCHIVENAME&amp;quot;*`&lt;br /&gt;
	  do&lt;br /&gt;
	    # VJS - Added do for start of loop&lt;br /&gt;
	    if [ -e $FILENAME ]&lt;br /&gt;
	    then &lt;br /&gt;
	    	echo &amp;quot;`date +%X` Creating MD5 Checksum for $FILENAME...&amp;quot;&lt;br /&gt;
		    $MD5SUM_BIN -b $FILENAME &amp;gt; &amp;quot;$FILENAME&amp;quot;.md5&lt;br /&gt;
		    if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
		    then&lt;br /&gt;
		        echo &amp;quot;`date +%X` MD5 Checksum failed!&amp;quot;&lt;br /&gt;
		        mail_log&lt;br /&gt;
		        exit 1&lt;br /&gt;
		    fi&lt;br /&gt;
	    else&lt;br /&gt;
	    	echo &amp;quot;`date +%X` $FILENAME not found!&amp;quot;&lt;br /&gt;
			echo &amp;quot;This should not happen&amp;quot;&lt;br /&gt;
			mail_log&lt;br /&gt;
			exit 1&lt;br /&gt;
	    fi&lt;br /&gt;
	    # VJS - Added done for end of loop&lt;br /&gt;
	  done&lt;br /&gt;
	fi&lt;br /&gt;
	# DRCP Section. To scp newly created archives to a remote system&lt;br /&gt;
	if [ &amp;quot;$DRCP&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    CPNAME=`ls -A &amp;quot;$ARCHIVENAME&amp;quot;*`&lt;br /&gt;
	    echo &amp;quot;copy archive to $REMOTEHOST&amp;quot; remote directory $REMOTEDIR&lt;br /&gt;
	    scp -i /root/.ssh/id_rsa $CPNAME &amp;quot;$SSHUSER&amp;quot;@&amp;quot;$REMOTEHOST&amp;quot;:&amp;quot;$REMOTEDIR&amp;quot;&lt;br /&gt;
		if [ &amp;quot;$?&amp;quot; -ne &amp;quot;0&amp;quot; ]&lt;br /&gt;
		then&lt;br /&gt;
		    echo &amp;quot;`date +%X` Error copying archive and checksum to $REMOTEHOST&amp;quot;&lt;br /&gt;
		    mail_log&lt;br /&gt;
		    exit 1&lt;br /&gt;
        fi &lt;br /&gt;
	fi&lt;br /&gt;
&lt;br /&gt;
	# FTP Section (SSS)&lt;br /&gt;
       if [ &amp;quot;$DRFTP&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
         then&lt;br /&gt;
               # FTP section&lt;br /&gt;
               # SSS&lt;br /&gt;
	       echo &amp;quot;`date +%X`  starting FTP...&amp;quot;&lt;br /&gt;
               $FTP_BIN -inv $FTPSERVER&amp;lt;&amp;lt;ENDFTP&lt;br /&gt;
               user $FTPUSER $FTPPASS&lt;br /&gt;
               bin&lt;br /&gt;
               cd $FTPDIR&lt;br /&gt;
               mput &amp;quot;$ARCHIVENAME&amp;quot;*&lt;br /&gt;
               close&lt;br /&gt;
               bye&lt;br /&gt;
ENDFTP&lt;br /&gt;
&lt;br /&gt;
               if [ &amp;quot;$?&amp;quot; == &amp;quot;0&amp;quot; ]&lt;br /&gt;
               then&lt;br /&gt;
                       echo &amp;quot;`date +%X` FTP upload completed successfully&amp;quot;&lt;br /&gt;
               else&lt;br /&gt;
                       echo &amp;quot;`date +%X` FTP upload failed !!!&amp;quot;&lt;br /&gt;
               fi&lt;br /&gt;
	fi    &lt;br /&gt;
  # over view of all the files which where backed up&lt;br /&gt;
  echo &amp;quot;Creating file listing from archive...&amp;quot;&lt;br /&gt;
  # VJS - Implemented chewitt suggestion to name the text listings with the same format filename as the backups. &lt;br /&gt;
  #       This makes the directory cleaner, and makes it easier to clear the directory at the start of the next week.&lt;br /&gt;
  # VJS - Added  $FILTERLIST check to allow filtering out unchanged lines from the listing.&lt;br /&gt;
  #       Use | grep -v &amp;quot;\[     \]       \[-----\]&amp;quot;  to list only Saved and REMOVED files&lt;br /&gt;
  if [ &amp;quot;$CRYPT&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
	then&lt;br /&gt;
	    KEY=`cat &amp;quot;$PASSDIR&amp;quot;&amp;quot;$PASSFILE&amp;quot;`&lt;br /&gt;
  		if [ &amp;quot;$FILTERLIST&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
  		then&lt;br /&gt;
		    nice -19 $DAR_BIN -K bf:$KEY -l &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q | grep -v &amp;quot;\[     \]       \[-----\]&amp;quot; \&lt;br /&gt;
		    &amp;gt; &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt &amp;amp;&amp;amp; gzip -9 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt&lt;br /&gt;
		  else&lt;br /&gt;
		    nice -19 $DAR_BIN -K bf:$KEY -l &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q \&lt;br /&gt;
		    &amp;gt; &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt &amp;amp;&amp;amp; gzip -9 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt&lt;br /&gt;
		  fi&lt;br /&gt;
	else        &lt;br /&gt;
  		if [ &amp;quot;$FILTERLIST&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
  		then&lt;br /&gt;
		    nice -19 $DAR_BIN -l &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q | grep -v &amp;quot;\[     \]       \[-----\]&amp;quot; \&lt;br /&gt;
		    &amp;gt; &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt &amp;amp;&amp;amp; gzip -9 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt&lt;br /&gt;
		  else&lt;br /&gt;
		    nice -19 $DAR_BIN -l &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot; -Q  \&lt;br /&gt;
		    &amp;gt; &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt &amp;amp;&amp;amp; gzip -9 &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt&lt;br /&gt;
		  fi&lt;br /&gt;
	fi&lt;br /&gt;
    # Script Timer&lt;br /&gt;
    STOPTIME=(`date +%s`)&lt;br /&gt;
    RUNTIME=$(expr $STOPTIME \- $STARTTIME)&lt;br /&gt;
    hours=$(($RUNTIME / 3600))&lt;br /&gt;
		# VJS - changed seconds to RUNTIME so minutes get computed correctly if backup runs over an hour&lt;br /&gt;
		#       seconds=$(($RUNTIME  % 3600))&lt;br /&gt;
		RUNTIME=$(($RUNTIME  % 3600))&lt;br /&gt;
    minutes=$(($RUNTIME  / 60))&lt;br /&gt;
    seconds=$(($RUNTIME  % 60))&lt;br /&gt;
    echo&lt;br /&gt;
    #echo &amp;quot;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::&amp;quot; &lt;br /&gt;
    echo &amp;quot;`date +%X` $TYPE Zimbra Backup completed&amp;quot; &lt;br /&gt;
    echo &amp;quot;Backup took Hr:$hours Min:$minutes Sec:$seconds to complete&amp;quot; &lt;br /&gt;
    echo &amp;quot;:::::::::::::::Cheers Osoffice for the script:::::::::::::::::::::::&amp;quot;&lt;br /&gt;
# VJS - Added chewitt suggestion for optional listing on report email&lt;br /&gt;
		if [ &amp;quot;$ATTACHLIST&amp;quot; = &amp;quot;yes&amp;quot; ]&lt;br /&gt;
		then&lt;br /&gt;
	    (cat $LOG; $UUENCODE_BIN &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt.gz &amp;quot;$ARCHIVEDIR&amp;quot;&amp;quot;$ARCHIVENAME&amp;quot;.txt.gz) \&lt;br /&gt;
	    | mail $EMAILCC -s &amp;quot;Zimbra Backup (week $BACKUPWEEK) for $HOSTNAME&amp;quot; $EMAIL&lt;br /&gt;
		else&lt;br /&gt;
		  cat $LOG | mail $EMAILCC -s &amp;quot;Zimbra Backup (week $BACKUPWEEK) for $HOSTNAME&amp;quot; $EMAIL&lt;br /&gt;
		fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
## End Functions ##&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Find out who is the zimbra proc user&lt;br /&gt;
ZM_USER=`ps -ef | grep &amp;quot;$ZM_HOME&amp;quot; | grep &amp;quot;java&amp;quot; | grep -v &amp;quot;zmmailboxdmgr&amp;quot; | awk &amp;#039;{print $1}&amp;#039; | head -n 1`&lt;br /&gt;
if [ -z $ZM_USER ]&lt;br /&gt;
then&lt;br /&gt;
    echo &amp;quot;Unable to determine the zimbra user!&amp;quot;&lt;br /&gt;
    config_fail&lt;br /&gt;
elif [ &amp;quot;$ZM_USER&amp;quot; = &amp;quot;root&amp;quot; ]&lt;br /&gt;
then&lt;br /&gt;
	echo &amp;quot;Zimbra user should never be root!&amp;quot;&lt;br /&gt;
	config_fail&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
case $1 in&lt;br /&gt;
-V | -v | --version)&lt;br /&gt;
	show_version&lt;br /&gt;
;;&lt;br /&gt;
-H | -h | --help)&lt;br /&gt;
	show_help&lt;br /&gt;
;;&lt;br /&gt;
--INSTALL)&lt;br /&gt;
	do_install    &lt;br /&gt;
;;&lt;br /&gt;
-f | --full)&lt;br /&gt;
	do_backup full&lt;br /&gt;
;;&lt;br /&gt;
-d | --diff)&lt;br /&gt;
	do_backup diff&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
    echo &amp;quot;use -h or --help for assistance&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
</feed>