utligen

HULFT というソフトウェアの各種設定情報をテキストファイルにエクスポートするコマンド。
エクスポートしたテキストファイルは 管理情報更新コマンド utliupdt でインポートすることができる。

概要

公式の資料は以下。基本的にはこの資料を見ればOK。

以下は個人的なメモ。
Windows版 と Linux版しか使ったことが無いので、他のOSに関しては割愛。

基本的な使い方

各種OSのインストールマニュアルに沿って、コマンドにパスを通しておくこと。
HULFTのサービスが起動していなくてもコマンドは実行できる。

構文)

utligen -f <output_path> -i <item> -id <id>

例)Linux + HULFT10

$ utligen -f ./exported_snd.txt -i snd -id LIST_TO_A
$ cat ./exported_snd.txt
#
# ID=LIST_TO_A
#

SNDFILE=LIST_TO_A
FILENAME=/home/testuser/list.json
DBID=
TRANSTYPE=B
TRANSPRTY=50
INTERVAL=0
BLOCKLEN=4096
BLOCKCNT=3
COMP=N
JOBID=
COMMENT=Test FileID
GRPID=GRP_01
FMTID=
EJOBID=
KJCHNGE=N
CLEAR=K
PASSWORD=hogehoge
CODESET=A
COMPSIZE=0
SHIFTTRANSACT=Y
PREJOBID=
COMPMODE=
END

オプション -i と -id で指定する項目

OSによって出力できる設定は異なる。

使用できるOS -i -id 説明
Linux/Windows snd ファイルID 配信管理情報を出力
Linux/Windows rcv ファイルID 集信管理情報を出力
Linux/Windows job ジョブID ジョブ起動情報を出力
Linux/Windows hst ホスト名 詳細ホスト情報を出力
Linux/Windows tgrp 転送グループID 転送グループ情報を出力
Linux/Windows fmt フォーマットID フォーマット情報を出力
Linux/Windows mfmt マルチフォーマットID マルチフォーマット情報を出力
Windows sch スケジュールID スケジュール情報を出力
Linux/Windows trg トリガID ファイルトリガ情報を出力
Windows mail メール連携ID メール連携情報を出力

出力されるファイルの内容について

出力される項目については公式サイトの「管理情報の設定」を確認すること。OSやバージョンごとに出力される項目が違うため注意すること。

複数のIDや設定を指定してエクスポートする

* を使用すると全てのIDを一括で出力できる

utligen -f ./exported_snd.txt -i snd -id "*"

前方一致、後方一致したIDの出力も可能

utligen -f ./exported_snd.txt -i snd -id "LIST_*"
utligen -f ./exported_snd.txt -i snd -id "*_TO_A"

-i の設定を複数指定して一括で出力する場合は -i-id を複数指定する 例)Linux

utligen -f ./exported_snd.txt -i snd -id "LIST_TO_A" \
                              -i rcv -id "LIST_FROM_B"
  • 成功した時はも表示されない
  • -id で指定する文字列は小文字でも大文字でも構わないっぽい
  • オプションの順番は決まっていて崩してはならない

出力すべき情報が無かった場合はエラーになる。
以下はファイルトリガ情報が登録されていなかった場合の例

$ utligen -f ./exported_trg.txt -i trg -id "*"
utligen : * ファイルトリガ情報は登録されていません

コマンドの終了コード

エラー時の終了コードは公式サイトを確認すること。

設定のバックアップとは違うことを意識する

utligen コマンドで出力できるのはあくまで集配信に関する情報のみとなり、 システム動作環境設定 のような内容は出力できない。
設定を他のサーバにコピーする、などの場合に使用し、システムのリカバリでの使用は避ける。

システムのバックアップをしたい場合は、以下の手順を参考にすること

utlicomp

HULFT というソフトウェアに蓄積された 実レコード(転送履歴など)を削除するコマンド。
utlirm で管理情報を削除しただけでは残る実レコードを整理する際に使用する。

管理情報のエクスポート/インポート(utligen / utliupdt)とは用途が異なり、
HULFT内部データのクリーンアップを目的とした運用系コマンド となる。

概要

公式の資料は以下。基本的にこの資料を見ればOK。

以下は個人的なメモ。
Windows版 と Linux版しか使ったことが無いため、他のOSについては割愛する。

基本的な使い方

