Notice: Undefined property: stdClass::$params in /mnt/web107/b3/68/5268468/htdocs/joom341/plugins/system/ganalytics/ganalytics.php on line 58 Notice: Undefined property: stdClass::$params in /mnt/web107/b3/68/5268468/htdocs/joom341/plugins/system/ganalytics/ganalytics.php on line 58 Kiss Methode

Keep It Simple Stupid

 
 Hier ein Beispiel um zu verdeutlichen was gemeint ist
So verstehen es nur Insider:
#!/usr/bin/sh # Scriptname : <- ohne Versionsverwaltung
# $Header: /usr/cvs/brroduktion/MI/scripts/bin/mk_sql.sh,v 1.1 2002/01/22 12:21:03 xxxxxxx Exp $
# Funktion : Steuerskript zur Ausfuehrung von SQL-Skripten
# Projekt : xxxxxxxxxx
# Ansprechpartner :
# Erstellt: xxxxx xxxxxxxx
# Version : s. Header
# Abhaengigkeiten : keine
#######################################
. /opt/xxxxxxxx/xxxxxxx.conf >/dev/null 2>&1
DATUM=`date +%y_%m_%d_%H:%M:%S`
if [ -f ${xxxxxxx_PASSFILE2} ] ; then
DBPW=`cat ${xxxxxxx_PASSFILE2}`
if [ "X"${DBPW} = "X" ] ; then
echo "PW-File/File leer/unlesbar"
exit -1
fi
fi
INFILE=`basename $1 .sql`.sql
SQLPATH=$xxxxxxx_ENV/scripts/sql
if [ $# = 2 ]; then
OPTIONS=$2
elif [ $# = 1 ]; then
OPTIONS=
elif [ $# -gt 2 ]; then
shift
for i
do
OPTIONS=$OPTIONS"'$i' "
shift
done
else
echo "Kein Parameter" ; exit -1
fi
if [ ! -s ${INFILE} ]; then
if [ ! -s ${SQLPATH}/${INFILE} ]; then
echo "Entweder das File existiert nicht, oder es liegt nicht im richtigen Verzeichnis!"
exit 1
else
INFILE=${SQLPATH}/${INFILE}
fi
fi
MYFILEPATH=`dirname $INFILE`
MYFILE=`basename $INFILE .sql`
egrep "^--connect" $INFILE >/dev/null 2>&1
RC=$?
if [ $RC != 0 ]; then # no connect string in sql file
echo "No valid Connect String in sql file $INFILE."
exit 1
fi
SHFILE=${xxxxxxx_SCRIPTS}/temp/${MYFILE}_$DATUM_$$.sh
SQLFILE=${xxxxxxx_SCRIPTS}/temp/${MYFILE}_$DATUM_$$.sql
sed "1s/{_xxxxxxx_USER}/${xxxxxxx_USER}/;\
1s/{_DBPW_VAL}/${DBPW}/;\
1s/--connect/connect/;\
1s/{_xxxxxxx_CALLS_DB}/${xxxxxxx_CALLS_DB}/;\
1s/{_xxxxxxx_BILLS_DB}/${xxxxxxx_BILLS_DB}/;\
1s/{_xxxxxxx_BASE_DB}/${xxxxxxx_BASE_DB}/;" <${INFILE} >${SQLFILE} 2>/dev/null
trap "rm -f ${SQLFILE}" 0 2 3 9 15
echo "trap \"rm -f ${SQLFILE} \" 0 2 3 9 15" >${SHFILE}
echo >>${SHFILE}
echo "sqlplus -s /nolog @${SQLFILE} $OPTIONS <<EOF" >>${SHFILE}
echo "\`cat ${xxxxxxx_PASSFILE2}\`" >>${SHFILE}
echo "EOF" >>${SHFILE}
echo 'exit $Ret' >>${SHFILE}
chmod 500 ${SHFILE}
cat ${SHFILE}
${SHFILE}
Ret=$?
if [ $Ret != 0 ]; then
echo "SQLPLUS returned with Code $Ret" >&2
fi
echo "removing ${SHFILE}" >&2
rm -f ${SHFILE}
echo "removing ${SQLFILE}" >&2
rm -f ${SQLFILE}
und so kann sogar der Anwender etwas damit anfangen:
#!/usr/bin/bash # $Header: /usr/cvs/brroduktion/MI/scripts/sql_run,v 1.1 2002/03/19 17:31:34 libtest Exp $
# set -xv ==========================================================
# Name : sql_run
# Descr. : Ausführen von SQL+ ohne Anzeige von ID und PW in der Prozessliste
# Author : Bernd Jambor
# Date : 25.01.2002
# Syntax : sql_run application scriptname database # applikation = bil / cpe / trm / hot
. /opt/xxxxxx/xxxxxx.conf
case $1 in
"bil" ) APP=$1;;
"cpe" ) APP=$1;;
"trm" ) APP=$1;;
"hot" ) APP=$1;;
* ) echo 'Parameter 1 falsch: bil cpe trm hot'
echo
exit;;
esac
SQLSCRIPT=sql/${APP}_$2.sql # Name des vorhandenen SQL-Scriptes
test -f $SQLSCRIPT || (echo 'Das Script' $SQLSCRIPT 'existiert nicht';echo;exit)
case $3 in
"ca" ) DB=$xxxxxxx_CALLS_DB;;
"bi" ) DB=$xxxxxxx_BILLS_DB;;
"ba" ) DB=$xxxxxxx_BASE_DB;;
* ) echo 'Angabe der Datenbank fehlt: ca bi ba'
echo
exit;;
esac
SQLCMD=temp/DB_CMD.sql # Name der SQL-Datei (temp)
OUTFILE=$xxxxxxx_VAR/$APP/reports/$APP_`date +%y_%m_%d_%H:%M:%S`_$2.txt # Festlegen des Outputs
# Erzeugen des connect-strings in der Datei SQLCMD und Anhängen des sql-scriptes
(echo CONN $USER/`cat $xxxxxxx_PASSFILE2` @$DB;cat $SQLSCRIPT) > $SQLCMD
chmod 400 $SQLCMD # Nur der Owner darf noch lesen
sqlplus -s /NOLOG @$SQLCMD $OUTFILE # Aufruf von SQL*PLUS
rm -f $SQLCMD # Löschen der temporären SQL-Datei