たちまち。

即席で役に立つこと。

Windowsでサブディレクトリ配下のファイル名のみ(パスなし)を取得する

f:id:aposke:20210120180111j:plain

Windowsのdirコマンドで、サブディレクトリを含むファイル一覧を取得したい。

ただし、ファイルのフルパスはいらない。こちとらファイル名のみの一覧が欲しいのだ。

しかし、dirコマンドをざっと調べてみたものの、サブディレクトリを含めてファイル名のみを一括で出力するオプションはないようだ。

そこで、以下の手順で生成することとする。

手順1. dirコマンドでファイル一覧出力

dir /s /b /a-d フォルダ名 > filelist.txt

フルパス付きだが一旦これで出力

プチ解説

  • /s … サブディレクトリを含む
  • /b … ファイル名のみ表示
  • /a-d … aは属性指定。dはディレクトリ。手前にハイフンをつけることで除外。つまりディレクトリを除外している。

手順2. 正規表現でパス部分を削除

正規表現が使える任意のテキストエディタでファイルを開き、以下の条件で空文字に置換する。

エディタでの検索文字列

.*\\

プチ解説

  • . … 任意の1文字
  • * … 直前の文字がないか、1個以上連続する
  • \\ … \で終わる。2回続けているのはエスケープのため

なお、Excelでも可能。以下の検索条件で空文字に置換すればよい。

Excelでの検索文字列

*\

以上

Outlookでクイック操作の電子メールを編集した際にCCが消える

定期的な報告など、よく使うテンプレメールについてはOutlookの「クイック操作」機能を利用すると便利です。

このクイック操作で呼び出すメールの本文を編集した際、CCが消えてしまう…ということがあります。

その対処法については、以下の通り。

1. 編集したいクイック操作のメールを右クリックし編集

f:id:aposke:20200428120134p:plain

2. 「オプションの表示」をクリック

f:id:aposke:20200428120144p:plain

3. 「[CC]の追加」をクリック

f:id:aposke:20200428120151p:plain

4. 設定していたCCが表示される

f:id:aposke:20200428120159p:plain

この状態で本文を変更して保存すれば、CCは維持されます。

以上です。

intra-mart AccelPlatformで時間のかかったジョブを調べるSQL

以下はSQLの例。

2020/4/1以降で、30分以上かかったジョブを一覧で抽出する。

PostgreSQL用。RDBMSに応じて書き換えること

SELECT
    t1.tenant_id AS テナントID,
    t1.id AS モニターID,
    t1.jobnet_id AS ジョブネットID,
    t2.name AS ジョブネット名,
    t3.job_id AS ジョブID,
    t4.name AS ジョブ名,
    t3.status AS ステータス,
    to_timestamp(t3.start_date_time / 1000) AS 開始日時,
    to_timestamp(t3.end_date_time / 1000) AS 終了日時,
    round(((t3.end_date_time - t3.start_date_time) / 1000)) AS 所要時間(分),
    round(((t3.end_date_time - t3.start_date_time) / 1000 / 60)) AS 所要時間(秒)
FROM
    imjob_monitor t1
JOIN
    imjob_jobnet_localize t2
    ON
    t1.jobnet_id = t2.jobnet_id
    AND
    t2.locale = 'ja'
JOIN
    imjob_monitor_task t3
    ON
    t1.id = t3.monitor_id
JOIN
    imjob_job_localize t4
    ON
    t3.job_id = t4.job_id
    AND
    t4.locale = 'ja'
WHERE
    round(((t3.end_date_time - t3.start_date_time) / 1000 / 60)) >= 30
AND
    to_timestamp(t3.start_date_time / 1000) >= '2020/04/01'

ファイラ「あふw」で特定のキー操作を無効化する

あふwで「N」キーを打つと、ネットワークのツリー選択ダイアログが出る。

このキーを誤って操作してしまい、ネットワークのツリー表示に長い時間待たされる…ということがある。

今回はこのNキー操作を無効化したので手順をメモ。

なお、細かい設定はあふのフォルダにある「AFXWKEY.TXT」に詳しく書いてあります。

手順1. AFXW.KEYの作成

あふと同じフォルダに「AFXW.KEY」という名称のテキストファイルを作成する。

文字コードUTF-8(BOM無)とする。

手順2. キー設定を記述

今回の「N」キーを無効化する場合、AFXW.KEYファイルに以下の内容を記述。

[KEYCUST]
ON=1
[NORMAL]
K0000="0078"

これを記述して保存し、あふを再起動すればOK。

以下、簡単に解説。

[KEYCUST]
ON=1

キーカスタマイズをオンにするよー、というおまじない。

[NORMAL]

ファイル管理画面でのキー定義をします、という意味。 他に画像ビュア用の[GVIEW]、テキストビュア用の[TVIEW]がある。

K0000="0078"

