
Escribí este script bash para implementar una aplicación web automáticamente en mi servidor Tomcat. Sigo recibiendo un error inesperado de fin de archivo, pero el código me parece correcto. También probé varios verificadores de sintaxis de bash en línea y no encontraron ningún problema.
Estoy usando una máquina virtual Ubuntu 20.04 LTS Hyper-V
Aquí está el código bash:
#!/bin/bash
CURRENT_DIRECTORY_PATH="$PWD"
PROPS_PATH=$CURRENT_DIRECTORY_PATH/iiq_auto_deployment.properties
certsIIQ_PATH=$CURRENT_DIRECTORY_PATH/certsIIQ
TOMCAT_PATH=$(grep TOMCAT_PATH "$PROPS_PATH" | cut -d= -f2)
WAR_PATH=$(grep WAR_PATH "$PROPS_PATH" | cut -d= -f2)
SERVICE_PATH=$(grep SERVICE_PATH "$PROPS_PATH" | cut -d= -f2)
BACKUP_PATH=$(grep BACKUP_PATH "$PROPS_PATH" | cut -d= -f2)
BACKUP_IIQ=$(grep BACKUP_IIQ "$PROPS_PATH" | cut -d= -f2)
BACKUP_WAR=$(grep BACKUP_WAR "$PROPS_PATH" | cut -d= -f2)
launchIIQConsole=$(grep launchIIQConsole "$PROPS_PATH" | cut -d= -f2)
date=$(date +%d-%m-%Y)
FILECMD_IMPORT=$CURRENT_DIRECTORY_PATH/import_sp_init_custom.txt
IIQPROPERTIES_FILE=/home/centos/Desktop #a enlever
# Check if the passenc file already exists
if [ ! -f "$certsIIQ_PATH/.passenc" ]
then
# Read user's username and password
read -r -s -p "Username: " username
read -r -s -p "Password: " password
# Generate private key and public key to encrypt/decrypt password
mkdir "$certsIIQ_PATH"
sudo openssl genrsa -out "$certsIIQ_PATH"/passwordPrivKey.pem 2048
sudo openssl rsa -in "$certsIIQ_PATH"/passwordPrivKey.pem -text -noout
sudo openssl rsa -in "$certsIIQ_PATH"/passwordPrivKey.pem -pubout -out "$certsIIQ_PATH"/passwordPubKey.pem
sudo openssl rsa -in "$certsIIQ_PATH"/passwordPubKey.pem -pubin -text -noout
sudo chmod 400 "$certsIIQ_PATH"/passwordPrivKey.pem
# Save username and password inside a file and encrypt it
echo "$password" > "$certsIIQ_PATH"/.pass
echo "$username" > "$certsIIQ_PATH"/.username
sudo chmod 400 "$certsIIQ_PATH"/.pass
sudo openssl rsautl -encrypt -inkey "$certsIIQ_PATH"/passwordPubKey.pem -pubin -in "$certsIIQ_PATH"/.pass -out "$certsIIQ_PATH"/.passenc
rm -f "$certsIIQ_PATH"/.pass
fi
if [ ! -d "$BACKUP_PATH" ]
then
mkdir "$BACKUP_PATH"
fi
if [ ! -d "$BACKUP_IIQ" ]
then
mkdir "$BACKUP_IIQ"
fi
if [ ! -d "$BACKUP_WAR" ]
then
mkdir "$BACKUP_WAR"
fi
if [ -d "$TOMCAT_PATH" ]
then
if [ -f "$WAR_PATH" ]
then
if [ -f "$SERVICE_PATH" ]
then
sudo systemctl stop tomcat
echo "Le service Apache Tomcat s'est arrete correctement."
sleep 1.5
echo "Sauvagarde du dossier IdentityIQ actuel..."
sleep 1
sudo mv "$TOMCAT_PATH"/webapps/identityiq "$BACKUP_IIQ"/identityiq.backup"$date"
echo "Decompression du fichier WAR..."
sleep 1.5
sudo unzip -o "$WAR_PATH" -d "$TOMCAT_PATH"/webapps/identityiq
echo "Decompression du fichier WAR terminee."
sudo cp $IIQPROPERTIES_FILE/iiq.properties "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/classes #a enlever
if [ -f "$TOMCAT_PATH/webapps/identityiq/WEB-INF/lib/mssql-jdbc-10.2.1.jre17.jar" ]
then
sudo rm "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/lib/mssql-jdbc-10.2.1.jre17.jar
fi
if [ "$launchIIQConsole" == true ]
then
if [ ! -f "$FILECMD_IMPORT" ]
then
echo "Creation du fichier temporaire..."
echo "import sp.init-custom.xml">"$FILECMD_IMPORT"
fi
username=$(cat "$certsIIQ_PATH"/.username)
password=$(sudo openssl rsautl -decrypt -inkey"$certsIIQ_PATH"/passwordPrivKey.pem -in "$certsIIQ_PATH"/.passenc)
sudo chmod +x "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/bin/iiq
echo "IIQ Console is launched!"
cd "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/bin/ && ./iiq console -u "$username" -p "$password" < "$FILECMD_IMPORT"
fi
sudo systemctl start tomcat
echo "Le service Apache Tomcat a demarre correctement."
sudo mv "$WAR_PATH" "$BACKUP_WAR"/identityiq.war"$date"
if [ -f "$FILECMD_IMPORT" ]
then
rm "$FILECMD_IMPORT"
fi
sudo find "$BACKUP_IIQ" -mtime +1 -exec rm -rf {} \;
sudo find "$BACKUP_WAR" -mtime +1 -exec rm -rf {} \;
echo "Old files deleted successfully."
else
echo "Le fichier $SERVICE_PATH n'existe pas."
fi
else
echo "Le fichier $WAR_PATH n'existe pas."
fi
else
echo "Le repertoire $TOMCAT_PATH n'existe pas."
fi
Si alguien puede ayudar, se lo agradecería mucho. ¡Gracias!