Paso 8: Todos juntos
Poner todo junto ahora. Se adjunta como un archivo de texto. Se le enviará correos electrónicos en los fallos.#! / usr/bin/esperar
#Expect secuencia de comandos para configuración de copia de seguridad de los firewalls netscreen
#Joe
#Set algunos vars
establecer tiempo de espera de 60
sistema usuario "root"
configuración de contraseña "password"
Configurar puerto "2022"
configurar netscreen «foo.bar.com»
establecer basedir "/ mnt/netapp/backups/foo.bar.com"
determinado registro "[timestamp-formato de % Y-%m-%d]-config.txt"
configurar mailto "joe
establecer mailsubject "Error: error de copia de seguridad de netscreen [timestamp-formato Y %-%m-%d]"
Set mailfail ""
fijar el aviso "-> foo"
send_user "NetScren Script\n de copia de seguridad"
send_user "Conexión a $netscreen\n"
desovar ssh puerto de $ $user -p
esperar {}
"contraseña:" {}
Enviar "$password\r"
esperar {}
{} «$prompt»
send_user "Conectado"
} {} "Permiso denegado"
send_user "Contraseña no válida, salir"
Set mailfail "Contraseña no válida, salir"
cerrar
} {tiempo de espera
send_user "No prompt devuelve"
Set mailfail "no devuelto ningún símbolo del sistema"
cerrar
}
}
} {} "No hay ruta al host"
send_user "Imposible conectarse a $netscreen\n"
Set mailfail "No se puede conectar a $netscreen\n"
} {"Nombre o servicio no conoce"
send_user "Imposible conectarse a $netscreen\n"
Set mailfail "No se puede conectar a $netscreen\n"
} {tiempo de espera
send_user "Comunicadas de Timeout a $netscreen"
Set mailfail "Comunicadas de Timeout a $netscreen"
cerrar
}
}
Si {$mailfail! = ""} {}
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
salida
}
#Now que,
#Disable "más" pronto
Enviar "establece página de consola 0\r"
esperar {}
{} «$prompt»
send_user "\nPaging Disabled\n"
} por defecto {}
Enviar "ScreenOS no excepto la opción de paginación. \n"
Set mailfail "ScreenOS no salvo opción de paginación".
cerrar
}
{tiempo de espera
send_user "ScreenOS no salvo option\n de paginación"
Set mailfail "ScreenOS no salvo opción de paginación".
cerrar
}
}
Si {$mailfail! = ""} {}
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
salida
}
send_user "Descargar Configuration\n"
ArchivoDeRegistro $basedir / $log
Enviar "get config\r"
esperar {}
{} «$prompt»
ArchivoDeRegistro
send_user "\nConfiguration Downloaded\n"
}
{tiempo de espera
send_user "\nError durante descarga de configuración."
Set mailfail "Error durante la descarga de configuración."
}
}
cerrar
Si {$mailfail! = ""} {}
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
salida
}
establecer tamaño de archivo [file tamaño $basedir / $log]
Si {$filesize < = 1024} {}
send_user "Netscreen config es demasiado pequeño, por favor investigate\n"
Set mailfail "Netscreen config es demasiado pequeño, por favor investigate\n"
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
salida
}
#Remove config mayor de 2 semanas
exec encontrar $basedir-nombre ' * config.txt*' - mtime + 14