トップシステム全般 > Windows で lftp コマンドを使う

Windows で lftp コマンドを使う

はじめに

ホームページのミラーリングアップロードは長年 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

リファレンス

[1]
[2]