次のような静的なWebサイトのファイルを含むフォルダーがあります。
/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...
ラップトップで何かを更新した場合、1つのコマンドでファイルをubuntuサーバーに送信します。 FTPがセットアップされていなくても、scpでこれを処理できるかどうか疑問に思います。
コマンドscp -r source user@target:dest
は、sourceのすべてのサブディレクトリを調べてコピーします。
ただし、scp
はcp
のように動作し、ソースと宛先の両方で同じであっても、常にファイルをコピーします。 [回避策については こちら を参照してください。]
これは静的なWebサイトであるため、更新のみを行い、全体を再作成することはほとんどないため、rsync
の代わりに_shでscp
を使用すると、物事の進行が速くなります。おそらくのようなもの
rsync -av -e ssh source user@target:dest
...始めましょう。 LAN経由でこれを行う場合は、rsync
の代わりに個人的にオプション-avW
を使用します。
Rsyncには、ソース内の削除を複製する機能もあります。したがって、ツリーからファイルを削除する場合は、上記のようにrsync
を実行し、フラグ--delete
を含めると、同じファイルが宛先側から削除されます。
scpには、必要な処理を実行する再帰フラグがあります。 scp -r /base/directory user@server:/to/location
man scp
から
-r Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.
他の人が指摘したように、scp -rとrsync -rは、必要なものを取得するための最も信頼できる方法です。
Sshfsを使用して、ローカルドライブのように「マウント」することもできます:sshfs user@Host:/site /mnt/mountpoint
(ただし、おそらくローカルで作業し、rsyncを使用して展開する方がよいでしょう。注意すべきもう1つのツールです。)