目次
コマンド
rsync -avz -e "ssh -p 10022 -i ~/.ssh/[hoge].key" [username]@[hostname]:/home/hogehoge/www/example.com/ ./
※ポートとか鍵ファイル指定いらないときはrsync -avz [username]@[hostname]:/home/hogehoge/www/example.com/ ./
/home/hogehoge/www/example.com/ がサーバー上のフォルダのパス./ がいまターミナルで開いているパソコンの中のフォルダのこと
何が起きるか
やりたいこと
/home/hogehoge/www/example.com/ のデータを、
自分のパソコンの /Users/[username]/temp/test にもってきたい!


やること
1. ssh接続確認
仮に ssh -p 10022 -i ~/.ssh/[hoge].key [username]@[hostname] で接続できるとします。接続できるようにしておいてください
2. 自分のパソコンのファイルを置きたいフォルダをターミナルで開く
仮に cd ~/temp/test/ とします。
3. rsync コマンドでデータを持ってくる
rsyncコマンドで ssh接続した先にある/home/hogehoge/www/example.com/ のデータを 今開いているフォルダ ./ に入れてね とやります
rsync -avz -e "ssh -p 10022 -i ~/.ssh/[hoge].key" [username]@[hostname]:/home/hogehoge/www/example.com/ ./※パスフレーズを聞かれるなどしたら、答えます。聞かれないパターンの場合はそのまま処理がはじまります。

4. 処理が終わったら完了


※オプション-avz は、「元のファイル構造や情報を保ったまま、進行状況を見ながら、圧縮して効率よくコピーする」という意味らしいです。
こんなときは
ファイルごとのダウンロード進捗率を見たいよ
--progress オプション
これを付けるとどでかいファイルを落としてくるとき、進行状況が見えるようになります。どでかいファイルのところで「処理が止まったか?」とドキドキしたくないときに。
rsync -avz --progress -e "ssh -p 10022 -i ~/.ssh/[hoge].key" [username]@[hostname]:/home/hogehoge/www/example.com/ ./


どでかいファイルは持って来たくないよ
--exclude-from="exclude.txt" オプション
1. 自分のパソコンのファイルを置きたいフォルダに除外ファイルリスト exclude.txt を置く
wp-config.php
.htaccess
wp-admin
uploads2. 自分のパソコンのファイルを置きたいフォルダをターミナルで開く
 cd ~/temp/test/
3. ls でフォルダに exclude.txt が入っているのを確認
4. rsyncコマンドに --exclude-from="exclude.txt" を足して実行
rsync -avz --exclude-from="exclude.txt" -e "ssh -p 10022 -i ~/.ssh/[hoge].key" [username]@[hostname]:/home/hogehoge/www/example.com/ ./
5. リストにあるファイルとフォルダ以外がパソコンの中のフォルダにファイルが入る

コメント