Diga/sx magic script
出典: ScalixWikiJP
Scalix Wiki -> Diagnostics -> Diag/sx magic script
このページはmagic script Diag/sx magic script (米国サイト)の翻訳です。
[編集]
ScalixDBスキーマ名スクリプト
ScalixDB (PostgreSQLデータベース)では、ユーザー毎に自身のスキーマが割り当てられています。そのスキーマはユーザー自身のデータベースのPostgreSQL用語です。 ユニークさを保証し、PostgreSQLの名前規則に従うために、スキーマの名前はユーザーのディレクトリ・エントリのGUIDのMD5ハッシュ値を計算することにより生成されます。 不幸なことに、検査で特定のユーザーのスキーマを示すことができません。 この下のスクリプトはディレクトリ検索とMD5ハッシュ計算を行います。 このスクリプトはローカルのPostgreSQLデータベースのスキーマの確認も行います。 スクリプトを動かすマシンに依存すること、ユーザーのスキーマがデータベースに見つからないこと、ローカルマシンにデータベースが無いために検索が失敗するかもしれないことを記しておきます。 その場合は、スクリプトが出力するスキーマ名を取り、適切なデータベースに対して使用してください。
[編集]
omshowpguser
#!/bin/sh
if [ -z "$1" ]; then
echo "Usage: $0 <filter>"
echo "Example: $0 S=Smith"
exit 2
fi
FILTER="$1"
LC_ALL=C
export LC_ALL
# Pass "" to prevent implicit passing of $*
. /opt/scalix-postgres/bin/common-helpers.sh ""
/etc/init.d/scalix-postgres status | grep 'is running' >/dev/null 2>/dev/null
if [ $? = "0" ]; then
POSTGRES_RUNNING=1
else
POSTGRES_RUNNING=0
fi
if [ $POSTGRES_RUNNING -ne 1 ]; then
/etc/init.d/scalix-postgres start
fi
IDS=`omsearch -e $FILTER -m GLOBAL-UNIQUE-ID`
if [ $? -ne 0 ]; then
exit 1
fi
# The following won't work
#GUID=`echo "$IDS" | cut -d'=' -f2- | tr -d '[:space:]'`
# Better is:
GUID_TEMP=`echo "$IDS" | cut -d'=' -f2- | tr -d '[:space:]'`
GUID=`echo "$GUID_TEMP" | sed 's/\\\//g'`
HASHED=`python -c "import md5; print md5.new('${GUID}').hexdigest()"`
SCHEMA="sx_${HASHED}"
echo "$IDS"
echo "User DB Schema ID: $SCHEMA"
su - -c "$PGENGINE/psql -h $PSQL_DIR -p $PSQL_PORT -c '\dn' scalix" postgres | grep "$SCHEMA" >/dev/null 2>/dev/null
res=$?
found="No"
if [ $res == 0 ]; then
found="Yes"
fi
echo "User Schema Exists in DB on this machine: $found"