各種OSのインストールマニュアルに沿って、コマンドにパスを通しておくこと。
HULFT のサービスが起動していなくても、utlcomp コマンドは実行できる。

構文)

utlcomp <item>

例)

$ utlcomp a
  • 正常終了した場合、特に出力は表示されない
  • 現在登録されているファイルIDの履歴が消されることは無い

引数で指定できる項目

OSによって指定できる情報は異なる。

使用できるOS 引数 説明
Linux/Windows snd 配信管理情報
Linux/Windows rcv 集信管理情報
Linux/Windows job ジョブ起動情報
Linux/Windows hst 詳細ホスト情報
Linux/Windows tgrp 転送グループ情報
Linux/Windows fmt フォーマット情報
Linux/Windows mfmt マルチフォーマット情報
Windows sch スケジュール情報
Linux/Windows trg ファイルトリガ情報
Windows mail メール連携情報
Linux/Windows a すべての情報

utlirm との関係

utlirmutlcomp は 役割が異なるため、使い分けること。

コマンド 役割
utlirm 管理情報(配信管理情報、集信管理情報など)を削除する
utlcomp 管理情報に紐づく 実レコード(転送履歴など)を削除する

utlirm だけでは実レコードは残るため、不要な履歴を完全に消したい場合は utlcomp を実行する。
実際の運用ではプロジェクトやシステムごとにあるログの管理ポリシーに従い、 一定期間後に削除することになるはず。

コマンドの終了コード

エラー時の終了コードについては公式サイトを確認すること。

utlirm

HULFT というソフトウェアの各種設定情報を削除するコマンド。
管理情報更新コマンド utliupdt と一緒に使えば HULFT の設定情報をコマンドで管理できる。

概要

公式の資料は以下。基本的にこの資料を見ればOK。

以下は個人的なメモ。 Windows版 と Linux版しか使ったことが無いので、他のOSに関しては割愛。

基本的な使い方

各種OSのインストールマニュアルに沿って、コマンドにパスを通しておくこと。
HULFTのサービスが起動していなくてもコマンドは実行できる。

構文)

utlirm -i <item> -id <id>

例)Linux + HULFT10

$ utlirm -i snd -id LIST_TO_A

-i の設定を複数指定して一括で削除する場合は -i-id を複数指定する 例)Linux

utlirm -i snd -id LIST_TO_A \
       -i rcv -id LIST_FROM_B
  • 成功した時は何も表示されない
  • -id で指定する文字列は小文字でも大文字でも構わないっぽい。

オプション -i と -id で指定する項目

OSによって削除できる設定は異なる。

使用できるOS -i -id 説明
Linux/Windows snd ファイルID 配信管理情報を削除
Linux/Windows rcv ファイルID 集信管理情報を削除
Linux/Windows job ジョブID ジョブ起動情報を削除
Linux/Windows hst ホスト名 詳細ホスト情報を削除
Linux/Windows tgrp 転送グループID 転送グループ情報を削除
Linux/Windows fmt フォーマットID フォーマット情報を削除
Linux/Windows mfmt マルチフォーマットID マルチフォーマット情報を削除
Windows sch スケジュールID スケジュール情報を削除
Linux/Windows trg トリガID ファイルトリガ情報を削除
Windows mail メール連携ID メール連携情報を削除

コマンドの終了コード

エラー時の終了コードは公式サイトを確認すること

utlcomp の実行も検討する

utlirm だけでは実レコードが残ったままになる。
実レコードを含め完全に削除するのであれば utlcomp を実行すること。

utliupdt

HULFT というソフトウェアの各種設定情報をテキストファイルからインポートするコマンド。
使いこなせば 登録作業がかなり楽になる。

概要

公式の資料は以下。基本的にこの資料を見ればOK。

以下は個人的なメモ。 Windows版 と Linux版しか使ったことが無いので、他のOSに関しては割愛。

基本的な使い方

各種OSのインストールマニュアルに沿って、コマンドにパスを通しておくこと。
HULFTのサービスが起動していなくてもコマンドは実行できる。

構文)

utliupdt -f <import_path> [-r]

例)

$ utliupdt -f ./import_snd.txt
  • 成功した時は何も表示されない
  • 同じIDの管理情報が既に登録されている場合、エラーになる
    既存の管理情報を削除してから再登録するか、-r オプションを指定して上書き登録する

インポートするファイルのフォーマットについて

