ROS设备自动备份并通过FTP上传至服务器

在网上有很多的ros设备自动备份并上传至指定的FTP服务器

在网上有很多的ros设备自动备份并上传至邮箱的教程,也许是FTP服务快被淘汰了,上传到FTP的脚本只有两三个。我试了下,好像都不符合我的预期。经过多次测试,我在网上的脚本内做了一点点修改来满足我的需求。

1.需求

我需要ROS设备在每日的定点生成备份文件,并将该备份文件传输到指定的FTP服务器上。要是设备损坏后,可以直接将备份的文件在新的ROS设备上恢复数据,立即就能使用(网络线缆之类的是已经提前布置好)。

2.最终脚本

##自动备份并FTP上传
:local ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
:local ds [/system clock get date]
:set ds ([:pick $ds 7 11].[:pick $ds 0 3].[:pick $ds 4 6])
:local fname ("/name_".[/system identity get name]."-".$ds."-".$ts)
/system backup save name= ($fname.".backup");
/tool fetch address=10.1.*.* upload=yes user=ftpname password=ftppassword port=ftpport mode=ftp  src-path=($fname.".backup") dst-path=($fname.".backup")

3.脚本学习过程及脚本解释

首先感谢东大网管在博客园的这个链接
https://www.cnblogs.com/itfat/p/14554470.html
还有saook在RSG人生观的这个链接
https://www.lxg2016.com/90.html

在ROS脚本中#是可以做为注释符号使用的
我首先做了一个本地备份的脚本

/system backup save name=($router."name".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6]); 

这个脚本的成功,使得我知道了自动备份怎么做,就是做一个脚本,然后跑自动任务就行了。

然后就是将东大网管的上传FTP服务器的脚本跑了一次,也是可以用的。
本来想直接照抄saook在RSG人生观的脚本,不知道我哪里没有抄好,没有跑成功,再加上那个脚本太过复杂,我觉得麻烦。就自己将这个脚本中的变量使用方法学到了。改了一下。

4.脚本中需要注意的地方

  • 1.脚本中变量使用,其实很简单,先声明一个变量xx

    :local xx 变量的获取方式
    

    这里变量的获取方式有多种
    要是对变量xx不满意,还可以接着修改变量xx

    :set xx 变量的修改方式
    

    注意:变量的后面都不要加标点符号,标点符号仅仅用于代码的执行

  1. 脚本的执行命令跟在终端执行的脚本一样,要带路径的执行
  2. 我犯错最多的地方在这里:执行脚本中备份默认是生成backup的文件,而ftp上传的时候必须是文件全名。这个地方很好理解,但是操作时候真的要注意
  3. 在写带路径的文件名时,有两个地方需要注意,一个是平时写路径时的“\”,要改用“/”,一个是文件名拼写时要用“.”这个做连接符。

5.感谢参考的文章

1: https://www.cnblogs.com/itfat/p/14554470.html
2: https://www.lxg2016.com/90.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值