Criando scripts de pré-tarefa, pós-tarefa e política
O SnapManager permite criar os scripts para a atividade de pré-processamento, a atividade de pós-processamento e tarefas de política das operações de backup, restauração e clone. Você deve colocar os scripts no diretório de instalação correto para executar a atividade de pré-processamento, atividade de pós-processamento e tarefas de política da operação SnapManager.
Conteúdo do script de pré-tarefa e pós-tarefa
Todos os scripts devem incluir o seguinte:
-
Operações específicas (verificar, descrever e executar)
-
(Opcional) variáveis de ambiente predefinidas
-
Código específico de manipulação de erros (código de retorno (rc))
|
Você deve incluir o código correto de manipulação de erros para validar o script. |
Você pode usar os scripts de pré-tarefa para muitos fins, por exemplo, limpar um espaço em disco antes que a operação SnapManager seja iniciada. Você também pode usar os scripts pós-tarefa, por exemplo, para estimar se o SnapManager tem espaço em disco suficiente para concluir a operação.
Conteúdo do script de tarefa de política
Você pode executar o script de política sem usar operações específicas, como verificar, descrever e executar. O script inclui as variáveis ambientais predefinidas (opcional) e o código específico de manipulação de erros.
O script de política é executado antes das operações de backup, restauração e clone.
Formato suportado
Um arquivo de script shell com uma extensão .sh pode ser usado como prescritor e pós-script.
-
Diretório de instalação de scripts*
O diretório no qual você instala o script afeta como ele é usado. Você pode colocar os scripts no diretório e executar o script antes ou depois que a operação de backup, restauração ou clone ocorrer. Você deve colocar o script no diretório especificado na tabela e usá-lo de forma opcional quando especificar a operação de backup, restauração ou clone.
|
Você deve garantir que o diretório plugins tenha a permissão executável antes de usar os scripts para a operação SnapManager. |
Atividade | Backup | Restaurar | Clone |
---|---|---|---|
Pré-processamento |
<default_installation_directory>/plugins/backup/criar/pre |
<default_installation_directory>/plugins/restore/criar/pre |
<default_installation_directory>/plugins/clone/criar/pre |
Pós-processamento |
<default_installation_directory>/ plugins/backup/criar/publicar |
<default_installation_directory>/plugins/restaurar/criar/publicar |
<default_installation_directory>/plugins/clone/create/post |
Baseado em políticas |
<default_installation_directory>/plugins/backup/criar/política |
<default_installation_directory>/plugins/restore/create/policy |
<default_installation_directory>/plugins/clone/create/policy |
Locais de exemplo de scripts
A seguir estão algumas amostras dos scripts de pré-tarefa e pós-tarefa para as operações de backup e clone disponíveis no caminho do diretório de instalação:
-
<default_installation_directory>/plugins/exemplos/backup/criar/pre
-
<default_installation_directory>/plugins/exemplos/backup/criar/publicar
-
<default_installation_directory>/plugins/examples/clone/create/pre
-
<default_installation_directory>/plugins/examples/clone/create/post
O que você pode alterar no script
Se você estiver criando um novo script, poderá alterar apenas as operações de descrição e execução. Cada script deve conter as seguintes variáveis: Contexto, tempo limite e parâmetro.
As variáveis que você descreveu na função descrever do script devem ser declaradas no início do script. Você pode adicionar novos valores de parâmetro em parâmetro() e, em seguida, usar os parâmetros na função executar.
Exemplo de script
A seguir está um script de exemplo com um código de retorno especificado pelo usuário para estimar o espaço no host SnapManager:
#!/bin/bash # $Id: //depot/prod/capstan/main/src/plugins/unix/examples/backup/create/pre/disk_space_estimate.sh#5 $ name="disk space estimation ($(basename $0))" description="pre tasks for estimating the space on the target system" context= timeout="0" parameter=() EXIT=0 PRESERVE_DIR="/tmp/preserve/$(date +%Y%m%d%H%M%S)" function _exit { rc=$1 echo "Command complete." exit $rc } function usage { echo "usage: $(basename $0) { -check | -describe | -execute }" _exit 99 } function describe { echo "SM_PI_NAME:$name" echo "SM_PI_DESCRIPTION:$description" echo "SM_PI_CONTEXT:$context" echo "SM_PI_TIMEOUT:$timeout" IFS=^ for entry in ${parameter[@]}; do echo "SM_PI_PARAMETER:$entry" done _exit 0 } function check { _exit 0 } function execute { echo "estimating the space on the target system" # Shell script to monitor or watch the disk space # It will display alert message, if the (free available) percentage # of space is >= 90% # ---------------------------------------------------------------------- # Linux shell script to watch disk space (should work on other UNIX oses ) # set alert level 90% is default ALERT=90 df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output; do #echo $output usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 ) partition=$(echo $output | awk '{ print $2 }' ) if [ $usep -ge $ALERT ]; then echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" | fi done _exit 0 } function preserve { [ $# -ne 2 ] && return 1 file=$1 save=$(echo ${2:0:1} | tr [a-z] [A-Z]) [ "$save" == "Y" ] || return 0 if [ ! -d "$PRESERVE_DIR" ] ; then mkdir -p "$PRESERVE_DIR" if [ $? -ne 0 ] ; then echo "could not create directory [$PRESERVE_DIR]" return 1 fi fi if [ -e "$file" ] ; then mv "$file" "$PRESERVE_DIR/." fi return $? } case $(echo $1 | tr [A-Z] [a-z]) in -check) check ;; -execute) execute ;; -describe) describe ;; *) echo "unknown option $1" usage ;; esac