以下のページの「パラメーターファイルの記述形式」を確認すること。
OSやバージョンによって対応している項目が異なるので注意する。

utligen コマンドで出力したテキストファイルとフォーマットは基本的に同じなので、 よくわからないうちは以下のような手順で試してみるといい

  1. GUIから各種設定を追加
  2. utligen コマンドで設定をテキストファイルに出力する
  3. 出力されたファイルの中身を確認する
  4. 変更したい箇所があれば テキストファイルを修正し、utliupdt コマンドでインポートしてみる

インポートするファイルには集信管理情報、配信管理情報、詳細ホスト情報など 複数の管理情報が含まれていても問題ない。

コマンドの終了コード

エラー時の終了コードは公式サイトを確認すること。

システムのバックアップ/復元の手順は別にある

utliupdt コマンドでインポートできるのはあくまで集配信に関する情報のみとなり、 システム動作環境設定 のような内容は取り扱えない。 設定を他のサーバにコピーする、などの場合に使用し、システムのリカバリでの使用は避ける。

システムのバックアップとリカバリが目的の場合は、以下の手順を参考にすること。

unzip

zipファイルを展開するためのコマンド

基本的な使い方

zipファイルを展開する

unzip archive.zip

zipファイルの内容を確認する

unzip -l

zipファイルから指定したファイルだけ取り出す

ワイルドカードも使える

unzip archive.zip "01.txt"
unzip archive.zip "*.txt"

各種オプション

結構色々なオプションがある。
よくわからないものもあるので、いつか検証してみたいかも。

オプション 意味
-p パイプで渡されたファイルをメッセージなしで展開する
-l ファイルの内容をリスト表示する
-f 存在するファイルを更新し、新しいファイルは作成しない?
-t 圧縮されたアーカイブデータを検証する?
-u ファイルを更新しつつ、必要があれば作成する?
-z アーカイブコメントのみを表示する
-v 詳細、バージョン情報を出力する
-T アーカイブの最終タイムスタンプを表示する
-x xlint で指定したファイルを除外する?
-d exdir に入っているファイルを展開する?
-n 存在するファイルは上書きしない
-q -quiet モードにする
-o プロンプトなしで存在するファイルを上書きする
-a テキストファイルを自動的に変換する?
-j junk paths? ディレクトリを作成しない?
-aa 全てのファイルをテキストのようにtreatする?
-U アスキーウコードではない 場合、エスケープする?
-UU ユニコードのフィールドを無視する?
-C ファイル名にマッチする?
-L 名前を小文字にする?
-X UID/GID 情報を修復する
-V VMSバージョン番号を残す?
-K setuid, setgid, tacky といった権限を残す
-M パイプ処理を more コマンド経由で行う?
-O DOS向けのcharset ?
-I UNIX 向けのcharset ?

du

ディレクトリとファイルのサイズを集計するコマンド

基本的な使い方

du [OPTION]... [FILE]...
# または
du [OPTION]... --files0-from=F

サブディレクトリを含む全てのディレクトリを集計する。

$ du
8       ./data
36      .
......

直下のディレクトリのみ、単位付きで表示する。

du ./* -sh

単位をMBで統一して表示する

du ./ -BM

基本オプション

オプション 長いオプション 内容
-a --all ディレクトリだけではなくファイルも出力する
-BK --block-size=K 単位をKBで統一して出力する
-BM --block-size=M 単位をMBで統一して出力する
-BG --block-size=G 単位をGBで統一して出力する
-c --total 全ての容量の合計値を出力する
-d --max-depth 調べるディレクトリの深さを指定する
-h --human-readable 読みやすいフォーマットを自動判定して出力する
-s --summarize 指定されたディレクトリのサマリだけを出力する

サイズを調べるディレクトリの深さを指定する

一番 使っているのは -s オプション。
*アスタリスク)と組み合わせることで複数のディレクトリの使用容量を調べることが出来る。

# 子ディレクトリのみ
du ./* -s
# 孫ディレクトリも
du ./*/* -s

ディレクトリの深さを指定するのに -d --max-depth オプションも利用できる。

# 深さ= 0(現在のディレクトリのみ)
du ./ -d 0
# 深さ= 1(子ディレクトリも)
du ./ -d 1
# 深さ= 2(孫ディレクトリも)
du ./ --max-depth 2

指定できるサイズの単位

