<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Snapcreator and Zimbra in Data Protection</title>
    <link>https://community.netapp.com/t5/Data-Protection/Snapcreator-and-Zimbra/m-p/45976#M3005</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Christophe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Absolutely!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Snap Creator provides two ways to create a solution for Zimbra:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. APP_QUIESCE/UNQUIESCE/PRE_EXIT_CMDS&lt;/P&gt;&lt;P&gt;This thread explains how to do this using informix as the example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" class="active_link" href="https://community.netapp.com/message/25243#25243" title="https://communities.netapp.com/message/25243#25243" target="_blank"&gt;https://communities.netapp.com/message/25243#25243&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APP_QUIESCE_CMDS - Run before snapshot is taken and are agent aware&lt;/P&gt;&lt;P&gt;APP_UNQUIESCE_CMDS - Run after snapshot is taken and are agent aware&lt;/P&gt;&lt;P&gt;PRE_EXIT_CMDS - Run when error occurs and are agent aware. You would just want to do what you do for unquiesce here, maybe some extra error checking as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All you need to do is to figure out how to quiesce and unquiesce Zimbra from the CLI. The scAgent allows Snap Creator to run these commands remotely which provides a centralized solution. In addition SC can integrate with Protection Manager and provide restore (data from snapshot) as well as many other data protection solutions. They key is that we have a Zimbra consistent snapshot, then everything is possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Create a plug-in&lt;/P&gt;&lt;P&gt;To create a plug-in you should join the Snap Creator Developer community &lt;A href="http://www.snapcreator.com." target="_blank"&gt;www.snapcreator.com.&lt;/A&gt; Currently there are some technical issues preventing some from logging in, we hope to have these addressed soon. Anyone with a NOW account should have access but again there are some technical issues.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A plug-in can be created in any programming or scripting language, so you could even do it in poweshell or unix shell script. A plug-in allows you to provide more advanced capabilities like recover or cloning. If you just care about automation of backup process then option 1 is easiest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the Snap Creator Developer community there are plenty of folks, including myself that will help you create / understand how to create plug-ins. It only takes about a hour to get started &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.netapp.com/5.0.1/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Creating a plugin also allows you to share your solution with other's or other customers. If you are a partner or service provider this would be very interesting. A Plug-in finally could end up in the supported product one day so that is an advantage as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is an example of a shell script plug-in:&lt;/P&gt;&lt;P&gt;db2.sh&lt;/P&gt;&lt;P&gt;#!/bin/bash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case "$1" in&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-describe" )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#OP#quiesce"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#OP#unquiesce"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#DESCRIPTION#Plug-in to handle DB2 database integration"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#PARAMETER#SCRIPT_DB2_DATABASE#DB2 database name#SCRIPT_DB2_DATABASE=value#dbname"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#PARAMETER#SCRIPT_DB2_CMD#The dbmcli command used for database operations#SCRIPT_DB2_CMD=value#/path/to/dbmcli"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "describe completed successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-quiesce" ) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Quiescing database $SCRIPT_DB2_DATABASE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Executing command dbmcli"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Perform write suspend&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUN_CMD=`$SCRIPT_DB2_CMD -tv &amp;lt;&amp;lt;EOF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect to $SCRIPT_DB2_DATABASE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set write suspend for database;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect reset;`&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT_CODE=$?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ "$EXIT_CODE" -ne "0" ]; then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#ERROR#[`date`]#The dbmcli command failed with exit code $EXIT_CODE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Quiescing database $SCRIPT_DB2_DATABASE failed"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#The dbmcli command completed successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Quiescing database $SCRIPT_DB2_DATABASE finished successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-unquiesce" )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Unquiescing database $SCRIPT_DB2_DATABASE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Executing command dbmcli"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Perform write resume&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUN_CMD=`$SCRIPT_DB2_CMD -tv &amp;lt;&amp;lt;EOF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect to $SCRIPT_DB2_DATABASE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set write resume for database;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect reset;`&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT_CODE=$?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ "$EXIT_CODE" -ne "0" ]; then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#ERROR#[`date`]#The dbmcli command failed with exit code $EXIT_CODE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Unquiescing database $SCRIPT_DB2_DATABASE failed"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#The dbmcli command completed successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Unquiescing database $SCRIPT_DB2_DATABASE finished successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "not implemented";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;esac&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exit 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a real world example of how to create a shell script plugin with DB2 as database. SC offers a full DB2 plugin this was just an example to give you an idea of what is involved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To use this plugin you would set following in config:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APP_NAME=db2.sh&lt;/P&gt;&lt;P&gt;SCRIPT_DB2_DATABASE=dbname&lt;/P&gt;&lt;P&gt;SCRIPT_DB2_CMD=/path/to/db2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any key/value set in config is passed to plugin as environement variable&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 06 Feb 2012 19:19:33 GMT</pubDate>
    <dc:creator>ktenzer</dc:creator>
    <dc:date>2012-02-06T19:19:33Z</dc:date>
    <item>
      <title>Snapcreator and Zimbra</title>
      <link>https://community.netapp.com/t5/Data-Protection/Snapcreator-and-Zimbra/m-p/45971#M3004</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello communities,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i wanted to know of it's possible to have a backup and DR plan with snapcreator. IMT doest not support Zimbra in the "Host Application" section ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Christophe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2025 06:35:30 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Data-Protection/Snapcreator-and-Zimbra/m-p/45971#M3004</guid>
      <dc:creator>c_delporte</dc:creator>
      <dc:date>2025-06-05T06:35:30Z</dc:date>
    </item>
    <item>
      <title>Re: Snapcreator and Zimbra</title>
      <link>https://community.netapp.com/t5/Data-Protection/Snapcreator-and-Zimbra/m-p/45976#M3005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Christophe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Absolutely!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Snap Creator provides two ways to create a solution for Zimbra:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. APP_QUIESCE/UNQUIESCE/PRE_EXIT_CMDS&lt;/P&gt;&lt;P&gt;This thread explains how to do this using informix as the example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" class="active_link" href="https://community.netapp.com/message/25243#25243" title="https://communities.netapp.com/message/25243#25243" target="_blank"&gt;https://communities.netapp.com/message/25243#25243&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APP_QUIESCE_CMDS - Run before snapshot is taken and are agent aware&lt;/P&gt;&lt;P&gt;APP_UNQUIESCE_CMDS - Run after snapshot is taken and are agent aware&lt;/P&gt;&lt;P&gt;PRE_EXIT_CMDS - Run when error occurs and are agent aware. You would just want to do what you do for unquiesce here, maybe some extra error checking as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All you need to do is to figure out how to quiesce and unquiesce Zimbra from the CLI. The scAgent allows Snap Creator to run these commands remotely which provides a centralized solution. In addition SC can integrate with Protection Manager and provide restore (data from snapshot) as well as many other data protection solutions. They key is that we have a Zimbra consistent snapshot, then everything is possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Create a plug-in&lt;/P&gt;&lt;P&gt;To create a plug-in you should join the Snap Creator Developer community &lt;A href="http://www.snapcreator.com." target="_blank"&gt;www.snapcreator.com.&lt;/A&gt; Currently there are some technical issues preventing some from logging in, we hope to have these addressed soon. Anyone with a NOW account should have access but again there are some technical issues.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A plug-in can be created in any programming or scripting language, so you could even do it in poweshell or unix shell script. A plug-in allows you to provide more advanced capabilities like recover or cloning. If you just care about automation of backup process then option 1 is easiest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the Snap Creator Developer community there are plenty of folks, including myself that will help you create / understand how to create plug-ins. It only takes about a hour to get started &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.netapp.com/5.0.1/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Creating a plugin also allows you to share your solution with other's or other customers. If you are a partner or service provider this would be very interesting. A Plug-in finally could end up in the supported product one day so that is an advantage as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is an example of a shell script plug-in:&lt;/P&gt;&lt;P&gt;db2.sh&lt;/P&gt;&lt;P&gt;#!/bin/bash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case "$1" in&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-describe" )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#OP#quiesce"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#OP#unquiesce"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#DESCRIPTION#Plug-in to handle DB2 database integration"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#PARAMETER#SCRIPT_DB2_DATABASE#DB2 database name#SCRIPT_DB2_DATABASE=value#dbname"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_DESCRIBE#PARAMETER#SCRIPT_DB2_CMD#The dbmcli command used for database operations#SCRIPT_DB2_CMD=value#/path/to/dbmcli"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "describe completed successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-quiesce" ) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Quiescing database $SCRIPT_DB2_DATABASE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Executing command dbmcli"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Perform write suspend&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUN_CMD=`$SCRIPT_DB2_CMD -tv &amp;lt;&amp;lt;EOF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect to $SCRIPT_DB2_DATABASE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set write suspend for database;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect reset;`&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT_CODE=$?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ "$EXIT_CODE" -ne "0" ]; then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#ERROR#[`date`]#The dbmcli command failed with exit code $EXIT_CODE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Quiescing database $SCRIPT_DB2_DATABASE failed"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#The dbmcli command completed successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Quiescing database $SCRIPT_DB2_DATABASE finished successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-unquiesce" )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Unquiescing database $SCRIPT_DB2_DATABASE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Executing command dbmcli"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Perform write resume&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUN_CMD=`$SCRIPT_DB2_CMD -tv &amp;lt;&amp;lt;EOF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect to $SCRIPT_DB2_DATABASE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set write resume for database;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect reset;`&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT_CODE=$?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ "$EXIT_CODE" -ne "0" ]; then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#ERROR#[`date`]#The dbmcli command failed with exit code $EXIT_CODE"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Unquiescing database $SCRIPT_DB2_DATABASE failed"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#The dbmcli command completed successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#DEBUG#[`date`]#$RUN_CMD"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "SC_MSG#INFO#[`date`]#Unquiescing database $SCRIPT_DB2_DATABASE finished successfully"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "not implemented";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;/P&gt;&lt;P&gt;esac&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exit 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a real world example of how to create a shell script plugin with DB2 as database. SC offers a full DB2 plugin this was just an example to give you an idea of what is involved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To use this plugin you would set following in config:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APP_NAME=db2.sh&lt;/P&gt;&lt;P&gt;SCRIPT_DB2_DATABASE=dbname&lt;/P&gt;&lt;P&gt;SCRIPT_DB2_CMD=/path/to/db2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any key/value set in config is passed to plugin as environement variable&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Feb 2012 19:19:33 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Data-Protection/Snapcreator-and-Zimbra/m-p/45976#M3005</guid>
      <dc:creator>ktenzer</dc:creator>
      <dc:date>2012-02-06T19:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: Snapcreator and Zimbra</title>
      <link>https://community.netapp.com/t5/Data-Protection/Snapcreator-and-Zimbra/m-p/45986#M3006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Christophe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What did you decide to do? I'm curious to know..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Keith&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 22:10:23 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Data-Protection/Snapcreator-and-Zimbra/m-p/45986#M3006</guid>
      <dc:creator>keitha</dc:creator>
      <dc:date>2012-04-17T22:10:23Z</dc:date>
    </item>
  </channel>
</rss>

