Usa uno script come questo:
#!/bin/sh
echo "exit" | sqlplus -L uid/[email protected] | grep Connected > /dev/null
if [ $? -eq 0 ]
then
echo "OK"
else
echo "NOT OK"
fi
echo "exit" assicura che il tuo programma esca immediatamente (questo viene reindirizzato a sqlplus).-L assicura che sqlplus non chiederà la password se le credenziali non sono ok (il che lo farebbe anche bloccare).
(> /dev/null nasconde solo l'output di grep, di cui non abbiamo bisogno perché i risultati sono accessibili tramite $? in questo caso)
Puoi evitare il prompt SQL facendo:
sqlplus uid/[email protected] < /dev/null
SqlPlus esce immediatamente.
Ora basta grep l'output di quanto sopra come:
if sqlplus uid/[email protected] < /dev/null | grep 'Connected to'; then
# have connectivity to Oracle
else
# No connectivity
fi