九溪

溪水润知林,滴露启慧心

用户工具

站点工具


wiki:linux:auto-backup-use-jianguoyun

使用坚果云定时备份文件内容

准备

  1. 坚果云账号,免费版即可

坚果云配置

在 右上角用户名 - 【账户信息】-【安全选项】-【第三方应用】添加一个应用

输入名称,如 davauto,点击【生成密码】

记住该密码(下文称为 第三方应用密码)

Cadaver 命令行操作坚果云数据

安装 Cadaver

apt-get install cadaver

连接到坚果云

cadaver https://dav.jianguoyun.com/dav/

手动登陆坚果云

根据提示输入 坚果云账户 和刚才创建的 第三方应用密码,进入交互模式。

Authentication required for nutstore on server `dav.jianguoyun.com':
Username: xxx@gmail.com
Password: 
dav:/dav/> 

自动登陆坚果云

在当前用户的 home 目录创建 .netrc 文件,内容如下:

machine dav.jianguoyun.com
login xxx@gmail.com # 坚果云账户
password xxxxxx # 第三方应用密码

此时,再执行 cadaver https://dav.jianguoyun.com/dav/ 命令就不用输入账户密码。

坚果云的文件操作

支持的命令可在登陆坚果云后,输入 help 查看:

dav:/dav/> help
Available commands:
 ls         cd         pwd        put        get        mget       mput
 edit       less       mkcol      cat        delete     rmcol      copy
 move       lock       unlock     discover   steal      showlocks  version
 checkin    checkout   uncheckout history    label      propnames  chexec
 propget    propdel    propset    search     set        open       close
 echo       quit       unset      lcd        lls        lpwd       logout
 help       describe   about
Aliases: rm=delete, mkdir=mkcol, mv=move, cp=copy, more=less, quit=exit=bye

示例1:进入backup目录,上传hello.txt:

dav:/dav/> cd backup 
dav:/dav/backup/> put hello.txt 

示例2:进入backup目录,下载hello.txt

dav:/dav/> cd backup 
dav:/dav/backup/> get hello.txt

将会从坚果云下载文件到当前目录

使用脚本执行文件操作,便于以后自动执行命令。如,创建脚本 hello.sh 如下:

hello.sh
put word.txt
bye

假设操作的目录为 backup,执行下面命令以执行 hello.sh 脚本:

cadaver https://dav.jianguoyun.com/dav/backup/ < davbak
dav:/dav/backup/> put word.txt
Uploading word.txt to `/dav/backup/word.txt': succeeded.
dav:/dav/backup/> bye
Connection to `dav.jianguoyun.com' closed.

使用脚本定时从坚果云备份或恢复文件

备份数据的脚本

在 /opt/cron/ 目录下创建脚本(目录可按需指定),操作内容为

  1. 复制网站内容到备份目录
  2. 清理目录下不需要的文件
  3. 打包
  4. 将打包好的文件上传到坚果云

脚本命名为 auto_colinol.com.backup.sh ,具体内容如下:

auto_colinol.com.backuo.sh
#!/bin/bash
 
date=`date +%y%m%d`
site='colinol.com'
backpath=${site}
tarfilename=${site}.tar.gz
tarfilenamecp=${site}-${date}.tar.gz
 
cp -a /var/www/${site}/ ${backpath}
 
rm -f -r ${backpath}/.git
rm -f -r ${backpath}/.well-known
rm -f -r ${backpath}/data/cache
rm -f -r ${backpath}/data/tmp
 
tar zcf ${tarfilename} ${backpath}
 
cadaver https://dav.jianguoyun.com/dav/backup/colinol.com/ <<E
put ${tarfilename}
rm ${tarfilenamecp}
cp ${tarfilename} ${tarfilenamecp}
E
 
rm -f -r ${backpath}
rm ${tarfilename}

恢复数据的脚本

在 /opt/corn/ 目录下创建脚本(目录可以按需指定),操作内容为

  1. 下载坚果云的最新打包数据到本地
  2. 解压打包数据
  3. 其他必要操作

脚本命名为 loadbackupsite.sh ,具体内容如下:

loadbackupsite.sh
#!/bin/bash
#date >> /opt/cron/log/backsitebegin.log
 
site='colinol.com'
 
tarfilename=${site}.tar.gz
 
cadaver https://dav.jianguoyun.com/dav/backup/colinol.com/ <<E
get ${tarfilename}
E
 
tar -zxvf ${tarfilename}
rm ${tarfilename}
 
cursitepath=/var/www/html
rm -f -r ${cursitepath}
mv ${site} ${cursitepath}
 
mkdir ${cursitepath}/data/cache
mkdir ${cursitepath}/data/tmp
 
chmod -R 777 ${cursitepath}/data/
chmod -R 777 ${cursitepath}/lib/
chmod -R 777 ${cursitepath}/conf/
 
#date >> /opt/cron/log/backsiteend.log

设置定时处理程序:Corntab

评论

请输入您的评论. 可以使用维基语法:
 
wiki/linux/auto-backup-use-jianguoyun.txt · 最后更改: 2023/01/03 15:25 由 127.0.0.1