KBやMBといったサイズの単位は -B もしくは --block-size で指定する。
仕様できるサイズは K, M, G, T, P, E, Z, Y
大きな単位を指定した場合、端数は切り上げられるっぽい。

du -BK
du --block-size=K
du -BM
du --block-size=M
du -BG
du --block-size=G
du -BT
du --block-size=T
du -BP
du --block-size=P
du -BE
du --block-size=E
du -BZ
du --block-size=Z
du -BY
du --block-size=Y

ファイルの時間に関する情報を調査する

du コマンドはサイズの集計だけでなく、時間(タイムスタンプ)を調査することもできる。

オプション 内容
--time=WORD 指定したWORDの時間情報を出力する
--time-style=STYLE --time で指定した時間情報のフォーマットを指定する

--time オプション

ディレクトリ内の任意のファイルの時間に関する情報を出力する。 指定できるのは atime, access, use, ctime, status

デフォルトだとディレクトリ内の任意のファイルの最終更新日時を出力する。

$ du --time
1896    2025-09-09 10:00        .
$ du --time=atime
1896    2025-09-11 13:32        .
$ du --time=access
1896    2025-09-11 13:32        .
$ du --time=ctime
1896    2025-09-09 10:00        .
$ du --time=status
1896    2025-09-09 10:00        .

--time-style オプション

フォーマットを指定して出力する。 使用できるのは full-iso, long-iso, iso+FORMAT+FORMAT%Y,%m,%d, %H, %M, %S を使用して組み替える。

$ du --time --time-style=full-iso
1896    2025-09-09 10:00:19.821080576 +0900     .
$ du --time --time-style=long-iso
1896    2025-09-09 10:00        .
$ du --time --time-style=iso
1896    2025-09-09      .
$ $ du --time --time-style="+%Y/%m/%d %H:%M:%S"
1896    2025/09/09 10:00:19     .

特定のファイルを除外して集計する

オプション 長いオプション 内容
-t --threshold=SIZE 指定したサイズ以上、もしくは以下のファイルを除外する
-X --exclude-from=FILE 指定した名前パターンにマッチするファイルを除外する
--exclude=PATTERN 指定したパターンにマッチするファイルを除外する

-a オプションと組み合わせることで指定したサイズ以上のファイルを探すことが出来る

$ du -t -500
$ du -t 500
$ du --threshold=200MB
$ du --exclude-file="hoge"
$ du --exclude-file="-"
$ du --exclude="hoge"
$ du --exclude="*.log"

あまり使わないオプション

オプション 長いオプション 内容
-0 --null 結果を改行なしで出力す
--apparent-size ディスクの使用量ではなく見かけのサイズを表示する。断片化等が原因で大きく見えることもある。
-b --bytes --block-size=1 を指定した時と同じ
--files0-from=F あらかじめ用意したディレクトリのリストを F で指定して集計する
-k --block-size=1K を指定した時と同じ
-m --block-size=1M を指定した時と同じ
-D --dereference-args コマンドラインで指定されたシンボリックリンクを参照する
-H -D と同じ
--inodes ブロック使用量ではなくiノード使用量を出力する
-l --count-links ハードリンクされている場合、複数回カウントする
-L --dereference シンボリックリンクを参照する
--si -h と同じだが、1024 ではなく 1000 の累乗で計算する
-P --no-dereference シンボリックリンクを辿らない。(デフォルト)
-S --separate-dirs サブディレクトリのサイズを含めない
-x --one-file-system 異なるファイルシステムのファイルをスキップする

参考

https://www.gnu.org/software/coreutils/du

wc

テキストファイルの文字数や行数を数えるコマンド。
wc は「Word Count」の略。

基本的な使い方

テキスト行数、文字数、バイト数を調べる

$ wc README.md
  5  24 352 README.md

コマンドの結果は以下の順番で表示される。

  • 行数
  • 単語数
  • バイト数
  • ファイル名

テキストの行数のみカウントする

$ wc --lines README.md
5 README.md

テキストの文字数のみカウントする

$ wc --chars README.md
352 README.md

テキストの単語数のみカウントする

$ wc --words README.md
24 README.md

複数のファイルを指定できる

最後に合計値も表示される

$ wc --lines 202507*.log
   5 20250701.log
   5 20250703.log
  10 20250707.log
   5 20250708.log
   5 20250709.log
   5 20250710.log
   5 20250716.log
   5 20250718.log
  45 total