K0000は自分でつける連番。0000から始める。 0078はあふ内の仮想キーコードでの「N」を表す。本当はキーコードの後に操作を記述するのだが、今回は何もしたくないので何も書かない。

以上。

AWS LightSailにSFTP接続する(FileZilla使用)

手順1. FileZillaをダウンロードしてインストール

FileZilla プロジェクト日本語トップページ - OSDN

手順2. LightSailのページからSSHキーファイルをダウンロード

インスタンスを選択

f:id:aposke:20200425160126p:plain

接続タブの下のリンクからアカウントページへ ※デフォルトキーペアを利用する設定の場合。独自の場合は取得していたキーファイルを使用しましょう。

f:id:aposke:20200425160138p:plain

対象リージョンのSSHキーペアをダウンロード

f:id:aposke:20200425160146p:plain

手順3. FileZillaにて接続

左上のサーバ機のアイコンをクリックし、接続情報を入力する。

f:id:aposke:20200428121517p:plain

ホスト:接続先インスタンスのIPアドレス
ユーザー:bitnami
鍵ファイル:手順2.でDLしたpemファイル(開く際、表示されなければファイルの種類を変更)

以上で接続できます。

AWS LightSail WordPressで、IPアドレスでのアクセスをドメイン名に301リダイレクトする

AWS LightSailのWordPressで運用していたサイトを確認したところ、Google検索結果にて、ドメイン名とIPアドレスそれぞれのアドレスでインデックスが作成されていた。

しかも当然というか、IPアドレス直から飛ぶインデックスについてはSSL証明書エラーが表示されてしまう。

対策としては、IPアドレス直でアクセスされた場合にはドメイン名に301リダイレクトしてやればよい。

ちなみに301リダイレクトは「正しい住所はこっちですよー」という意味で、サイトの引っ越し時などにも使われる。

手順1. Apacheのhtaccess.confを編集する

ファイルは以下のパスに配置されている。

/opt/bitnami/apps/wordpress/conf

この配下にある「htaccess.conf」の末尾に、以下のような設定を追記する。

ここでは、IPアドレスを「123.123.234.234」 ドメイン名を「www.sample.net」と仮定する。

※事前にファイルはコピーしてバックアップしておくこと!

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123\.123\.234\.234
RewriteRule ^(.*)$ https://www.sample.net/$1 [R=301,L]
</IfModule>

別のドメイン名アクセスされるケースもまとめて制御したい場合は、以下のようにORで接続することもできる。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sample\.net [OR]
RewriteCond %{HTTP_HOST} ^sa\.sample\.net [OR]
RewriteCond %{HTTP_HOST} ^123\.123\.234\.234
RewriteRule ^(.*)$ https://www.sample.net/$1 [R=301,L]
</IfModule>

手順2. Apacheを再起動

SSHで接続し、以下のコマンドを実行する。

sudo /opt/bitnami/ctlscript.sh restart apache

手順3. リダイレクトされることを確認

IPアドレスでアクセスし、正しいURLにリダイレクトされることを確認する。

なお、正しい301リダイレクトを確認する場合、以下のサイトでチェックするのがオススメ。

リダイレクトチェッカーツール - WEB便利ツール@ABASHI

AWS Route53で取得したドメインをはてなブログの独自ドメインに設定する

手順1. Route53でドメインの取得

Route53の「ドメインの登録」から取得できます。

f:id:aposke:20200425140544p:plain

画面に沿って取得したいドメインを検索し、使用可能なものを選択して購入します。

手順2. ドメインが登録済みになるまで待つ

購入が完了すると、「登録済みドメイン」の一覧に追加されます。

f:id:aposke:20200424173203p:plain

反映は非常に早く、10分も経たずに登録されました。

手順3. DNSのAレコードを設定

左部のメニューから「ホストゾーン」を選択し、一覧から先ほどのドメイン名をクリック

f:id:aposke:20200424173215p:plain

「レコードセットの作成」をクリックし、Aレコードを作成します。値には、はてなブログ公式に書いてあるIPアドレスを設定します。

はてなブログを独自ドメインで利用する - はてなブログ ヘルプ

f:id:aposke:20200424173224p:plain

設定したら、pingで確認してみましょう。

# ping tachi-machi.net

tachi-machi.net [13.115.18.61]に ping を送信しています 32 バイトのデータ:

IPアドレスが解決できていますね。

手順4. はてなブログ独自ドメインに設定

はてなブログの「設定」>「詳細設定」にて、独自ドメインドメイン名を設定します。

f:id:aposke:20200424173240p:plain

公式ブログでは反映までに数時間かかる~と書いてあったのですが、一瞬で反映されました。

独自ドメインSSL証明書はどうすんの??ってずっと思ってたんですけど、内部的に「Let's Encrypt」によるSSL証明書が適用され、問題なくhttpsで利用可能になっているようです。

このあたりは、独自にサーバー運用をせず既存サービスを利用するメリットかと思います。便利ですね。