ホームページのミラーリングアップロードは長年 FFFTP を使ってきた。数年前に、不具合が出て、 WinSCP に変えた。しかし、突然、ホスト接続の設定が消えてしまった。 そこで、lftp コマンドを使ってみることにした。
ミラーリングアップロードのテストはできたが、アクセス権限が変わってしまい、今回アップロードした ファイルが公開されていなかった。
"mirror -R --file-mode=644 --dir-mode=755 -v --delete" としてみたが、 うまく行かなかった。set mirror:file-mode 644 としてみたが、mirror:file-mode という変数はなかった。
とりあえず glob chmod 644 *.html として今回アップロードしたファイルを公開した。
AI検索によると、-R オプションを使うと、再帰的にディレクトリ配下の権限を変更できるようだ。
ディレクトリもファイルも同じ 755 に変わるが、これでいいのだろう。
chmod -R 755 target_directory 755: 所有者は全権限、グループ・その他は読み取りと実行(Webディレクトリ・ファイルに一般的)
cgywin のターミナルから lftp のミラーリングアップロードを実行した。
lftp -u user,password \ -e "mirror -R -v --delete \ /cygdrive/c/_www/travel /travel" host
この段階の権限は下のようになった。
lftp user@host:/travel> ls drwx---r-x 3 user 1000 72 Mar 6 10:11 . drwx---r-x 35 user 1000 4096 Mar 6 10:11 .. drwxr-x--- 2 user 1000 161 Mar 6 10:12 izu -rwxr-x--- 1 user 1000 1817 Oct 10 2023 izu01.html -rwxr-x--- 1 user 1000 2094 Oct 6 2023 jipang01.html
この段階では https://hatada.stars.ne.jp/travel/izu/izu01.html は開けなかった。
travel 以下の権限を 755 に変更した。
lftp user@host:/travel> cd ../ lftp user@host:/> chmod -R 755 travel lftp user@host:/> cd travel cd ok, cwd=/travel lftp user@host:/travel> ls drwxr-xr-x 3 user 1000 72 Mar 6 10:11 . drwx---r-x 35 user 1000 4096 Mar 6 10:11 .. drwxr-xr-x 2 user 1000 161 Mar 6 10:12 izu -rwxr-xr-x 1 user 1000 1817 Oct 10 2023 izu01.html -rwxr-xr-x 1 user 1000 2094 Oct 6 2023 jipang01.html lftp user@host:/travel>
これでブラウザで https://hatada.stars.ne.jp/travel/izu/izu01.html が表示された。
変更があったものだけをアップロードするには --only-newer を付け加える。
lftp -u user,password \ -e "mirror -R --only-newer -v --delete \ /cygdrive/c/_www/travel /travel" lftp user@host:/>chmod -R 755 travel