web-dev-qa-db-fra.com

Comment SCP Data pour ownCloud?

Motivation: owncloud-client échoue périodiquement pour plusieurs raisons; J'ai besoin de scp pendant ces événements. Sur le serveur, ls -la sur $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

Je peux

Je ne peux pas pour une raison quelconque

Où les fichiers SCP?

Serveur: Raspberry Pi 3b. Client: Ubuntu 16.04.

Examen de la réponse d'Ankit

Côté client

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

Du côté serveur

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

où vous devez avoir un chemin complet vers occ. Ça marche!

Conditions préalables:

  1. Répertoire de données sur le serveur Owncloud : connectez-vous au serveur via ssh.Si vous avez installé le serveur owncloud à l'emplacement par défaut (/var/www), cliquez sur OK. dans le fichier de configuration pour rechercher l’emplacement du répertoire de données.

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

Ce fichier vous indiquera l’emplacement du répertoire de données (l’emplacement où tous les fichiers sont stockés). Comme ça; Config.php file of owncloud

Maintenant la Solution :

Tout d'abord , vous pouvez transférer le dossier sur le serveur à l'aide de rsync et de ssh. Son plus pratique et rapide (puisque la compression est incluse). Par exemple, à partir de l’ordinateur local du terminal, utilisez

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

Suivant , connectez-vous au serveur à l'aide de ssh et copiez le dossier dans le répertoire de données de owncloud. (Deux étapes sont nécessaires, car vous devez disposer de l’autorisation root pour copier dans un répertoire de données owncloud qui appartient à www-data user.)

Copier les fichiers de cette façon;

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

  • Dans le répertoire de données, il y a un dossier pour chaque utilisateur owncloud comme owncloud_username, puis sous ce dossier, un dossier comme files; donc mentionné ci-dessus dans la commande.

Enfin, mettez à jour la base de données owncloud en scannant les nouveaux fichiers. Ceci est fait par commande pré-construite. Commencez par changer de répertoire dans votre répertoire d’installation owncloud. Par défaut, il s'agit de \var\www\owncloud. alors,

cd \var\www\owncloud

Si vous faites ls, vous verrez un exécutable sous la forme occ sous ce dossier. This occ est un programme basé sur php.

Pour exécuter occ pour une nouvelle analyse,

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

Une nouvelle analyse complète peut prendre un certain temps. Après la nouvelle analyse, vous verrez le dossier lorsque vous êtes connecté à partir d'un navigateur.


Explication:

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

-a comprend récursif, autorisations, liens, groupes, etc. et bien plus encore. Vérifiez la page de manuel. -v verbeux, -z compresser et transférer.

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

-r copie récursive de dossier, tous les sous-dossiers sont copiés.

6
ankit7540

Votre commande scp pose deux problèmes:

  • Vous essayez de télécharger un répertoire. Vous devez donc fournir l'option -r (copie récursive).

  • Les variables d'environnement sont substituées avant l'exécution de la commande. Par conséquent, $HOME dans [email protected]:$HOME/ s'étend au chemin de votre répertoire de base sur votre machine locale (plutôt que distante). Si les chemins du répertoire de base sur les deux ordinateurs sont différents, la commande ne fonctionnera pas comme prévu, échouant probablement à cause de problèmes d'accès. Lorsque vous utilisez scp, reportez-vous à votre répertoire de base sur la machine distante avec '.' (En d'autres termes, scp interprète les chemins de la machine distante par rapport à votre répertoire personnel).

Donc, la commande correcte sera:

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

Cependant, notez que cette réponse ne fait que souligner vos erreurs en utilisant scp. Reportez-vous aux autres réponses pour obtenir des recommandations sur la manière d'atteindre votre objectif final.

2
Leon