本机 OneDrive 不遵循使用 --display-config 显示的配置,导致不断弹出

本机 OneDrive 不遵循使用 --display-config 显示的配置,导致不断弹出

我安装了本机 onedrive(不是从 PPA 安装的)。验证后,开始同步。

使用 /home/user/ 作为 sync_dir,因此它为我的用户使用 Documents Pictures 和 Desktop 目录。

我将其设置为跳过点文件,并检查.nosync,然后我触碰我不想同步的目录中的.nosync 文件,如下载、VirtualBox \ VMs 等。

我不断收到这些关于 OneDrive 没有此文件或目录的通知,但它们都来自 .config 或 .cache 等点状目录,我以为这些目录由于 skip_dotfiles 为真而被忽略了。

自从发生这种情况以来,我接触了 .config 和 .cache 中的 .nosync 文件,并且还开始使用 skip_dir 参数添加 .cache|.config,并在每个文件之间重新启动了守护进程,但我仍然收到消息。

我确实将它设置为服务

sudo systemctl enable onedrive@user

sudo systemctl start onedrive@user

以下是 onedrive --display-config 的输出(以“用户”身份运行)

Configuration file successfully loaded
onedrive version                       = v2.4.13-1build1
Config path                            = /home/user/.config/onedrive
Config file found in config path       = true
Config option 'check_nosync'           = true
Config option 'sync_dir'               = /home/user/
Config option 'skip_dir'               = .cache|.config
Config option 'skip_file'              = ~*|.~*|*.tmp|sdc*.txt*|securelink*.log|desktop.ini
Config option 'skip_dotfiles'          = true
Config option 'skip_symlinks'          = true
Config option 'monitor_interval'       = 300
Config option 'min_notify_changes'     = 5
Config option 'log_dir'                = /var/log/onedrive/
Config option 'classify_as_big_delete' = 1000
Config option 'upload_only'            = false
Config option 'no_remote_delete'       = false
Config option 'remove_source_files'    = false
Config option 'sync_root_files'        = false
Selective sync 'sync_list' configured  = false
Business Shared Folders configured     = false

以下是我的屏幕上不断弹出的内容的示例: 错误信息截图

系统是全新的 Kubuntu 22.04

Linux katana 5.15.0-50-generic #56-Ubuntu SMP 2022 年 9 月 20 日星期二 13:23:26 UTC x86_64 x86_64 x86_64 GNU/Linux

感谢您响应。我已将配置更改为使用 /home/user/OneDrive 作为同步根目录,并创建了从 /home/user/Documents(目标)到 /home/user/OneDrive/Documents(链接名称)的软链接,用于桌面、图片等。当我进行试运行时,一切似乎都顺利进行,它显示 Documents/... 而不是 OneDrive/Documents 作为链接文件夹。但是,当我运行 onedrive --synchronize --resync 时,它失败了:

$ onedrive --resync --synchronize
Configuration file successfully loaded
Configuring Global Azure AD Endpoints

A database statement execution error occurred: disk I/O error

Please retry your command with --resync to fix any local database corruption issues.

Segmentation fault (core dumped)

答案1

披露:我是 Linux 版 OneDrive 客户端的开发人员 -https://github.com/abraunegg/onedrive

我安装了原生的 onedrive(不是从 PPA 安装的)。Auth,开始同步。onedrive 版本 = v2.4.13-1build1

首先,您正在运行过时且不受支持的客户端版本。请勿从 Ubuntu 存储库安装,也不要从任何 PPA 安装。这些包含不受支持且过时的客户端版本。

请按照在 Ubuntu 平台上安装客户端的步骤安装正确的客户端版本。此信息可在 GitHub 网站上找到:https://github.com/abraunegg/onedrive/blob/master/docs/ubuntu-package-install.md

对于您的实际问题,您的问题源于您所做的以下配置:

Config option 'sync_dir' = /home/user/

请不要这样做。

正如您所发现的,它会尝试开始上传各种项目,并且确实会造成混乱。如果这确实是您想要的配置 - 您将必须配置一大堆排除项,而您目前可能没有这样做 - 如果您不这样做 - 可能会导致诸如您的 SSH 密钥在线暴露给 OneDrive 之类的事情。请不要进行此类配置。

现在..我知道您想为您的用户上传文档图片和桌面目录。

您最好的解决方案是:

  • 配置应用程序以使用 /home/user/OneDrive 的 sync_dir
  • 在您的 /home/user/OneDrive 内部 - 创建指向您想要同步的目录的符号链接,例如:/home/user/Desktop -> /home/user/OneDrive/Desktop ...以便客户端将这些目录的内容同步到 OneDrive 在线。

我将其设置为跳过点文件,并检查.nosync,然后我触碰我不想同步的目录中的.nosync 文件,如下载、VirtualBox \ VMs 等。

和:

Configuration file successfully loaded
Configuring Global Azure AD Endpoints

A database statement execution error occurred: disk I/O error

Please retry your command with --resync to fix any local database corruption issues.

Segmentation fault (core dumped)

此错误是由于使用低于 v2.4.18 的任何版本而导致的 - 因此请将您的客户端升级到 v2.4.21 或更高版本

我建议你这样做:

  • 安装正确的客户端版本。您需要安装 v2.4.21 或更高版本。
  • 正确配置应用程序,使用验证--display-config并手动测试--synchronize --dry-run --verbose以确保客户端执行您期望的操作和排除。

如果您遇到问题,请按照正确的支持流程并在 GitHub 网站上展开讨论。

相关内容