『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: muxiachuixue

[技术讨论] HA定时自动备份到百度网盘、阿里网盘(手把手教程)

  [复制链接]

5

主题

357

帖子

2046

积分

金牌会员

Rank: 6Rank: 6

积分
2046
金钱
1674
HASS币
60
 楼主| 发表于 2022-1-10 01:18:02 | 显示全部楼层
telanx 发表于 2022-1-10 00:13
单独在ssh里运行任何aliyunpan-cli命令都不会报错,第一个命令是创建文件夹的命令,我之前运行过,没问题 ...

判断语句没问题,你把我写的那两个命令放到一个新建的sh文件里面,然后执行一下看看
回复

使用道具 举报

15

主题

636

帖子

2179

积分

金牌会员

Rank: 6Rank: 6

积分
2179
金钱
1543
HASS币
0
发表于 2022-1-10 09:32:03 | 显示全部楼层
muxiachuixue 发表于 2022-1-10 01:18
判断语句没问题,你把我写的那两个命令放到一个新建的sh文件里面,然后执行一下看看 ...

报告大神,

已经按照您的帖子,建立了一个a.sh,放入了这两个命令,运行了一下,还是不行,报错跟以前一样。
我甚至就留了mkdir的那一行命令在a.sh里,运行都报错。也试了单独运行第二条命令,也是报错。

环境:ali云盘里没有相应目录名。
回复

使用道具 举报

5

主题

357

帖子

2046

积分

金牌会员

Rank: 6Rank: 6

积分
2046
金钱
1674
HASS币
60
 楼主| 发表于 2022-1-10 10:57:19 | 显示全部楼层
本帖最后由 muxiachuixue 于 2022-1-10 11:02 编辑
telanx 发表于 2022-1-10 09:32
报告大神,

已经按照您的帖子,建立了一个a.sh,放入了这两个命令,运行了一下,还是不行,报错跟以前一 ...

问题出在单独在命令行运行的时候没问题,放到sh文件里面执行的时候就有问题,不知道你是不是安装了多个阿里云盘工具。可以尝试下面步骤:
1. 把aliyunpan-cli放入系统环境变量,具体方法帖子里面有写
2. 在sh文件开头写入如下代码:
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$HOME/.local/bin:$(echo ~)/.local/bin
再不行的话,用这个命令来执行sh文件看看,其中aa.sh为要执行的文件,前面要加上文件路径:
/bin/bash -lc 'sh aa.sh'

回复

使用道具 举报

15

主题

636

帖子

2179

积分

金牌会员

Rank: 6Rank: 6

积分
2179
金钱
1543
HASS币
0
发表于 2022-1-10 11:53:11 | 显示全部楼层
muxiachuixue 发表于 2022-1-10 10:57
问题出在单独在命令行运行的时候没问题,放到sh文件里面执行的时候就有问题,不知道你是不是安装了多个阿 ...

我只安装了一个aliyunpan工具。。。
现在是在ssh命令行里运行任意一个脚本中的aliyunpan-cli命令,都可以正常运行。

在脚本中,总共有三个aliyunpan-cli命令 (1.新建目录,2.同步文件 log日志。3.同步备份目录),现在的情况是,在脚本里,如果只放最后一条命令,同步备份目录命令的话,这个脚本是可以正常运行的,不存在任何问题。但是如果放上1或者2任意一个命令,脚本就出错。

所以,有没有可能是跟本机python的版本有关?最新的aliyunpan-cli的前两个命令调用了python 3.10的一些特性,但是我本地装的是3.92,不支持?当然,本人小白,纯属瞎猜。

至少在我改了大佬的脚本后,目前也实现了我的需求,至少脚本能运行,ha和nodered都能正常备份。加上crontab,每3天的凌晨2点备份一次,还行了。(其实前两个aliyunpan命令没有太大的必要,同步备份目录的命令,如果发现云盘上没有相应目录,会自动调用mkdir来创建的,另外。log文件也没必要同步到yunpan上,所以,只保留最后一个同步备份目录命令其实就够用了。其实我不知道第二个命令是什么作用,看起来是同步单个文件的命令,而单个文件就是那个log文件,不知道理解的对不对)

既然大多数人用您的脚本没问题,那我这种个例,就不去深究原因了,何况已然实现我的需求了,呵呵

