There are many different software packages that you can use to backup your FirstClass Server's paused mirror. Many of these packages can be scheduled and scripted. As there is no point in backing up an active mirror one that is synchronizing) or one that is broken, you should always check first using the MCHECK command before issuing the PAUSE command and then initiating your backup.
The following is a batch script that is a sample of what can be done.
:: The location where FCPUTIL resides
SET FCPUTIL = F:\fcserver\fcputil
SET LogFile = F:\fcServer\FCBackup.Log
:: ========= Check FirstClass Mirror ==================
:: The MCHECK command returns a valid error level code that can be checked with a batch script (such as this one).
:: The return codes are checked in descending order; any code greater than or equal to will match the tested error condition.
:: Each return code will execute a goto, where the commands to be executed, in each case, are located.
%FCPUTIL% MCHECK
IF ERRORLEVEL 5 goto mirrorfail
:: This line checks for a return code of 5, which indicates a mirror failure.
IF ERRORLEVEL 4 goto notinsync
:: A return code of 4 indicates at least one mirror volume (or many) is still synchronizing.
IF ERRORLEVEL 3 goto notinsync
:: A return code of 3 indicates the mirror is still synchronizing.
IF ERRORLEVEL 2 goto insync
:: A return code of 2 indicates FirstClass mirroring is "Synchronized and Active".
IF ERRORLEVEL 1 goto nomirror
:: A return code of 1 indicates that FirstClass mirroring is not enabled.
goto paused
:: Return code of 0 indicates that FirstClass mirroring is not enabled.
:: You can use either 'pause' or 'pause mirror' in your script.
:: ================== Mirror is in Sync and can be paused ======================
:insync
:: This will only be executed if the MCHECK sends a return code of 2.
%FCPUTIL% pause mirror
:: Pause the FirstClass mirror.
:: Wait 30 seconds after issuing the PAUSE before checkig if it really has paused, then do the backup
%FCPUTIL% wait 30
%FCPUTIL% MCHECK
IF ERRORLEVEL 1 goto nopause
:: Test that the mirror pause was successful. If the above <> 1 then we can go ahead and back up
:: =========== StartBackup Routines ============================================
echo %date% %time%: Daily Backup Started>>"%LogFile%"
SET FCERROR=
:: Either write your backup procedures here or initiate another script that will trigger your backup
goto end
:: A null "" to indicate no errors.
:: =========== End Backup Routines =============================================
:: ================ fcutil ERROR handling routines ==============================
:nomirror
echo 4. FirstClass mirror not not enabled. Backup aborted! You will have to enable mirroring or shut down your FirstClass server to run a backup.
echo %date% %time%: Backup failed. Mirror not enabled >>"%LogFile%"
goto end
:: Display a console message for the operator that FirstClass mirroring is not enabled and that the backup is has been aborted.
:notinsync
echo 5. FirstClass mirror not synchronized. Backup aborted!
echo %date% %time%: Backup failed. Mirror not synchronized >>"%LogFile%"
goto end
:: Display a console message that the FirstClass mirror is not synchronizing and the backup has been aborted.
:mirrorfail
echo 6. FirstClass mirror has FAILED. Backup aborted!
echo %date% %time%: Backup failed. Mirror has failed >>"%LogFile%"
goto end
:: Display a console message that the FirstClass mirror has failed and that the backup has been aborted.
:paused
echo 7. Mirror already paused. Backup aborted!
echo %date% %time%: Mirror was paused, backup aborted>>"%LogFile%"
goto end
:: Display a console message that the mirror pause command failed and the backup has been aborted.
:nopause
echo 8. Mirror pause command failed. Backup aborted!
echo %date% %time%: Backup aborted. Unable to Pause Mirror>>"%LogFile%"
goto end
:: Display a console message that the FirstClass mirror pause command has failed and that the backup has been aborted.
:END
:: Debug
ECHO Paths ------
ECHO FCPUTIL %FCPUTIL%
ECHO Log File %LogFile%
ECHO Errors here, if any = %FCERROR%
ECHO ------