Shell script tips: 区切りファイルの内容確認
おはようございます、インフラ担当のロボ2号です。
UNIX/Linux のシェルスクリプトは準備なしに動かせるのでちょっとした事を試すには最適ですよね。ビルドは不要、デバッグもスイッチ一つで行えます。(bash -x <スクリプトファイル>)
今日は、特定の区切り文字で構成された可変長ファイルの内容を
さっと確認する方法について記載してみます。
CSV のような囲み文字や区切り文字のエスケープの事は考慮していませんが
列が多く、目で識別するには面倒なファイルの確認などに便利です。
ファイル:| (パイプ) で区切られた可変長テキストファイル
何かの電文だと思ってください。
ここでは sample.txt というファイル名とします。シェルは bash です。
# 何列目の項目かを目で確認するのは大変ですが、縦に表示すれば一目瞭然ですね。
それではまた。
脆弱性に関するまとめ(2015年09月)
9月は脆弱性の件数は69件でした。
※JVNでは複数の脆弱性を1つの報告としてまとめている為、報告件数は41件です。
前月に引き続き「XSS」「XSRF」が目立っています。また今月に入りインジェクション関連の脆弱性が多く報告されています。
※「Japan Vulnerability Notes(https://jvn.jp/)」を元に集計しています。
(凡例の補足)
弊社ホームページにセキュリティ対策用ソリューションなど掲載していますので、ぜひご覧ください。
インフラ系:UNIX/Linux 管理スクリプトの基本構成 vol.2
こんばんは、ハニカムウエアのインフラ担当のロボ 2号です。
前回、「ことば」であらわした処理内容をシェルスクリプトのサンプルとして
記載してみたいと思います。
実際には実に多くの方法があると思いますので、一つのサンプルとしてご覧ください。
----
私が良く使うのは以下のような形式です。
あまり難しいコマンドや記述がないため、覚えやすく読みやすいのでよく使っています。
while は別プロセスを使用(forkして動作)するため、while の中で設定した変数はループ処理の外では
使用できませんが、個人的に for 文より使いやすいのでこちらにしています。
スクリプトは sh(B shell), csh, bash 等のシェルスクリプトや perl, python など
別途インストールが必要なものまで様々ですが最近はどの OS でも
利用できる事が多く、記載のしやすい bash を選んでいます。
# 【 設定ファイル読込サンプル 】
# 変数設定
V_INIFILE="設定ファイルのフルパス"
V_RET=0 # ループ内での異常処理判定用の変数
# 設定ファイルの読込みとループ処理
cat "${C_INIFILE}" | while read V_LINE;
do
# 記載パラメータの読取り
V_PRM1=`echo "${V_LINE}" | awk '{ print $1 }'` # 1列目のパラメータ
V_PRM2=`echo "${V_LINE}" | awk '{ print $2 }'` # 2列目のパラメータ
# パラメータを使用した処理を記載
# 例:V_PRM1 のファイルと V_PRM2 のファイルを比較して差分を標準出力に表示する。
# 差分があった場合にはスクリプトを異常ステータス(1)で終了させる。
diff "${V_PRM1}" "${V_PRM2}"
V_RET_DIFF="${?}"
if [ 0 -ne ${V_RET_DIFF} ]; then
echo "ファイル ${V_PRM1} と ${V_PRM2} に差分が見つかりました。終了します。"
exit 1
fi
done
# ループ内処理の結果を受け取り
V_RET_LOOP="${?}"
# 正常/異常により処理を分岐....
----
と、こんな具合に基本的な構成は十分程度あれば記載できてしまいます。
ファイルを読んで順次処理するといった記述が簡単に出来るのが
シェルスクリプトの魅力の一つでもあると思いますので
この基本構成について、皆さんの必要な処理に使えるかぜひ一度試してみて下さい。
また、こんな方法があるよ!という方は教えて頂けるとロボ 2号(私)が
たいへん喜びます。
それでは、今回はこの辺で。
インフラ系:UNIX/Linux 管理スクリプトの基本構成 vol.1
はじめまして、ハニカムウエアのインフラ担当のロボ 2号です。
弊社代表よりブログ担当を拝命したのですが、なにぶん慣れていないもので右往左往しております。
何を記事にするか迷いましたが、まずは業務で使用している
インフラ系の管理スクリプトの基本構成について書いてみたいと思います。
----
ひとくちに管理スクリプトといっても用途は色々あると思いますが\。
例えば次のようなものがあります。
- バックアップ
- ログ収集
- メッセージ監視、アラートメール送信
- 日次、月次などの定期処理
UNIX/Linux で使用できるスクリプト系の言語はテキスト処理が簡単に行えるため
管理系の定期的な処理を作成するのに向いており
Windows 系のバッチや PowerShell と比べると歴史も長いため事例も豊富です。
インターネットが発達した現在では、サンプルも探しやすいのも魅力ですよね。
----
そんなスクリプトで非常によく使うのが「設定ファイル」を読んで
1行づつ記載されたパラメータに従って繰り返し処理を行うという構成です。
この基本構成について、よく使用している処理方法を書いてみたいと思います。
今回はまず処理の概要について文章で書いてみたいと思います。
----
# 変数設定
# 設定ファイルの読込みとループ処理
# 記載パラメータの読取り
# パラメータを使用した処理を記載
# ループ内処理の結果を受け取り
# 正常/異常により処理を分岐....
----
インフラ系、業務系を問わず、情報システムだとよくあるパターンだと思います。
設定ファイルがクエリーの結果セットになったり、csv などのデータファイルになったりと
バリエーションはありますがループによる繰返し処理は必ず出てくると思います。
次回はこの処理を実際にシェルスクリプトのサンプルとして記載してみたいと思います。
それでは!
脆弱性に関するまとめ(2015年08月)
8月は脆弱性の報告件数が19件と少なめでした。
認証関連の脆弱性では、プログラムにID、パスワードなどの情報がハードコードされているという問題が目立ちました。また「認証関連」「その他」というのは細かく分類が難しく一括りにしているのですが、「クロスサイトスクリプティング」「クロスサイトリクエストフォージェリ」は単体でこの割合です。
※「Japan Vulnerability Notes(https://jvn.jp/)」を元に集計しています。
※参考として6月、7月の件数を掲載しておきます。
------------------------------------------------------------
情報システム管理部門様向けにこんなサービスもやってます。
脆弱性に関するまとめ
今月から「Japan Vulnerability Notes(https://jvn.jp/)」で報告されている脆弱性について、下記の観点でまとめていきたいと思います。
- 月に発生した脆弱性を分類化
- 日毎の報告件数
1.は傾向の分析で、2.はMSの月例パッチやAdobeのパッチなどの公開と、どのような関係があるかという観点で見て頂ければと思います。
ゼロディ攻撃が増えていますので、どのような観点で見ていくのか模索中です。
次回、更新時には8月分を掲載します。
当ブログを情報収集の1つとして活用して頂ければ幸いです。
弊社ホームページが新しくなりましたので、ぜひご覧ください。
http://www.honeycomware.jp/