Como transferir dados para o ownCloud?

1

Motivação: owncloud-client falha periodicamente devido a vários motivos; Eu preciso de scp durante esses eventos. No servidor, ls -la at $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

Eu posso

Eu não posso, por algum motivo

Onde os arquivos SCP?

Servidor: Raspberry Pi 3b. Cliente: Ubuntu 16.04.

Revisão da resposta da Ankit

Lado do cliente

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

Lado do servidor

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

onde você precisa ter um caminho completo para occ . Funciona!

    
por Léo Léopold Hertz 준영 31.05.2016 / 18:08

2 respostas

5

Pré-requisitos:

  1. Diretório de dados no servidor Owncloud : Conecte-se ao servidor via ssh.Se você tiver instalado o servidor owncloud no local padrão ( /var/www ), vá para o arquivo de configuração para localizar o local do diretório de dados.

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

Este arquivo informará a localização do diretório de dados (o local onde todos os arquivos estão armazenados). Como isso;

Agora, a Solução :

Primeiro , você pode transferir a pasta para o servidor usando rsync e ssh. É mais conveniente e rápido (desde que a compressão esteja incluída). Por exemplo, do computador local no terminal,

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

Próximo , conecte-se ao servidor usando ssh e a partir daí copie a pasta para o diretório de dados owncloud. (São necessários dois passos, pois é necessário ter permissão de root para copiar para o diretório de dados owncloud, que pertence a www-data user.)

Copie os arquivos desta forma;

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

  • Dentro do diretório de dados, há uma pasta para cada usuário do owncloud como owncloud_username e, em seguida, há uma pasta como files ; daqui mencionado acima no comando.

Por último, atualize o banco de dados owncloud digitalizando para identificar os novos arquivos. Isso é feito pelo comando pré-construído. Primeiro, altere o diretório para o diretório de instalação do próprio cloud. Por padrão, isso é \var\www\owncloud . então,

cd \var\www\owncloud

Se você usar ls , verá um executável como occ nesta pasta. Este occ é um programa baseado em php.

Para executar occ para redigitalizar,

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

A nova varredura completa pode levar algum tempo. Após a nova verificação, você verá a pasta quando conectado a partir de um navegador.

Explicação:

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

-a inclui recursivas, permissões, links, grupo etc. e muito mais. Verifique a página do homem. -v verbose, -z compress e transfer.

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

-r cópia da pasta recursiva, todas as subpastas são copiadas.

    
por ankit7540 09.06.2016 / 09:56
2

Existem dois problemas com o seu comando scp:

  • Você está tentando fazer o upload de um diretório, portanto, é necessário fornecer a opção -r (copiar recursivamente).

  • As variáveis de ambiente são substituídas antes da execução do comando. Portanto, $HOME in [email protected]:$HOME/ expande para o caminho do seu diretório pessoal em sua máquina local (em vez da remota). Se os caminhos do diretório inicial nas duas máquinas forem diferentes, o comando funcionará da maneira que você esperava, provavelmente com problemas devido a problemas de acesso. Ao usar scp , consulte o seu diretório pessoal na máquina remota com '.' (em outras palavras, scp interpreta caminhos na máquina remota em relação ao seu diretório pessoal).

Então o comando correto será:

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

No entanto, observe que essa resposta apenas aponta seus erros ao usar scp . Consulte as outras respostas para recomendações sobre como atingir seu objetivo final.

    
por Leon 09.06.2016 / 10:35