备份unraid系统盘到远程服务器
unraid系统是安装在u盘上的,各种设置也在上面,所以定期备份还是有必要的。恰好我还有一个vps,可以将备份放到上面。我采用的备份方式是自己编写脚本,通过User Script这个插件定期执行。
安装User Script插件
直接在Apps 里面搜索User Scripts进行下载安装即可

添加脚本
在 settings,USER UTILITIES里面找到user scripts,点进去,在最下面点击add new script添加一个脚本
找到添加的脚本,点击edit script
在打开的窗口里加入下面的内容
#!/bin/bash
DateTime=$(date +"%Y:%m:%d %H:%M:%S")
Date=$(date +%Y%m%d)
Port=2222
Host=root@your_remote_ip
FileName="/tmp/tower-flash-backup.tar.gz"
remoteDir=/backup/unraid
keyPath=/mnt/user/backup/keys/id_rsa
#将/boot下面的内容(也就是U盘内容)全部打包到/tmp/tower-flash-backup.tar.gz文件里
tar -czPf $FileName /boot
#在远程vps创建备份文件夹
ssh -i $keyPath -p $Port $Host "mkdir -p $remoteDir"
#将压缩包通过scp传输到vps的/backup/unraid目录下
scp -i $keyPath -P $Port $FileName $Host:$remoteDir/tower-flash-backup-$Date.tar.gz
#只保留最近3个备份文件,其余的删除
ssh -i $keyPath -p $Port $Host "ls -t $remoteDir | sed -n '3,\$p'|awk '{printf \"%s%s\n\",\"$remoteDir/\",\$1}'|xargs rm -f"
保存后可以配置执行周期,我是一周执行一次 执行远程命令时需要对命令用引号包起来,如果远程命令本身需要用到引号记得转义,对于sed、awk这些含有$符号的命令,$符号也需要转义