Hugoでコンテンツを生成すると、ftpクライアントなどでWebサーバーにデプロイ(アップロード)するのですが、都度ftpクライアントを使うのも面倒になってくる
そういう時に...
lftpコマンドを利用する
インストールする
$ sudo apt install lftp
設定ファイルを書く
$ nano lftp.dat
open -u userid,'p@ssword0' ftp.example.co.jp
set ftp:charset utf-8
mirror -R --delete --verbose=3 --log=/home/user/hugo-site/lftp.log /home/user/hugo-site/public /
echo finished!
close
quit
mirror -R --delete --verbose=3 でミラーリングアップロードする
| オプション | 意味 |
|---|---|
| -R | ローカル側からサーバー側へアップロードする / src-dirにローカル側、target-dirにサーバー側のパスを指定する |
| --delete | target-dirにあってsrc-dirに無いものは削除される |
| --verbose=3 | 表示されるメッセージのレベルを指定する |
コンテンツの生成後にアップロードする
コンテンツを生成するスクリプトを書いておく
$ nano site_generate.sh
rm -rf public/
hugo --destination public --theme 適用するテーマ
rm ./lftp.log
lftp -f ./lftp.dat
$ chmod +x site_generate.sh
コンテンツの生成後にアップロードする時は
$ ./site_generate.sh
rsyncコマンドを利用する
インストールする
$ sudo apt install rsync
コンテンツの生成後にアップロードする
コンテンツを生成するスクリプトを書いておく
$ nano site_generate.sh
rm -rf public/
hugo --destination public --theme 適用するテーマ
rsync -avz --update --delete /home/user/hugo-site/public/ [email protected]:/wwwroot/example.co.jp
$ chmod +x site_generate.sh
| オプション | 意味 |
|---|---|
| -avz | アーカイブモード / 動作内容を表示する / 転送中のデータを圧縮する |
| --update | target-dirのものがsrc-dirより新しければコピーされない |
| --delete | target-dirにあってsrc-dirに無いものは削除される |
コンテンツの生成後にアップロードする時は
$ ./site_generate.sh