Is there a tool that can check the availability of an Oracle 11g database on a remote machine?
The only way to be sure that the remote database is up and that the listener is up and that the database is registered with the listener properly would be to actually make a connection.  You could use the SQL*Plus utility (assuming the Oracle client is installed on the linux box your application runs on) to attempt to make a connection.  Something like

Create a file check_db_up.sql

whenever sqlerror exit 1;
connect username/password@&lt;&lt;TNS alias&gt;&gt;
select 1 from dual;
exit 0;


Then invoke this script in your bash shell script and look at the return code

sqlplus /nolog @check_db_up.sql


If that returns 1, there was an error and the database isn't up.  If it returns a 0, the database is up and accepting connections.