感谢大佬写的这么好的脚本,还耽误了您那么多时间帮忙解决问题。
回复

使用道具 举报

5

主题

357

帖子

2046

积分

金牌会员

Rank: 6Rank: 6

积分
2046
金钱
1674
HASS币
60
 楼主| 发表于 2022-1-10 12:24:35 | 显示全部楼层
本帖最后由 muxiachuixue 于 2022-1-10 12:29 编辑
telanx 发表于 2022-1-10 11:53
我只安装了一个aliyunpan工具。。。
现在是在ssh命令行里运行任意一个脚本中的aliyunpan-cli命令,都可以 ...

第一个命令创建的是backup文件夹,表示你备份的是HA里面backup这个文件夹,因为有人可能还会备份HA里面其他文件夹,为了照顾大部分人,就加上了;
第二个命令是备份除log文件以外的其他所有文件,因为log文件在持续写入,HASH值一直在发生变化,如果一边同步一边写入,log里面会报错,也导致log文件无法同步上去;
第三个命令是再次同步一次文件夹,这里起到两个作用:把log文件同步上去(这样如果硬盘损坏能查看log看到本次备份是否成功);再次同步一次所有文件夹,防止之前因网络不稳定有的文件没同步好

有可能是作者的插件和python冲突了,我是python3.7.3 目前一切正常。你按照你改后的用就行。
另外我昨天更新了一下脚本,百度网盘如果备份失败不会影响阿里网盘的备份,两个备份工具完全独立开,你可以更新一下
回复

使用道具 举报

15

主题

636

帖子

2179

积分

金牌会员

Rank: 6Rank: 6

积分
2179
金钱
1543
HASS币
0
发表于 2022-1-10 12:33:40 | 显示全部楼层
muxiachuixue 发表于 2022-1-10 12:24
第一个命令创建的是backup文件夹,表示你备份的是HA里面backup这个文件夹,为了照顾大部分人,就加上了;
...

感谢大佬解答。那看起来很可能是作者的插件跟新版的python可能有些冲突导致的,这深究就太浪费时间了,没准后续更新什么的,bug就修复了。。。。

我在脚本手动测试成功后,就把所有tee ... log的命令都给注释掉了,于是也就没有log文件存在了,那第二个命令就不需要了。哈哈哈(或者设置log文件默认存放目录和脚本文件的目录一致,也可以省去第二个命令),同理,第一个命令,在命令3可以自动调用,倒是可以删掉。这样脚本就更适配更广泛的情况了。小小建议。

anyway,能用了就好,哈哈哈,顺便也给任何可能遇到和我一样问题的小白一个参考。

再次感谢大佬开发这么棒的脚本。
回复

使用道具 举报

5

主题

357

帖子

2046

积分

金牌会员

Rank: 6Rank: 6

积分
2046
金钱
1674
HASS币
60
 楼主| 发表于 2022-1-10 12:47:58 | 显示全部楼层
telanx 发表于 2022-1-10 12:33
感谢大佬解答。那看起来很可能是作者的插件跟新版的python可能有些冲突导致的,这深究就太浪费时间了,没 ...

有可能是aliyunpan插件更新了,以前老版本我记得是不会自动新建文件夹的,既然现在可以自动生成了,mkdir 命令可以删掉
把tee  log 的命令注释掉,log文件里面就不会记录备份的进度、错误信息这些了
log文件目前存放目录和脚本文件目录就是一样的。只有存放目录不同才不会出现报错。
回复

使用道具 举报

0

主题

209

帖子

1477

积分

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1268
HASS币
0
QQ
发表于 2022-1-10 15:31:46 | 显示全部楼层
感谢分享
回复

使用道具 举报

3

主题

28

帖子

158

积分

注册会员

Rank: 2

积分
158
金钱
130
HASS币
0
发表于 2022-2-4 14:57:15 | 显示全部楼层
论坛有你更精彩,分享有你更精彩
回复

使用道具 举报

5

主题

83

帖子

303

积分

中级会员

Rank: 3Rank: 3

积分
303
金钱
220
HASS币
0
发表于 2022-2-9 20:19:33 | 显示全部楼层
大佬 请问输入命令是ssh连进去之后输入吗  
还是哪里输入命令   小白不太懂  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-19 18:54 , Processed in 0.079775 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表