WebDAVでマウントしたlolipopのサーバにMacからrsyncするときはiconvオプションが重要
タイトルの通りです。iconvをつけないと、日本語ファイル名で濁点・半濁点が入っている時に文字化けしてアップロードされてしまい、期待通りのURLでアクセスできません。
正解の手順は以下のとおり。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Homebrewで最新のrsyncをインストール
brew install libiconv rsync
# 一旦ターミナルを閉じて、再度開く。
# rsyncのバージョン3.1以上が入っていることを確認。
rsync --version
# 以下のようにiconvオプションをつけてアップロード実行
rsync --iconv=UTF8-MAC,UTF-8 -auv \
/Users/xxx/.../_site/ \
/Volumes/lolipop-abc.webdav-lolipop.jp/foobar/
# /Volumes/lolipop-abc.webdav-lolipop.jp/foobar/は、
# WebDAVでマウントした、lolipopのサーバ側のアップロード先の
# ディレクトリ(Command+KでFinderでマウント)
lolipopで借りているwebサーバで、ssh接続ができないライトプランだと、FTPかWebDAVしかファイルアップロードの手段がありません。FTPだとrsyncコマンドが使えなくて面倒なので、WebDAVでマウントしてJekyllで生成したスタティックなウェブサイトのデータをアップロードしています。
Jekyllでは日本語ファイル名(サンプル.mdみたいな)のMarkdownファイルを作っても、ローカルではとくに問題なく動いていたので、lolipopの環境にアップロードして運用しようとしたところ、濁点・半濁点を含む日本語名のファイルで問題がおきました(アクセスするとファイルが存在しない、というエラーになる)。
説明の順番が逆になりましたが、上記のようにすると解決します。キモは、
- Homebrewで最新版のrsyncをインストールする
- rsync時に--iconv=UTF8-MAC,UTF-8オプションを追加する
です。
[tmkm-amazon]B00J3H931I[/tmkm-amazon]