curlでWebサイト等のファイルをダウンロードする方法。たまにしか使わないので忘れがち、メモしておきます。リモートで働いていると、ローカルのPCを経由していると何かと遅いから
SASプログラムとログを解析するユーティリティを開発するための備忘録です。This is a memo to develop utility that analyzes the SAS log.
2021年3月10日水曜日
Junitのダウンロード
2021年2月10日水曜日
Metadataバックアップのステータスを取得するサンプル
運用ネタです。メタデータバックアップの履歴を参照して、最後のバックアップが成功したかどうかステータスを確認する方法をメモしておきます。xmllintは読みやすく整形するときにしか使っていませんでしたが、特定のタグを抽出するときに便利ですね。たまにしか使わないので指定の仕方を忘れるので、ここにメモします。
echo 'cat /MetadataServerBackupManifest/Backups/Backup[last()]/@*' | \ xmllint --shell Lev1/SASMeta/MetadataServer/Backups/MetadataServerBackupHistory.xml | \ grep =実行すると以下のような結果が得られます。
Status="Successful" StartingUserID="META:Scheduler" StartDateTime="2021-02-10T01:00:00+09:00" Name="2021-02-10T01_00_00+09_00" Directory="Backups/2021-02-10T01_00_00+09_00" Comment="" Reorg="N" Size="539963257" LastVerifyDateTime="2021-02-10T18:42:58+09:00" LastVerifyStatus="Successful"
2021年1月17日日曜日
タイムスタンプの文字列生成
よく使うけど、すぐに忘れるタイムスタンプの文字列
%let dt=%sysfunc(putn(%sysfunc(datetime()), E8601DT20.));
2021-01-17T20:35:17
2021年1月8日金曜日
メタデータオブジェクトの検索例
SAS9でメタデータサーバの情報を探し出して、リストを作ることは稀にあります。たまにしかやらないから、どんな検索式を与えるか忘れてしまいます。備忘としていくつか例を残してい置きます。メタデータのAPIは、情報を1個ずつとると遅いのでできれば検索式で絞り込んで少ない回数で取得した方が良いです。
配置済みのジョブの検索
JFJob?@id contains '.' and @PublicType = 'DeployedJob'
実行キューの名前からジョブフローを検索
omsobj:JFJob?JFjob[@id contains '.' ][Properties/Property[@DefaultValue='normal' and @Name='QUEUE']
トリガーの条件を設定している配置済みフローを検索
omsobj:JFJob?JFjob[@PublicType = 'DeployedFlow'][Steps/SyncStep/TriggeringEvents/Event]]
配置済みジョブフローのオブジェ口IDを指定してかつ、作成者を特定する検索式
omsobj:ResponsibleParty?ResponsibleParty[@Role='Created By'][Objects/JFJob[@id='A5MGMPLF.BZ001J44']]
プロパティの名前からメタデータオブジェクトを検索する例
omsobj:Property?@Name='SCHEDULINGDETAILS'
テーブルの名前をからメタデータオブジェクトを検索する例
PhysicalTable?@id contains '.' and @Name eq 'HMEQ'
2020年10月22日木曜日
2020年9月19日土曜日
SAS9のプロセスから環境変数の設定を生成
何かのスクリプトを使うときに億劫に感じるのが設定です。で考えたのが動いているプロセスから主要なプロダクトのディレクトリを探す方法です。
#!/bin/sh
function variable() {
TEMPLSIT=`mktemp --tmpdir=/var/tmp XXX.sh`
while read var cmd depth
do
ps --no-headers --format cmd -C $cmd | \
awk -vcmd=$cmd '{ for(i = 1; i <= NF; i++) { if (index($i, cmd) > 0) { print $i; exit} } }' | \
awk -vd=$depth '{ n = split($1, a, "/"); for (i = 2; i < (n + d); i++) { printf("/%s", a[i]) } print ""; }' | \
awk -vvar=$var '{ printf("export %s=%s\n", var, $1 ) }'
done << _EOF_
SAS_HOME sasauth -4
SAS_CONFIG MetadataServer.sh -3
LSF_HOME mbatchd -3
PM_HOME jfd -3
RTM_HOME lsfpollerd -2
GMS_HOME gabd -1
_EOF_
rm -f $TEMPLSIT
}
variable
実行すると環境変数の定義を生成します。
[root@dwtcjp conf]# sh variable.sh export SAS_HOME=/SAS/SAS_HOME export SAS_CONFIG=/SAS/SAS_CONFIG export LSF_HOME=/SAS/LSF_HOME export PM_HOME=/SAS/PM_HOME export RTM_HOME=/SAS/RTM_HOME export GMS_HOME=/SAS/LSF_HOME/gms
2020年7月23日木曜日
英語キーボードでCapsLockに半角/全角を割り当てる
肩凝り対策でスプリットのキーボードBAROCCO MD770 RGBを使い始めました。英語配列なので半角と全角の切替が面倒です。デフォルトだとCapsLock+ShiftですがCapsLockだけで切り替えたいのでAutoHotKeyをインストールしました。デスクトップ上で右クリック、新規作成でAutoHotKeyの設定ファイルを新規作成して、6行目以降のの部分を追加します。
CapsLockで日本語/英語の切替、ESCキーを2回タイプで大文字/小文字を切り替えます。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
CapsLock::
Send, {vkF3sc029}
return
Esc::
Keywait, Esc, U
Keywait, Esc, D T0.3
If (ErrorLevel=1) {
Send,{Esc}
}
else {
SetCapsLockState % !GetKeyState("CapsLock", "T")
}
return
しばらくこれで使って身体を慣らします。
登録:
投稿
(
Atom
)
