Cli Google Drive客户端Grive2:如何启用自动同步

胫甲2Linux上的免费开源命令行Google Drive客户端支持部分同步,在Linux用户中非常流行,但是该工具包括一个嵌入式解决方案,用于与Google Drive文件自动同步。您对本地文件夹了解不多。最近更新了Grive2GitHub项目页面, 包含 启用自动同步解决方案的步骤:预定同步(每5分钟检查一次Google云端硬盘,以进行更改并在本地同步更改),并与本地文件更改事件同步(发生时,来自本地文件系统的新文件)使用Google云端硬盘,并使用systemd单元进行初始化。

systemd单元和同步脚本可直接在Grive2存储库中使用,并在安装应用程序时自动安装。它们不是新的(尽管最近有一个处理名称中带有空格的目录的修复程序),但是直到最近才在项目页面上提到这一点,因此许多用户可能忽略了它。有。
借助此功能,Grive2可以提供更接近于官方Google Drive客户端的体验(仅从同步角度来看,因为没有文件管理器集成等)。 Grive2的自动同步并不完美(尽管对于大多数用户来说足够了)。感谢inotify(通过bash使用) 剧本),本地文件更改会立即上传到Google云端硬盘,但Google云端硬盘中更改的文件不会立即下载到本地文件系统,因为Grive2无法自动检测到Google云端硬盘何时发生更改不行为避免此问题,Grive2使用systemd 计时器 用于检查远程更改的单位(默认设置为5分钟)。
Grive2 Wiki主页 提及 将来可能会实现守护程序模式,以避免多次运行Grive2和同步文件。

Grive 2功能

胫甲2 适用于Linux的原始Grive Google Drive客户端的分支。最初的项目被放弃了,但Vitaliy Filippov以Grive2的名义分叉了该项目,增加了对Drive REST API的支持,对部分同步的支持以及其他改进。 Grive2的功能如下。

  • 在命令行中,将文件从/同步到Google云端硬盘和本地文件系统文件夹
  • 部分/选择性支持:要从同步中排除某些文件和文件夹, .griveignore 文件另外,您只能同步一个子目录。 grive -s subdir
  • --no-remote-new (仅下载已在Google云端硬盘中修改且在本地已存在的文件)和 --upload-only 模式(请勿从Google云端硬盘下载任何内容,仅上传本地更改)
  • 在服务器上创建更新文件的新修订版
  • 自动移动/重命名检测
  • 同步共享文件(但您必须从网络界面将文件明确添加到Google云端硬盘)
  • (可选)限制上载或下载速度
  • 上载或下载文件时(可选)显示ASCII进度栏
  • Auth2认证

跑去看看它需要提供的一切 man grive 安装后。
该应用程序不支持Google文档或符号链接。而且,它不直接支持自动同步(它会持续等待文件系统或Google云端硬盘中的更改并自动上传更改),但是我提到的与Grive 2捆绑在一起的inotify由于脚本和systemd单元而可用。文章的开头。

安装Grive2并启用Google云端硬盘文件和本地文件夹的自动同步

有关如何安装Grive2, 安装 页面。后者相当老,因此请下载最新的Git代码,而不是最新版本。
这些说明包括用于自己创建Debian软件包的说明(可用于Debian,Ubuntu,Linux Mint,基本OS以及其他基于DEB / Apt的Linux发行版)。您也可以从以下网址下载适用于Ubuntu或Linux Mint的Grive2 DEB二进制文件: 在这里 (您也可以添加 PPA 如果您需要自动更新)。即使分叉称为Grive2,二进制文件仍会被调用 grive就像旧的,未维护的项目。下载适用于Ubuntu版本的最新Grive2版本(查看日期以了解哪个更新)。
现在已经安装了Grive2,可以用它来将Google云端硬盘文件与本地目录同步,从而启用计划的同步和文件更改时的同步。在主目录中创建一个文件夹以同步Google云端硬盘文件。
必须在用户的主目录中创建本地Google云端硬盘文件夹。否则,自动同步脚本将无法工作。我们建议您创建一个名为 GoogleDrive 在主目录中,使用文件管理器或输入以下命令:

mkdir ~/GoogleDrive

本文假定这是您要使用的,因此,如果您选择其他文件夹名称,请确保按如下所示更改它:在Grive 2中批准Google云端硬盘并执行初始同步。
首次运行Grive2时, -a 讨论以批准在Google云端硬盘上进行。在命令行中,从主目录导航到新创建的GoogleDrive文件夹并执行 grive -a 在此文件夹中:

cd ~/GoogleDrive
grive -a

链接出现在命令行上。您需要将此链接复制并粘贴到Web浏览器中。出现提示时,请同意并授予Grive2访问您的Google云端硬盘文件的权限,然后复制下一页中显示的代码。返回执行Grive2的终端,粘贴身份验证代码, Enter 关键
Grive将开始将Google云端硬盘文件与本地文件系统上的文件夹同步。启用Google云端硬盘的Grive 2自动同步(计划的同步-每5分钟检查一次Google云端硬盘是否有更改,并同步到本地文件夹,并与本地文件更改事件同步-来自本地文件系统的新文件使用本地文件夹自动上传更改的文件)。
要启用和启动Grive2 systemd单元,请使用以下命令(不要以root身份运行):

systemctl --user enable [email protected]$(systemd-escape GoogleDrive).timer
systemctl --user start [email protected]$(systemd-escape GoogleDrive).timer
systemctl --user enable [email protected]$(systemd-escape GoogleDrive).service
systemctl --user start [email protected]$(systemd-escape GoogleDrive).service

这四个命令中的每个命令中的GoogleDrive代表在步骤1中在主目录中创建的Google Drive文件夹的名称。 GoogleDrive在这些命令中,替换为文件夹命名的名称。该文件夹必须位于您的主目录中。否则它将无法正常工作。
如果您要同步多个Google云端硬盘帐户,则可以使用不同的文件夹名称重复上述步骤(每个帐户使用不同的文件夹)。重覆 systemctl 对将自动与Google云端硬盘同步的每个文件夹执行上述命令。
您可能还想尝试 格里布指示器新的Grive Gtk指示器可使用Grive2与Google云端硬盘同步。它似乎不支持Grive2的内置自动同步功能,而是使用一个简单的计时器以指定的时间间隔将文件同步到Google云端硬盘。

  • 在Xfce或MATE桌面(Ubuntu,Linux Mint)上挂载Google云端硬盘
  • 如何使用Rclone在Linux上安装OneDrive(支持企业和个人帐户)
Sidebar