2024/03/18(月)写真画像ファイルにフィルム写真風の日付を挿入するシェルスクリプト

写真の画像ファイルに,フィルム写真風の日付を追加できると良いと思い立ち,シェルスクリプトを作成しました.
これは,仕事の写真の説明や保存管理にも使えるでしょうし,
手抜きのフォトアルバムを作るのにも使えそうです.

処理結果は次のような感じになります*1
_IMP0222.JPG.jpg
[2018:08:13 14:34:22, PENTAX Q7 , / 3.8mm F5.0 0.001秒 ISO100]


日付情報は,通常写真ファイルに埋め込んであるので,それを読み出して写真画面上に描き込みます.
7セグ・14セグフォント 「DSEG」から,14セグメントなフォントをいただいて*2,それっぽく見せます.

以下のスクリプトはWSL上のDebian 12で動作確認しました.
Debian 12のImageMagickは6.9系なのでmagickコマンドではなく,昔ながらのidentifyやconvertコマンドです.
ImageMagick7系の場合は書き換える必要があります.
引数の処理対象のリストファイルはUNIX系のパス記述方法で記載します.lsの出力結果を整形するのが良さそうです.
#!/bin/bash
# 引数の説明
# $1: 操作対象パス(ファイル)リストが記載されたファイル.
# SEIREKI_BACKQUOTE="\`" # "`"はグレイヴアクセント.西暦の略記はアポストロフィ“'”.
SEIREKI_BACKQUOTE=`echo -e "\U0027"` # グレイヴアクセントや文字コード指定がsed中で上手くエスケープできないので変数に分けた.
while read IMAGENAME # $1の各行に記載された画像ファイルのパス.
 do
                 echo "\"${IMAGENAME}\"の撮影日時の取得……"
                 DateTimeOriginal=`identify -verbose ${IMAGENAME} |
                         grep "DateTimeOriginal" |
                         sed -e "s/^.*exif:DateTimeOriginal: //g" |
                         sed -e "s/ .*$//g" |
                         sed -e "s/:/     /g" |
                         sed -e "s/20/${SEIREKI_BACKQUOTE}/g" `
                 echo "${DateTimeOriginal}"
                 OUTPUT_IMAGENAME=`echo "${IMAGENAME}.jpg"`
                 echo "出力ファイル名: ${OUTPUT_IMAGENAME}"
                 convert -resize 3096x2064 -font DSEG14-Classic-Bold -fill orange -pointsize 100 -gravity southeast -annotate 0x0+300+150 "${DateTimeOriginal}" ${IMAGENAME} ${OUTPUT_IMAGENAME}
done < $1

続きを読む

2024/03/04(月)Let's Encryptの証明書で古いドメインを削除する

Let's Encryptから古い方のドメインの証明書を更新するよう案内メールが届いた.
このドメインは二度と使うことはないので,削除する.
Rocky Linux 8.9での作業である.

端折っているが,ウェブサーバ等の設定ファイルで“ac206223.ppp.asahi-net.or.jp”が記述されていないかをチェックした方がいいかもしれない.
少なくとも,下の案内文にはその旨書いてある.
[root@server ~]# certbot delete
Saving debug log to /var/log/letsencrypt/letsencrypt.log

Which certificate(s) would you like to delete?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: ac206223.ppp.asahi-net.or.jp
2: cshs-small-worlds.aa0.netvolante.jp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certificate(s) are selected for deletion:

  * ac206223.ppp.asahi-net.or.jp

WARNING: Before continuing, ensure that the listed certificates are not being
used by any installed server software (e.g. Apache, nginx, mail servers).
Deleting a certificate that is still being used will cause the server software
to stop working. See https://certbot.org/deleting-certs for information on
deleting certificates safely.

Are you sure you want to delete the above certificate(s)?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Deleted all files relating to certificate ac206223.ppp.asahi-net.or.jp.
[root@server ~]# systemctl restart httpd
[root@server ~]#

回復パーティションの拡張操作(Windows10 Pro 22H2)

2024/02/07

Windows Updateに失敗する原因を調べていったら,回復パーティションのサイズが足りないためらしい.
よって,パーティション操作を珍しくWindowsでやることになりました*1
以下では,コマンドプロンプトを管理者権限で起動して作業します

この記事で記載するのはGPTでフォーマットされたディスクに対する処理です.
MBR方式のディスクはほかのサイトを参照ください.

また,パーティション操作はデータが消える可能性がある操作です
本記事の操作を行う場合もデータや設定内容のバックアップを取ってから実施することをオススメします

続きを読む

rootにsuするとファイル名や設定ファイル内の日本語が文字化けする

2023/11/04
表題の問題.最近Debianに戻ってきて躓いたのでメモする*1

ロケールの問題だと思ったので関連を調べた.
“env”コマンドでログインしているアカウントの環境設定がわかる.
出力結果の“LANG=C”,これが問題の原因である.
一般ユーザはちゃんと日本語の“ja_JP.UTF-8”になっているのに,
“su -”でrootへログインした際はこの設定になってしまう.
root@bigowl2nd:~# env
SHELL=/bin/bash
PWD=/var/○○○
LOGNAME=root
HOME=/root
LANG=C
TERM=xterm
USER=root
SHLVL=1
XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
_=/usr/bin/env
OLDPWD=/var/○○△
root@bigowl2nd:~#

続きを読む