シェルスクリプトでローカルから xserver へと scp していましたが、実行を見ていると 6 MB もあるフォントを毎回アップしています。
今のところコンテンツはとても軽いので scp でもあっという間ですが、動画を scp するようになるとこの方法では無理と気づきました。
なので rsync です。
最近では、xserver と GitHub を連携することもできるようですが、ローカルから rsync する方がずっと簡単です。
xserver でキーを作成する際に、セキュリティのためパスフレーズを要求されますがそれをブランクにして生成すると、 ローカルから ssh の際にパスフレーズを要求されません。
rsync -avzu -e 'ssh -p 10022 -i ~/.ssh/moheno.key' --delete --checksum ~/astroblog/dist/* moheno@sv14154.xserver.jp:~/moheno.xsrv.jp/public_html/
このようにすると、おそらく差分だけをアップロードするようになると思います。
xserver と GitHub の両方へコンテンツをアップするシェルスクリプトは、
#!/bin/sh
# ビルドするcd ~/astroblognpm run build
# xserver にデプロイrsync -avzu -e 'ssh -p 10022 -i ~/.ssh/moheno.key' --delete --checksum ~/astroblog/dist/* moheno@sv14154.xserver.jp:~/moheno.xsrv.jp/public_html/rsync -avzu -e 'ssh -p 10022 -i ~/.ssh/moheno.key' --delete --checksum ~/astroblog/public moheno@sv14154.xserver.jp:~/moheno.xsrv.jp/public_html/
# github にデプロイstamp=`date '+%y%m%d%H%M%S'`git add .git commit -m $stampgit branch -M maingit push -u origin main
ただし、このシェルスクリプトに実行権限を与えてクリックで実行するとうまくいきません。
コマンドラインから、
./AutoDeploy.sh
だとうまくいくのですが。
この理由が今のところよくわかりません。