Script Unix / CGI não buscando a saída de script mais recente

0

Estou tentando obter uma lista de arquivos disponíveis em um servidor ftp do Windows e depois fazer mais processamento. Usando CURL para obter a lista de arquivos. Eu estou recebendo a saída exibida no navegador, mas é obsoleto. Quando eu crio um novo arquivo no servidor FTP, ele não está exibindo as últimas alterações. Para garantir que o script seja executado, coloquei em ls -ltr no final para verificar se o arquivo FTP_LISTING está sendo gravado. O registro de data e hora muda toda vez que eu atualizo a página.

Script CGI:

#!/usr/bin/ksh -x
echo 'Content-type: text/html'
echo
export PATH=$PATH:$HOME:/usr/bin/ksh
export FPATH=FINCTION_LIB_PATH
autoload set_env_variables
set_env_variables devfpf
echo "<HTML>"
echo "<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />"
echo "<meta http-equiv="Pragma" content="no-cache" />"
echo "<meta http-equiv="Expires" content="0" />"
echo "<meta http-equiv="Cache-control" content="no-cache">"
echo "<HEAD>"
echo "</HEAD>"
echo "<TITLE>Windows Box Logs</TITLE>"
echo "<H2 align=left> <font color=red>  Showing logs for NTFTP1 </FONT></H2>"
echo '<pre>'
  ksh /PATH_TO_SCRIPT/get_ntftp1_logs.ksh
   if [ $? = 0 ]; then
        echo '<pre>'
        cat /usr/appl/fpf/home/devfpf/logs/ntftp1.list | column -t
   else
        echo "Script did not run."
   fi
echo "<BODY>"
echo '<pre>'
  cat /PATH_TO_LIST_FILE/ntftp1.list
echo '</pre>'
echo "</BODY>"
echo "</HTML>"

Script da Shell:

#!/usr/bin/ksh
export PATH=$PATH:$HOME:/usr/bin/ksh:$HOME/utilities
autoload set_env_variables
export FPATH=/FUNCTION_LIB_PATH/function_lib
FTP_LISTING=/PATH_TO_LIST_FILE/ntftp1.list
FTP_CREDS=/PATH_TO_FTP_CREDENTIALS/.ftp_users.ini
echo " "
USERNAME='cat $FTP_CREDS | awk {'print $1'}'
PASSWORD='cat $FTP_CREDS | awk {'print $2'}'
FTP_HOST='cat $FTP_CREDS | awk {'print $3'}'
for DIR in REMOTE_FTP_PATH_1/ \
           REMOTE_FTP_PATH_2/ \
           REMOTE_FTP_PATH_3/
do
        echo "<H3 align=left> <font color=black> $DIR@$FTP_HOST : </FONT></H3>"
        echo 'yes +|head -45'|tr -d ' ' >> $FTP_LISTING
        curl ftp://$USERNAME:$PASSWORD@$FTP_HOST/%2f$DIR | sed -e '1,11d' | head -n -4 | sed 's/<A HREF=\"[^"]*\"//g' | tr -d         '>' | sed 's/<\/A/ /g' | tr -d '\r' | awk '{print $1,$2,$3,"<A HREF=http://apache_host.domain.com:port/cgi-bin/download_ntftp1_log-cgi?FILE="$4">" $4 "</A>"}' >> $FTP_LISTING
        echo " "
done

Mais tarde, estou tentando colocar um link em nomes de arquivos individuais. O que estou fazendo errado?

Em todos os casos a seguir, consigo ver os novos detalhes do arquivo de atualização no shell.

  1. Executando cgi como ksh -x cgi_script

  2. Executando o script de shell na linha de comando

  3. Experimentando o comando CURL a partir da linha de comando

  4. Tentando buscar os detalhes no navegador por meio de ftp: //

Inicialmente, achei que tinha algo a ver com o cache. No entanto, colocar meta tags no cache não ajudou muito.

Todas as recomendações são bem vindas. Desde já, obrigado.

    
por Ishan 02.05.2018 / 18:49

0 respostas