Вопрос Как 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

Я могу

  • ssh masi@192.168.1.101

Я не могу по какой-то причине

  • scp $HOME/5GBdata/ masi@192.168.1.101:$HOME/

Где файлы SCP?

Сервер: малина Pi 3b. Клиент: Ubuntu 16.04.

Обзор ответа Анкита

Сторона клиента

masi@masi:~/Documents/Masi$ rsync -avz Directory -e ssh masi@192.168.1.107:/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
2018-05-31 16:08


происхождения


У вас есть 50GB документов на вашем клиенте, которые вы хотите поместить в собственный сервер? Вы можете загрузить с помощью scp и затем выполнить повторное сканирование на сервере. Тем не менее, я понятия не имею, что путь, по которому вы помещаете файлы, тоже является частью собственного. Это похоже на домашнюю папку пользователя. - bc2946088
Я предлагаю rsync через ssh или sshfs help.ubuntu.com/community/rsync а также digitalocean.com/community/tutorials/... а также help.ubuntu.com/community/SSHFS , в противном случае, ИМХО, ваш вопрос слишком широк, так как есть, вероятно, еще 20 вариантов. Пожалуйста, задайте конкретный вопрос о конкретном варианте. - Panther
Просто установите собственный клиент desktopcloud, поместите данные в синхронизированный каталог и подождите. - fkraiem
Это любой каталог, который вы выбираете при установке собственного настольного клиента, и содержимое которого синхронизируется с сервером. - fkraiem
Я думаю, вы должны это прочитать. doc.owncloud.org/desktop/2.1 (Это мой последний комментарий здесь.) - fkraiem


ответы:


Предпосылки:

  1. Каталог данных на сервере Owncloud : Подключение к серверу через ssh.Если вы установили owncloud сервер в местоположение по умолчанию (/var/www), затем перейдите в файл конфигурации, чтобы найти местоположение каталога данных.

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

В этом файле указывается местоположение каталога данных (место, где хранятся все файлы). Как это; Config.php file of owncloud 

Сейчас Решение:

Первый, вы можете перенести папку на сервер с помощью rsync и ssh. Его наиболее удобно и быстро (поскольку сжатие включено). Например, с локального компьютера на терминале,

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

следующий, подключитесь к серверу с помощью ssh и оттуда скопируйте папку в каталог данных owncloud. (Требуется два шага, так как вам нужно разрешение root для копирования в собственный каталог данных, который принадлежит www-data пользователь.)

Скопируйте файлы таким образом;

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

  • Внутри каталога данных есть папка для каждого пользователя usercloud как owncloud_username, то под ним есть папка как files; как указано выше в команде.

И, наконец, обновите базу данных owncloud путем сканирования, чтобы идентифицировать новые файлы. Это делается с помощью предварительно созданной команды. Во-первых, смените каталог на свой собственный каталог установки. По умолчанию это \var\www\owncloud, так,

cd \var\www\owncloud

Если вы это сделаете ls, вы увидите исполняемый файл как occ под этой папкой. Эта occ это программа на основе php.

Бежать occ для повторного сканирования,

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

Полное повторное сканирование может занять некоторое время. После повторного сканирования вы увидите папку при входе в систему из браузера.


Объяснение:

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

-a включает рекурсивные, разрешения, ссылки, группу и т. д. и многое другое. Проверьте man-страницу. -v подробный, -z сжимать и переносить.

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

-r рекурсивная копия папки, все подпапки скопированы.


5
2018-06-09 07:56



@Masi: Первый вопрос: путь может отличаться для вашей установки. Тот, который я упомянул, предназначен для установки по умолчанию. Второй вопрос: для rsync -a включает -rlptgoD который предназначен для рекурсивных, ссылок, сохранения разрешений, сохранения времени модификации, сохранения группы, сохранения права собственности, сохранения файлов устройств. Это намного больше, чем -c, ManPage для rsync - ankit7540
Спасибо за отличное объяснение! Я думаю, что я должен использовать rsync -avz, - Léo Léopold Hertz 준영


Есть две проблемы с вашей командой scp:

  • Вы пытаетесь загрузить каталог, поэтому вы должны предоставить -r (копирование рекурсивно).

  • Переменные среды заменяются до выполнение команды. Следовательно, $HOME в masi@192.168.1.101:$HOME/ расширяется до пути к вашему домашнему каталогу на вашей локальной (а не удаленной) машине. Если пути на домашнем каталоге на двух машинах отличаются друг от друга, то команда будет работать не так, как вы предполагали, скорее всего, из-за проблем с доступом. Когда используешь scp, обратитесь к своему домашнему каталогу на удаленном компьютере с помощью «.». (другими словами scp интерпретирует пути на удаленной машине относительно вашего домашнего каталога).

Таким образом, правильная команда будет:

scp -r $HOME/5GBdata/ masi@192.168.1.101:.

Однако учтите, что этот ответ указывает только на ваши ошибки при использовании scp, Обратитесь к другим ответам за рекомендации о том, как достичь конечной цели.


2
2018-06-09 08:35