• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

交换机定期上传配置到SFTP服务器的问题

17小时前提问
  • 0关注
  • 0收藏,40浏览
粉丝:0人 关注:0人

问题描述:

有什么像$date这种函数,特别是主机名是什么函数

3 个回答
粉丝:162人 关注:11人

特别的主机名是什么?

就是用什么函数表示主机名

zhiliao_GfP3BI 发表时间:16小时前 更多>>

就是用什么函数表示主机名

zhiliao_GfP3BI 发表时间:16小时前
粉丝:27人 关注:1人

H3C Comware系统的调度任务(scheduler job)本身并不支持$date$hostname这类变量。命令怎么写,系统就原样执行,无法动态替换。

不过,要实现包含日期和主机名的动态文件名,通常有以下几种替代方案:

方案一:使用 archive configuration 功能(推荐)

这是H3C设备内置的配置归档功能,最为简单可靠,无需额外脚本。

  1. 设置备份位置和文件名前缀:在系统视图下,指定一个本地目录和文件名前缀

    text
    [H3C] archive configuration location flash:/archive/ prefix my_archive

    这条命令会将配置文件保存在 flash:/archive/ 目录下,并以 my_archive 作为文件名前缀。

  2. 设置自动备份:配置系统按固定时间间隔自动备份当前配置。

    text
    [H3C] archive configuration interval 1440

    此命令会每隔1440分钟(24小时)自动备份一次。

  • 文件命名规则:备份文件会自动命名为 前缀_序号.cfg 的格式,例如 my_archive_1.cfgmy_archive_2.cfg。序号会自动递增,最大到1000后重置。

注意:此方案生成的文件名不含日期和主机名,但能自动保留多个历史版本,且配置简单。

方案二:结合 Tcl 脚本实现动态命名(更灵活)

如果你的设备支持Tcl,可以实现包含日期和主机名的文件名。

  1. 核心思路:在Tcl脚本中,通过命令获取系统时间(clock)和主机名(sysname),组合成动态文件名,再执行上传命令。

  2. 脚本示例:创建一个Tcl脚本,内容大致如下:

    tcl
    # 获取当前日期和时间,格式如 20260806 set date [clock format [clock seconds] -format "%Y%m%d"] # 获取主机名(假设sysname为SW-1) set hostname "SW-1" # 组合成动态文件名 set filename "${hostname}_${date}.cfg" # 执行保存和上传命令,使用组合出的文件名 cli "save force" cli "copy startup.cfg sftp://username:password@10.1.1.1/config/${filename}"

方案三:借助外部服务器实现(最强大)

这种方式不依赖交换机本身,而是由外部服务器主动发起备份,可以实现最丰富的功能。

  • 实现方式:在服务器上(如Linux)编写Python、Shell等脚本,通过SSH登录交换机,执行命令获取配置,然后以包含日期和主机名的格式保存。

  • 触发方式:在服务器上配置crontab等定时任务,定期执行该脚本

粉丝:25人 关注:2人

一、先说核心结论(H3C Comware V5/V7 原生自动备份 archive 机制)
1、原生自带内置变量(无需脚本)
时间变量(等价你说的 $date,系统自动拼接,不需要手动写变量)
开启 archive configuration server 自动上传 SFTP/SCP/FTP 时:
最终文件名规则:
filename-prefix_YYYYMMDD_HHMMSS.cfg
YYYYMMDD = 年月日、HHMMSS = 时分秒,设备自动追加时间戳,自带日期时间,等同于 $date 效果。
重点:原生 archive 机制【没有内置 $hostname 主机名变量】
官方 filename-prefix 只能写固定字符串,不能填入 $sysname/$hostname 这类系统变量。
举例:
plaintext
archive configuration server scp user backup password simple xxx 192.168.1.10 directory sw_backup filename-prefix SW_INTERVAL interval 1440
生成文件:SW_INTERVAL_20260806_102035.cfg
只能前缀固定,无法自动把本机主机名嵌进去。
2、想要文件名自动带上本机主机名(两种实现方案)
方案 A:定时任务 + scheduler+TCL 脚本(推荐,Comware V7/V5 均支持,完美实现 hostname + 时间)
原理:设备内置 TCL,读取本机 sysname(主机名)拼接时间,手动 put 上传配置至 SFTP。
完整配置示例(上传到 SFTP 服务器 192.168.1.10):
shell
# 1、创建定时任务
scheduler job BackupCfg
job cli tclsh
job cli {
set hostname [sysname]
set timestr [clock format [clock seconds] -format "%Y%m%d_%H%M%S"]
save force
scp startup.cfg backup:123456@192.168.1.10:/sw_backup/${hostname}_${timestr}.cfg
}
# 2、每天凌晨2点执行一次
scheduler schedule DailyBackup job BackupCfg time 02:00
最终 SFTP 服务器生成文件名:SW_CORE_20260806_020000.cfg
[sysname] = 获取本机主机名,对应你要的「主机名函数」
clock format = 日期时间函数,等价 $date。
方案 B:外网中控服务器(Ansible/Python 集中备份)
中控服务器遍历所有交换机 SSH 登录,获取设备 hostname + 当前时间,拼接文件名上传,适合几十上百台设备批量管理。
二、两种备份方式完整对比
方式 1:原生 archive configuration(简单、无 hostname 变量)
优点:配置极简、稳定、不用脚本;
缺点:文件名只能固定前缀,不能自动携带交换机主机名。
完整 SFTP 自动备份配置:
system-view
# 开启自动备份至SCP(SFTP)服务器
archive configuration server scp user backup password simple SFTP密码 192.168.1.10 directory backup_dir filename-prefix SW interval 1440
# interval 1440 = 每隔1440分钟=1天备份一次
archive configuration interval 1440
产出文件:SW_20260806_020000.cfg。
方式 2:Scheduler+TCL(自由拼接 hostname+date,推荐多交换机场景)
可用内置 TCL 内置函数列表:
[sysname]:获取本机主机名(hostname 变量)
[clock format [clock seconds] -format "%Y%m%d_%H%M%S"]:获取时间戳(date 变量)
[display device name] 获取设备型号。
三、补充常见问题
V5 老设备(如 WX6103E、S5120)是否支持 TCL?
V5 后期版本支持 TCL;极早期精简 V5 版本无 tclsh,只能用方案 1 固定前缀备份,靠文件夹区分不同设备。
为什么官方 archive 不支持 hostname 变量?
Comware 原生 archive 设计初衷为单设备本地备份,远程备份仅追加时间戳,未开放系统变量注入文件名。
SFTP 改用 FTP 只需要把配置里的 scp 替换为 ftp 即可。
四、最简可用成品脚本(每天凌晨 2 点自动上传,文件名 = 主机名_日期.cfg)
plaintext
system-view
scheduler job BACKUP_CONFIG
job cli tclsh
job cli {
set hn [sysname]
set dt [clock format [clock seconds] -format "%Y%m%d_%H%M%S"]
save force
scp startup.cfg backup:Passw0rd@192.168.10.20:/backup/${hn}_${dt}.cfg
}
scheduler schedule BACKUP_CRON job BACKUP_CONFIG time 02:00:00

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明