ローカルファイルがあります。
/doc/dir-monkey/monkey.txt
/doc/dir-monkey/monkey.xml
/doc/dir-dog/dog.txt
/doc/dir-dog/dog.xml
/doc/dir-cat/cat.txt
/doc/dir-cat/cat.xml
今scpを介してリモートサーバーにアップロードしたいと思います。
ディレクトリを同じ方法で維持し、必要に応じて古いファイルを上書きしたいと思います。私は一度に1つのファイルしかアップロードできないことを知っており、以前にファイルを圧縮してからリモートで解凍する方法についていくつかのヒントを見つけました。これに関する詳細な指示はありますか?
現在MacOSX 10.10を使用しており、リモートサーバーは次のとおりです。
Distributor ID: Debian
Description: Debian GNU/Linux 7.5 (wheezy)
Release: 7.5
Codename: wheezy
答え1
利用可能なパラメータとオプションが異なるため、ディストリビューションのマニュアルを参照してください。使用man scp
。
OSXでSCPを使用した再帰コピーの場合、次のことが機能します。
scp -r /local/directory [email protected]:/remote/directory
答え2
前述したように、scp -r localDir user@server:remoteDirは再帰コピーを実行する必要があります。ファイルのタイムスタンプが気になる場合は、-pフラグを追加するとローカルサーバーにも保存されます(それ以外の場合はコピー時間に変更されます)。
これは少量のデータに適しています。多数のファイル(多数のファイル)を使用して定期的にこれを行う必要があり、変更された内容のみを更新したい場合は、rsyncを使用することをお勧めします。
次のように動作します。
rsync -avz locaDir user@remoteServer:remoteDir
ただし、osxとubuntuではrsyncが必要です(可能です;))。
答え3
これが構造のすべてであるのか、それとも1つのコンポーネントであるのかはわかりません。それであれば、同様のことができますscp -r /doc remote:/doc_copy
。
これが単なるサブセットであれば、scpですべてのことを行うのははるかに難しいでしょう。いくつかのオプションは、一度に1つずつscpを使用することも、同様のものを使用することもありますrsync
(より表現力のある包含/除外インターフェースを使用)。