如何将 SCP 数据传送至 ownCloud?

如何将 SCP 数据传送至 ownCloud?

动机:owncloud-client由于多种原因而定期失败;我需要scp在这些事件中。在服务器中ls -la$HOME

drwxr-xr-x 2 masi masi 4096 May 31 14:14 .
drwxr-xr-x 4 root root 4096 May 31 10:18 ..
-rw------- 1 masi masi 1099 May 31 12:20 .bash_history
-rw-r--r-- 1 masi masi  220 May 31 10:18 .bash_logout
-rw-r--r-- 1 masi masi 3512 May 31 10:18 .bashrc
-rw-r--r-- 1 masi masi  675 May 31 10:18 .profile
-rw------- 1 masi masi 2632 May 31 14:14 .viminfo

我可以

由于某种原因我不能

SCP 文件在哪里?

服务器:Raspberry Pi 3b。客户端:Ubuntu 16.04。

回顾 Ankit 的答案

客户端

masi@masi:~/Documents/Masi$ rsync -avz Directory -e ssh [email protected]:/home/masi/
sending incremental file list
Directory/
Directory/common_mistakes.tex

sent 484 bytes  received 58 bytes  63.76 bytes/sec
total size is 4,143  speedup is 7.64

服务器端

masi@raspberrypi:~ $ ls Directory/
common_mistakes.tex
masi@raspberrypi:~ $ sudo cp -r /home/masi/Directory /var/www/owncloud/data/masi/files/

masi@raspberrypi:~ $ sudo -u www-data php /var/www/owncloud/occ files:scan masi 
Scanning file   /masi/
Scanning folder /masi/
... 
Scanning file   /masi/files/Directory
...
Scanning folder /masi/files/Directory
Scanning file   /masi/files/Hematology/._common_mistakes.tex
Scanning file   /masi/files/Hematology/common_mistakes.tex
...
Scanning folder /masi/cache

其中你必须有一个完整的路径occ。它起作用了!

答案1

先决条件:

  1. Owncloud 服务器上的数据目录 :通过 ssh 连接到服务器。如果您已将 owncloud 服务器安装到默认位置(/var/www),则转到配置文件以查找数据目录位置。

nano /var/www/owncloud/config/config.php

此文件将告诉您数据目录的位置(存储所有文件的地方)。像这样;owncloud的Config.php文件

现在解决方案

第一的,您可以使用 rsync 和 ssh 将文件夹传输到服务器。这是最方便和最快捷的(因为包括压缩)。例如,从本地计算机的终端使用,

rsync -avz /path/to/local/50GBfolder -e ssh username@address:/home/user

下一个,使用 ssh 连接到服务器,然后从那里将文件夹复制到 owncloud 数据目录。(需要两个步骤,因为您需要 root 权限才能复制到用户拥有的 owncloud 数据目录www-data。)

以这种方式复制文件;

sudo cp -r /home/user/50Gbfolder /path/to/data/$owncloud_username/files/

  • 在数据目录中,每个 owncloud 用户都有一个文件夹owncloud_username,然后在该文件夹下有一个文件夹files;因此在命令中提到了上面提到的。

最后,通过扫描来识别新文件,从而更新 owncloud 数据库。这可以通过预建命令完成。首先,将目录更改为您的 owncloud 安装目录。默认情况下,这是\var\www\owncloud。因此,

cd \var\www\owncloud

如果你这样做,你将在此文件夹下ls看到一个可执行文件。这是一个基于 php 的程序。occocc

要运行occ重新扫描,

sudo -u www-data php occ files:scan $user_name

完全重新扫描可能需要一些时间。重新扫描后,您将在从浏览器登录时看到该文件夹​​。


解释:

  • rsync -avz /path/to/local/50GBfolder -e ssh username@address:/home/user

-a包括递归、权限、链接、组等。查看手册页。-v详细、-z压缩和传输。

  • sudo cp -r /home/user/50Gbfolder /path/to/data/$owncloud_username/files/

-r递归文件夹复制,所有子文件夹都被复制。

答案2

您的 scp 命令有两个问题:

  • 您正在尝试上传目录,因此必须提供选项-r(递归复制)。

  • 环境变量被替换命令的执行。因此,$HOMEin[email protected]:$HOME/扩展为本地(而非远程)计算机上主目录的路径。如果两台计算机上的主目录路径不同,则命令将无法按预期工作,很可能由于访问问题而失败。使用 时scp,使用“.”引用远程计算机上的主目录(换句话说,scp解释远程计算机上相对于主目录的路径)。

因此正确的命令是:

scp -r $HOME/5GBdata/ [email protected]:.

但是,请注意,此答案仅指出您在使用时的错误scp。请参阅其他答案以获取有关如何实现最终目标的建议。

相关内容