TNS_ADMIN informa ao sqlplus onde encontrar o arquivo tnsnames.ora.
Se você estiver executando o sqlplus a partir de um crontab, o motivo normal da dificuldade é:
- Caminho incorreto
- Não ter o ORACLE_SID definido corretamente ou outras informações de conexão do Oracle
- Um script de inicialização/login que está sendo executado quando você faz login no sistema que está interferindo na execução do cron
- Algum script que você executa na linha de comando ao fazer login que configura seu ambiente Oracle que não está sendo executado em seu crontab.
Verifique essas coisas e outros itens relacionados ao meio ambiente. Eu sempre demoro várias vezes para fazer o crontab e o Oracle trabalharem juntos.