動機:owncloud-client
はさまざまな理由で定期的に失敗します。それらのイベント中にscp
が必要です。サーバーでは、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
私は出来ます
なんでかできない
scp $HOME/5GBdata/ [email protected]:$HOME/
ファイルをSCPする場所は?
サーバー:Raspberry Pi 3b。クライアント:Ubuntu 16.04。
クライアント側
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
への完全なパスが必要な場所。できます!
前提条件:
/var/www
)にインストールした場合は、次に進みます。 configファイルに移動して、データディレクトリの場所を見つけます。nano /var/www/owncloud/config/config.php
このファイルは、データディレクトリの場所(すべてのファイルが保存されている場所)を示します。このような;
今、Solution:
最初に、rsyncとsshを使用してフォルダをサーバーに転送できます。最も便利で高速です(圧縮が含まれているため)。たとえば、端末のローカルコンピューターから使用する場合、
rsync -avz /path/to/local/50GBfolder -e ssh username@address:/home/user
次に、sshを使用してサーバーに接続し、そこからowncloudデータディレクトリにフォルダーをコピーします。 (www-data
ユーザーが所有するowncloudデータディレクトリにコピーするにはroot権限が必要なので、2つのステップが必要です。)
この方法でファイルをコピー;
Sudo cp -r /home/user/50Gbfolder /path/to/data/$owncloud_username/files/
owncloud_username
というフォルダーがあり、その下にfiles
というフォルダーがあります。したがって、上記のコマンドで言及しました。最後に、スキャンしてowncloudデータベースを更新し、新しいファイルを特定します。これは、事前作成されたコマンドによって行われます。最初に、ディレクトリを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
には、再帰、許可、リンク、グループなどが含まれます。マンページを確認してください。 -v
冗長、-z
圧縮および転送。
Sudo cp -r /home/user/50Gbfolder /path/to/data/$owncloud_username/files/
-r
再帰的なフォルダーのコピー。すべてのサブフォルダーがコピーされます。
Scpコマンドには2つの問題があります。
ディレクトリをアップロードしようとしているため、-r
オプションを指定する必要があります(再帰的にコピーします)。
環境変数が置き換えられますbeforeコマンドの実行。したがって、$HOME
の[email protected]:$HOME/
は、(リモートではなく)ローカルマシン上のホームディレクトリのパスに展開されます。 2台のマシンのホームディレクトリパスが異なる場合、コマンドは意図したとおりに動作せず、おそらくアクセスの問題のために失敗します。 scp
を使用する場合は、リモートマシンのホームディレクトリを「。」で参照してください。 (つまり、scp
は、ホームマシンに関連するリモートマシン上のパスを解釈します)。
したがって、正しいコマンドは次のようになります。
scp -r $HOME/5GBdata/ [email protected]:.
ただし、この回答は、scp
を使用した際の間違いを示しているだけです。最終目標の達成方法に関する推奨事項については、他の回答を参照してください。