さくらサーバへssh接続して、ローカルファイルの転送

こんばんわ、管理者です。
今まで、FTPソフトでファイルをアップロードしてたんですが、LaravelとかEC-CUBEとかを構築していると、
変更したファイルを忘れちゃうんですよねー。
それに、結構な変更をすると、ファイル数が多くなって、各所に散らばってるんで、それらをアップロードするのって、大変。

ってことで、ちょっとssh接続して、同期できないかなーって調べてみると、便利なものを発見しました。
『rsync』ってコマンドがありました。世の中、便利になりましたね。
昔は、FFFTPとかで、一晩中アップロードさせて、次の日に会社行ったら、白いアイコンがサーバー上に並んでて、
転送失敗してることなんて、ざらにあったのに。。。
(自分に知識がなかっただけなんでしょうけど、、、)

では、さくらサーバさんを使って、ローカルファイルの転送手順をやっていきます。

1. ローカルPCの任意ディレクトリへ移動

$ cd test/data

2. rsyncを使ってローカル環境のファイルをssh環境へアップロード

$ scp -av -e ssh ./ [サーバーのアカウント]@[ドメイン]:/home/[サーバーのアカウント]/www/test

▽参考
※rsyncを使って、ssh接続した後で、サーバー内のディレクトリ間でコピー

$ ssh [サーバーのアカウント]@[ドメイン]
$ cd /home/[サーバーのアカウント]/www/test/
$ rsync -avp ./ ../test_copy/

▽更新されたファイルのみ同期
$ rsync -avp --existing ./ ../test_copy/

▽送信元にないファイルを送信先で削除
$ rsync -avp --delete ./ ../test_copy/

▽特定のファイル(*.log)を除いて同期《複数ファイルはそれを全部記述。フォルダは、〇〇/》
※除外ファイルを複数指定する場合は、”--exclude=”を繋げていく。
※"test/"のような記述をすると、testフォルダ配下のファイルが同期対象外
※"test"のような記述をすると、testフォルダ自体が同期対象外
※"/.htaccess"のような記述をすると、.htaccessファイルが同期対象外
$ rsync -avp --exclude='*.log' ./ ../test_copy/
$ rsync -avp --exclude='*.log' --exclude='.env' --exclude='.env_server' --exclude='/.htaccess' --exclude='config.php' --exclude='AppData/' exclude='shop/var/' ./ ../test_copy/

▽差分ファイルだけ同期
$ rsync -c -avp ./ ../test_copy/

▽差分ファイルを同期して、かつ除外ファイルを指定
rsync -c -avp --exclude='*.log' --exclude='.env' --exclude='/.htaccess' --exclude='config.php' ./ ../test_copy/

こちらの記事も参考になります。
☆rsyncのサンプル集
https://qiita.com/shnagai/items/7403411b4aa193d0fa0d
☆rsyncのオプション一覧
https://www.systemexpress.co.jp/centos/scprsync.html
☆rsyncの除外例