简介
本文档介绍从Cisco Secure Email and Web Manager(SMA)保存配置的脚本创建的基本概念。
先决条件
要求
注:本文为概念验证,并提供了示例基础。虽然这些步骤已经过成功测试,但本文主要用于演示和说明目的。自定义脚本不属于思科的范围和受支持范围。思科技术支持中心无法随时编写、更新自定义外部脚本或对其进行故障排除。 在尝试和构建任何脚本之前,请确保您在构建最终脚本时具备脚本知识。
Cisco 建议您了解以下主题:
手动配置文件备份
可以使用命令手动保存配置备份 saveconfig
或 mailconfig
从CLI或通过 SMA GUI > System Administration > Configuration File
.
掩码密码不允许设备加载配置,因为设备无法在配置文件中对本地管理帐户的密码进行哈希处理。
要获得能够加载并应用到SMA的有效备份,最好对密码加密。
然后,会收到通知,通知文件已保存在各自计算机上的配置中。
sma01.local> saveconfig
Choose the passphrase option:
1. Mask passphrases (Files with masked passphrases cannot be loaded with loadconfig command)
2. Encrypt passphrases
[1]> 2
The file M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
has been saved in the configuration directory on machine "sma01.local".
如何自动执行配置文件备份或对其编写脚本?
期望的结果是访问设备,发出命令以生成当前配置,并远程保存它或发送邮件副本,无需任何用户干预。
要高效地完成此任务,您必须:
- 生成SSH密钥对,无需手动输入密码。
- 创建用于登录设备的脚本,保存配置,然后将其远程或通过邮件发送至。
注意:类似的逻辑可以应用于任何操作系统脚本语言,如VB或用于Windows的批处理脚本。
生成SSH密钥对
为此,需要创建私有/公有RSA密钥。这可以通过以下方式实现:
- 用于Windows的PuTTYgen生成SSH密钥对。
- 在Unix/Linux/OS X的终端/CLI上“ssh-keygen”:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/
用于将配置保存到指定主机的脚本
以下是一个脚本示例,可用于:
- 通过SSH登录SMA。
- 保存加密密码的配置。
- 使用安全复制协议(SCP)协议在远程主机上发送输出。
脚本包含一些变量,必须根据业务需求对其进行修改。
- 主机名是SMA的完全限定域名(FQDN)或IP地址。
- USERNAME是SMA上预配置的用户名帐户。
- BACKUP_PATH是必须保存配置的所需目录。
注意:在任何构建之前,请确保您具备脚本编写知识并充分了解这些变量。
创建脚本后,使其可执行,然后运行脚本。
chmod +x sma_backup.sh
./sma_backup.sh
#!/usr/bin/env bash
#
# Simple script to save the SMA config, then copy locally via SCP.
#
# $HOSTNAME can be either FQDN or IP address.
HOSTNAME= [FQDN/IP ADDRESS of SMA]
#
# $USERNAME assumes that you have preconfigured SSH key from this host to your SMA.
USERNAME=admin
#
# $BACKUP_PATH is the directory location on the local system.
BACKUP_PATH= [/local/path/as/desired]
#
# $FILENAME contains the actual script that calls the SMA and issues the 'saveconfig 2' command.
# The rest of the string removes the unnecessary part and isolates the name of the configuration file <model>-<serial number>-<timestamp>.xml.
#
FILENAME=$(ssh -q $USERNAME@$HOSTNAME 'saveconfig 2' | awk '/xml/ {print $3}')
#
# Notification that new generated config file saved locally.
echo
echo "Processing SMA config ${FILENAME}"
#
# SCP saves the configuration to the respective folder that has been defined under "BACKUP_PATH"
scp -q ${USERNAME}@${HOSTNAME}:/configuration/${FILENAME} ${BACKUP_PATH}
#
# Notification that configuration saved properly on the desired folder.
echo "Saving ${FILENAME} under path ${BACKUP_PATH}"
#
# </SCRIPT>
#
脚本的输出必须采用以下格式:
etrianti@linux:~$ ./sma_backup.sh
Processing SMA config M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml
Saving M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml under path /home/etrianti/
安排任务定期运行(UNIX/Linux)
使用cron(UNIX/Linux)定期启动作业。 Cron由crontab(cron表)文件驱动,该文件是一个配置文件,指定按照给定计划定期运行shell命令。crontab文件存储在保存对cron守护程序的作业列表和其他指令的位置。
UNIX/Linux cron配置文件通常采用以下格式:
分钟(0-59)、小时(0-23, 0 =午夜)、天(1-31)、月(1-12)、工作日(0-6, 0 =星期日)、命令
每天凌晨1:00运行该脚本的一个很好的示例条目如下所示:
00 01 * * * /home/etrianti/sma_backup.sh
故障排除
- 使用
cli_logs
要检查脚本是否正确执行并评估已执行的操作,请执行以下操作:
User
login
定义用户能够成功登录SMA。
executed batch command: 'saveconfig 2'
显示已在脚本上执行的命令以保存配置。
scp -f /configuration/
定义从SMA获取的配置
成功调用脚本的示例:
sma01.local> tail cli_logs
Press Ctrl-C to stop.
Thu Apr 20 12:25:33 2023 Info: PID 61539: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:34 2023 Info: PID 61539: User admin executed batch command: 'saveconfig 2'
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin login from 10.61.94.7 on 172.16.200.30
Thu Apr 20 12:25:39 2023 Info: PID 61582: User admin executed batch command: 'scp -f /configuration/M100V-420DF14148D16EXXXXXX-BF70C4XXXXXX-20230419T103106.xml'
- Add命令
set -x
在脚本顶部,启用bash中的调试模式并确认脚本正常运行。命令 set
允许您在Bash脚本中启用某些标志,以便脚本具有某些行为和特征。
注意:SMA的“欢迎”消息配置在 CLI > adminaccessconfig for appliance administration login
,不允许脚本运行SCP。 在这种情况下,必须删除欢迎消息,而标语消息没有问题。
相关信息