Forum Programmation.shell PKI par EJBCA

Posté par  .
Étiquettes :
-2
18
fév.
2010
Bonjour
Je suis la revue linux magazine n°120 c'est une PKI par EJBCA.
Mon script bash ne fonctionne pas. je travaille sur une debian .Sa fais 3jours que je suis dessus.

Je l'exécute résultat:
/etc/init.d/jboss: line 49: syntax error near unexpected token `fi'
/etc/init.d/jboss: line 49: ` fi '

Mes problèmes:
Je vois bien qu'il ni a pas de si pour débuter ma boucle mais je suppose qu'un fichier doit être appeler au cour de mon bash je vois pas ou.
L'autre solution plus probable c'est qu'il manque le début de boucle.

De plus je vais avoir le même problème avec le finselon qui na pas de selon en début de boucle.

Si quelqu'un peu me corriger Merci d'avance.

#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java/jre
export JBOSS_HOME=/opt/jboss/
export JBOSS_HOST=0.0.0.0
export ANT_HOME=/opt/ant
export EJBCA_HOME=/usr/src/ejbca
export JBOSS_CONSOLE=/var/log/jboss.log
export JBOSS_USER=jboss
export JBOSS_SERVER=default
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
########
JBOSS_HOME=${JBOSS_HOME:-"/usr/local/jboss"}
JBOSS_USER=${JBOSS_USER:-"jboss"}
#EJBCA_HOME=${EJBCA_HOME:-"/etc/profile.d/ejbca.sh"}
JAVAPTH=${JAVAPTH:-"/usr/local/jdk/bin"}
#JAVAPTH=${JAVA_HOME}:/bin
JBOSS_CONF=${JBOSS_CONF:-"default"}
JBOSS_BIN_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}
if [ "$JBOSS_USER" = "RUNASIS" ]; then
SUBIT=""
else
SUBIT="su - $JBOSS_USER -c "
fi
if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then
touch $JBOSS_CONSOLE
if [ ! -z "SUBIT" ]; then
chown $JBOSS_USER $JBOSS_CONSOLE
fi
fi
if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then
echo "WARNING: location for saving console log invalid:$JBOSS_CONSOLE"
echo "WARNING: ignoring it and using /dev/null"
JBOSS_CONSOLE="/dev/null"
fi
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.shutdown --shutdown"}
if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then
export PATH=$PATH:$JAVAPTH
fi
if [ ! -d "$JBOSS_HOME" ]; then
echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
exit 1
fi
echo JBOSS_CMD_START=$JBOSS_CMD_START
$SUBIT "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
fi
;;
stop)
#/etc/init.d/jboss stop
if [ -z "$SUBIT" ]; then
$JBOSS_CMD_STOP
if
#else
$SUBIT "$JBOSS_CMD_STOP"
fi
;;
restart)
#/etc/init.d/jboss restart
$0 stop
$0 start ;; *)
echo "usage: $0 (start|stop|restart|help)"
esac
  • # Exemples + colorisation de code

    Posté par  . Évalué à 6.

    Salut,

    En utilisant un soft qui "colorise" ton code, tu vois immédiatement que ton premier problème est du a:

    46. fi
    47. echo JBOSS_CMD_START=$JBOSS_CMD_START
    48. $SUBIT "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
    49. fi

    donc le if précédent est clos ligne 46, et le problème c'est que à ligne 49, tu clos un autre bloque if, qui n'a jamais été ouvert...

    Solution: ajouter une condition entre ligne 46 et 47 ou bien supprimer la ligne 49.

    Concernant le "selon" (je dirais plutôt switch):

    Un exemple parmi tous les scripts d'init sera parfait pour ajouter ligne 11 par exemple:

    case "$1" in
    start)

    Cdlt,
    • [^] # Re: Exemples + colorisation de code

      Posté par  (Mastodon) . Évalué à 2.

      bravo au courageux arrivant à lire sans indentation \o/

      ps : toutes ces variables, au début, tu voudrais pas les sortir de ton script ? les coller dans un fichier "de conf" qui est sourcé par le script ?
  • # PKI par EJBCA

    Posté par  . Évalué à 4.

    Salut!!

    Bah peut être que si tu suivais l'article mot par mot tu devrais y arriver! :D

    voila le script a mettre, dans le tiens t'as oublié de mettre quelques lignes à partir de la ligne 47(dans ta version) donc c'est un peu normal!!

    #!/bin/sh
    # $Id: jboss_init_redhat.sh 81068 2008-11-14 15:14:35Z dimitris@jboss.org $
    # JBoss Control Script
    # To use this script run it as root - it will switch to the specified user
    # Here is a little (and extremely primitive) startup/shutdown script
    # for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,
    # it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.
    # All this can be changed in the script itself.
    # Either modify this script for your requirements or just ensure that
    # the following variables are set correctly before calling the script.
    export JAVA_HOME=/usr/lib/jvm/java/jre
    export JBOSS_HOME=/opt/jboss
    # export de la variable d'environnement JBOSS_HOST
    export JBOSS_HOST=0.0.0.0
    # Ajout des variables d'environnement pour ANT
    export ANT_HOME=/opt/ant
    # Ajout de la variable d'environnement pour EJBCA
    export EJBCA_HOME=/usr/src/ejbca
    # Fichier de log Jboss
    export JBOSS_CONSOLE=/var/log/jboss/jboss.log
    # Utilisateur à utiliser pour démarrer jboss
    export JBOSS_USER=jboss
    # Serveur jboss à utiliser
    export JBOSS_SERVER=default
    # Ajout du répertoire dans le PATH système
    export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
    ################################################################################
    #define where jboss is - this is the directory containing directories log, bin, conf etc
    JBOSS_HOME=${JBOSS_HOME:-"/usr/local/jboss"}
    #define the user under which jboss will run, or use 'RUNASIS' to run as the current user
    JBOSS_USER=${JBOSS_USER:-"jboss"}
    #make sure java is in your path
    #JAVAPTH=${JAVAPTH:-"/usr/local/jdk/bin"}
    JAVAPTH=${JAVA_HOME}:/bin
    #configuration to use, usually one of 'minimal', 'default', 'all'
    JBOSS_CONF=${JBOSS_CONF:-"default"}
    #if JBOSS_HOST specified, use -b to bind jboss services to that address
    JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}
    #define the classpath for the shutdown class
    JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}
    #define the script to use to start jboss
    JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}
    if [ "$JBOSS_USER" = "RUNASIS" ]; then
    SUBIT=""
    else
    SUBIT="su - $JBOSS_USER -c "
    fi
    if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then
    # ensure the file exists
    touch $JBOSS_CONSOLE
    if [ ! -z "$SUBIT" ]; then
    chown $JBOSS_USER $JBOSS_CONSOLE
    fi
    fi
    if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then
    echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE"
    echo "WARNING: ignoring it and using /dev/null"
    JBOSS_CONSOLE="/dev/null"
    fi
    #define what will be done with the console log
    JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
    JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
    JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}
    if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then
    export PATH=$PATH:$JAVAPTH
    fi
    if [ ! -d "$JBOSS_HOME" ]; then
    echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
    exit 1
    fi
    echo JBOSS_CMD_START = $JBOSS_CMD_START
    case "$1" in
    start)
    cd $JBOSS_HOME/bin
    if [ -z "$SUBIT" ]; then
    eval "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
    else
    $SUBIT "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
    fi
    ;;
    stop)
    if [ -z "$SUBIT" ]; then
    $JBOSS_CMD_STOP
    else
    $SUBIT "$JBOSS_CMD_STOP"
    fi
    ;;
    restart)
    $0 stop
    $0 start
    ;;
    *)
    echo "usage: $0 (start|stop|restart|help)"
    esac




    voila j'espère que ça résoudra tes problèmes et que tu pourra faire joujou avec EJBCA :D

    Bon courage

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.