gdrive 是 Linux 下访问 google drive 的工具,可以实现文件的上传下载及同步,对于服务器文件的备份很方便。配合 定时运行脚本,可实现自动化操作。

项目地址:https://github.com/prasmussen/gdrive

编译安装

新版的 gdrive 无法在 Google 账户授权了,需要自己手动编译安装并绑定 ID。

有一个自动脚本可以完成这一过程:https://github.com/mbrother2/backuptogoogle

curl -o butgg.bash https://raw.githubusercontent.com/mbrother2/backuptogoogle/master/butgg.bash
bash butgg.bash --setup

运行脚本会自动安装 go 环境和下载 gdrive 最新源码,期间会提示输入 Google credential,申请自己的 credential 教程如下:https://github.com/mbrother2/backuptogoogle/wiki/Create-own-Google-credential-step-by-step

输入两个 ID 后,脚本提示设置需要备份的目录之类的,这里我们只需要编译好的 gdrvie,所以直接 ctrl C 结束当前脚本即可,编译好的可执行文件在 ~/go/bin 目录下,复制到系统路径并设置可执行属性:

    cp ~/go/bin/gdrvie /usr/local/bin
    chmod +x /usr/local/bin/gdrive

执行测试账号是否已经绑定:

gdrive about

返回值为你的google drvie 信息即可。

使用

list

gdrive list [options]

options:
  -m, --max <maxFiles>       Max files to list, default: 30
  -q, --query <query>        Default query: "trashed = false and 'me' in owners".
  --order <sortOrder>        Sort order.

query可用参数:https://developers.google.com/drive/api/v3/ref-search-terms#operators
order 可用参数:'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'

例如,列出文件名包含 "gdrive" 的最大的三个文件,按从大到小排列:

gdrive list --query "name contains 'gdrive'" --order "quotaBytesUsed desc" -m 3

download

想要下载文件或文件夹,首先必须知道文件的 ID,需要通过 list 指令获取。

gdrive download [options] <fileId>

options:
  -f, --force           Overwrite existing file
  -r, --recursive       Download directory recursively, documents will be skipped
  --path <path>         Download path

例如,下载文件到指定目录:

gdrive download --path /your/path 0B3X9GlR6EmbnZ1NGS25FdEVlWEk

upload

drive upload [options] <path>

options:
  -r, --recursive               Upload directory recursively
  -p, --parent <parent>         Parent id, used to upload file to a specific directory
  --name <name>                 Filename

不指定目录则上传到根目录。

例如,上传文件到指定 google drive 目录:

gdrive upload -p 3X9GlR6EmbnZ1NGS25FdEVlW test.txt

mkdir

在 google drive 根目录新建文件夹:

gdrive mkdir foldername

sync

同步功能可以将文件或文件夹进行同步,适用与 vps 的备份。

同步远程文件夹到本地

gdrive sync download [options] <fileId> <path>
options:
  --keep-remote         Keep remote file when a conflict is encountered
  --keep-local          Keep local file when a conflict is encountered

例如,同步远程文件夹到本地:

gdrive sync download 3X9GlR6EmbnZ1NGS25FdEVlW /home/download
options:
  --keep-remote         Keep remote file when a conflict is encountered
  --keep-local          Keep local file when a conflict is encountered

同步本地文件夹到远程

gdrive sync upload [options] <path> <fileId>

例如:

gdrive sync upload /home/upload 3X9GlR6EmbnZ1NGS25FdEVlW 

以后如果文件发生了更改需要再次同步,则可以再次执行以上命令。

查看当前已经设置的sync 同步:

gdrive sync list

标签:gdrive

你的评论