linux服务器数据备份
记录linux服务器端数据备份相关内容
由于经常要从服务器上备份数据,这篇文章主要记录数据备份的一些方案。
基于Python3
在需要下载的文件目录下,开启简单的文件服务器,下面的命令指定了端口为3040.
1 | python -m http.server 3040 |
需要注意防火墙开放3040端口。
备份到google盘
gdrive
gdrive的github项目地址为: github项目
gdrvie可以用来下载和上传文件,还可以指定同步的文件夹。
安装
首先,执行以下命令安装gdrive
1 | wget -O "https://docs.google.com/uc?id=0B3X9GlR6EmbnWksyTEtCM0VfaFE&export=download" bin/gdrive |
第二步,认证登录
输入以下命令,在浏览器访问网址,得到验证码。
1 | gdrive about |
认证完毕后,token文件路径为~/.gdrive/token_v2.json
.
使用
查看文件
1
2
3
4
5
6
7
8
9
10gdrive [global] list [options]
options:
-m, --max <maxFiles> 最大显示文件数: 30
-q, --query <query> 过滤命令,默认为: "trashed = false and 'me' in owners". 查看https://developers.google.com/drive/search-parameters
--order <sortOrder> 排序. 查看See https://godoc.org/google.golang.org/api/drive/v3#FilesListCall.OrderBy
--name-width <nameWidth> 文件显示字符宽度, 默认: 40, 最小: 9, 可使用 0 表示显示全部 full width
--absolute Show absolute path to file (will only show path from first parent)
--no-header Dont print the header
--bytes Size in bytes上传文件
1
2
3
4
5
6
7
8
9
10
11
12
13gdrive [global] upload [options] <path>
options:
-r, --recursive 上传目录及其子目录
-p, --parent <parent> 父目录id,可以指定多个父目录
--name <name> 保存文件名
--description <description> 文件描述
--no-progress 隐藏上传进度
--mime <mime> 强制mime
--share 公开分享文件
--delete 上传完成后删除本地文件
--timeout <timeout> 超时时间,0为永不超时,默认为300
--chunksize <chunksize> 上传分片大小,默认为: 8388608下载文件
1
2
3
4
5
6
7gdrive [global] download query [options] <query>
options:
-f, --force 覆盖本地同名文件
-r, --recursive 下载目录及其子目录,documents will be skipped
--path <path> 下载路径
--no-progress 隐藏下载进度同步文件夹
1
2
3
4
5
6
7
8
9
10
11gdrive [global] sync upload [options] <path> <fileId>
options:
--keep-remote 发生冲突时保留服务端文件
--keep-local 发生冲突时保留本地文件
--keep-largest 发生冲突时保留最大文件
--delete-extraneous 删除服务端其他文件
--dry-run Show what would have been transferred
--no-progress Hide progress
--timeout <timeout> 超时时间,0为永不超时,默认为300
--chunksize <chunksize> 上传分片大小,默认为: 8388608
同步文件夹
参考官方示例:
1 | # Create directory on drive |
这样我们可以写个定时脚本往指定文件夹添加添加文件进行同步了。
下载谷歌盘分享的文件
对于分享的文件,需要取得share_id
。
使用gdown
gdown只是用来下载谷歌网盘分享的文件。
1 | pip install gdown # 安装gdown |
下载命令
1 | gdown --id <share_id> |
使用wget
1 | wget -O /usr/bin/user.json "https://docs.google.com/uc?id=<share_id>&export=download" |
备份到webdav
基于davfs2的docker镜像
github: https://github.com/efrecon/docker-webdav-client
1 | docker run -itd --name webdav_client \ |
全能挂载工具rclone
github: https://github.com/rclone/rclone