lessコマンドの覚え書き

CentOSからUbuntuにサーバー引越して、いろいろ違いがあった場合その都度対策している。今回は特に困っているわけでは無いが、コマンドラインツールのlessについて、lessはテキストファイルの内容をページ送りで閲覧することが出来るビュアーで間違って編集してしまわない安心感とお手軽さで昔から常用しているツールだ。

大昔は無かったと思うが、CentOSで運用しているとき。ファイル名の代わりに間違ってディレクトリ名を渡してしまった時。エラーでなく、そのディレクトリのファイル名一覧(ls -la の結果)が表示されるようになっていた。これが以外に便利で、ファイルがメチャメチャ入っているディレクトリとかザーッと眺めるのに丁度良い機能だった。

とは言ってもそんなに使う事もないので、忘れたまま先日のサーバー引越&OS変更(CentOS→Ubuntu)を行なった後に、lessを使うとディレクトリ一覧機能が無くなっていた。CentOSのマシンもまだ生きているので改めて試してみるとこちらは引数にディレクトリを与えることで、ファイルの一覧が出来ていた。ディストリビューションごとの機能の違いなようだがlessなんていうレガシーがツールに今更機能の差があるのは考えにくいので、設定関係で調査してみた。

どうやら、lessには前処理を行なうlesspipe(.sh)というシェルスクリプトがあり、ここで圧縮ファイルの展開などを行なっていたようだ。

/usr/bin/lesspipe(.sh)

CentOSとUbuntuでこれらのファイルを比較したところ、CentOSの方には下記のような引数がディレクトリだった場合の処理が入っている。

if [ -d "$1" ] ; then
        ls -alF -- "$1"
        exit $?
fi

これをUbuntuの方にも記載することで、無事ディレクトリリストを閲覧することが出来るようになった。

/usr/bin/lesspipeを直接編集してしまったので、今後アップデートで元に戻ってしまった時のことを考えての覚え書き・・・・とφ(`д´)メモメモ…

Django と Letsencrypt

まろ茶ネットの公開WEBサーバーをSSL化するに当たってLeysencryptを導入しましたが、現在作成中のポータルサイトで採用しているDjango WEBアプリでは -webrootによるサイト登録がうまく行かない問題がありました。(現在はテスト用仮想サーバにて動作確認中)

certbot-auto で登録するサイトのwebroot(DocumentRoot?)に一時的な静的ファイルを作成して、登録URLからアクセスできるかどうかを確認しているようですが、DjangoではDocumentRootに静的ファイルを作成しても、WEBアプリのエンジンによりURLからアクセスできないようになっている感じ。

そこで、urls.py などを細工して、Letsencryptの静的ファイルにアクセスできるように誘導する必要がありました。

<project>/settings.py

# for Letsencrypt certification 
CERT_ROOT = os.path.join(BASE_DIR, '.well-known') 
CERT_URL = '/.well-known'

注).well-known はcertbot-autoが作成する静的ファイル

<project>/urls.py

urlpatterns = [ 
    path('admin/', admin.site.urls),
    path('', include('top.urls')), 
    path('tinymce/', include('tinymce.urls')),
] 
urlpatterns += static(settings.CERT_URL, document_root=settings.CERT_ROOT)

urlpatterns はリストに直接入れても良いような気がするが、上記のようにしないとうまく行きませんでした。

これでDjangoアプリサイトをLetsencryptに登録出来るようになりました。

下記サイトを参考にしました(と言いますか、まんまの情報です)

SSL証明書の取得(無料版letsencrypt)

https://www.server-world.info/query?os=CentOS_8&p=ssl&f=2

CentOS8へのインストール

# dnf module -y install python36
# dnf -y install gcc mod_ssl python3-virtualenv redhat-rpm-config augeas-libs libffi-devel openssl-devel
# curl -O https://dl.eff.org/certbot-auto [root@marocha ~]# mv certbot-auto /usr/local/bin/
# chmod 700 /usr/local/bin/certbot-auto

登録コマンド

# certbot-auto certonly --webroot -w /var/www/html -d www.marochanet.org

バーチャルホストのサイトは並べて登録するか、続けて登録

更新コマンド(複数のバーチャルホストは一度に更新可能)

# certbot-auto renew
ということで、こちらブログサイトも無事SSL化となりました。
 

ストレージ交換

セットアップ以来ずっと放置でしたが、久しぶりにサーバーメンテナンスと称しストレージの交換を行いました。以前から計画していたSSD化ということで、手に入らなくなる前にPATAのSSD(BUFFALO SHD-NPUM)を入手しました。というか、バッファローから出ていたんですね。これの面白いところは、内蔵タイプなのに、何故かUSB端子が付いていたり・・・まさに引っ越し専用に特化した機能っすね。

mDSC_0010

続きを読む…