Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Shell Solaris versione 5.9

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Shell Solaris versione 5.9

Postdi Paolo87 » 19/09/12 15:28

Buon Pomeriggio ragazzi,ho un altro serio problema....

Si tratta stavolta di far girare una shell funzionante su HP-UX in ambiente Sun Solaris versione 5.9.Ho buttato tutta la mattina per trovare i comandi corrispondenti ma con scarsi risultati.
Purtroppo alla fine sta Shell andrebbe riscritta con i comandi per Solaris ma non so proprio da dove cominciare,vi posto la Shell che attualmente gira su HP-UX

Codice: Seleziona tutto
#!/usr/bin/ksh
############################################################################
#
# Input       : No parameters
#
#
# --------------------------------------------------------------------------

DATA_FILE=`date '+%Y%m%d_%H%M%S'`
DATA_MESE_ANNO=`date '+%Y%m'`
DIR_START=/prova
LOG_FILE=/prova/CONTROLLO_FILE_${DATA_FILE}.log

cd $DIR_START
        for NOME_FILE_IN in `ls -1 FlussoAvanzamento*`
do

        #### CONTROLLO NAMING CONVENTION ########
        ## prova_YYYYMMDD.txt  ############

        NOME_FILE=`basename ${NOME_FILE_IN}`

        IDX=`expr index $NOME_FILE _`
        NOME_FILE_TIME=`expr substr $NOME_FILE $IDX 9`
        NOME_FILE_TIME=`expr substr $NOME_FILE_TIME 2 8`

        echo "VALIDATION CHECK NOME FILE : $NOME_FILE" | tee -a $LOG_FILE
        CHECK=0

        #### CHECK anno NUMERIC
        X_ANNO=`expr substr $NOME_FILE_TIME 1 4`
        echo $X_ANNO | grep -q -v "[^0-9]"
        if [ $? -eq 0 ]
        then
              echo "Anno numerico $X_ANNO(OK)" | tee -a $LOG_FILE
                #### CHECK ANNO

        else
                echo "Errore di validazione sul Nome File : Anno non valido ($X_ANNO)" | tee -a $LOG_FILE
                CHECK=1
        fi

X_MESE=`expr substr $NOME_FILE_TIME 5 2`
        #### CHECK mese NUMERIC
        echo $X_MESE | grep -q -v "[^0-9]"
        if [ $? -eq 0 ]
        then
                echo "Mese numerico $X_MESE(OK)" | tee -a $LOG_FILE
                #### CHECK MESE
                if [ $X_MESE -gt  12 ]
                then
                        echo "\nNOME DEL FILE $NOME_FILE NON VALIDO ! MESE $X_MESE NON CORRETTO \n" | tee -a $LOG_FILE
                        CHECK=1
                fi
        else
                echo "Errore di validazione sul Nome File : Mese non valido ($X_MESE)" | tee -a $LOG_FILE
                CHECK=1
        fi

        X_GIORNO=`expr substr $NOME_FILE_TIME 7 2`
        #### CHECK giorno NUMERIC
        echo $X_GIORNO | grep -q -v "[^0-9]"
        if [ $? -eq 0 ]
        then
                echo "GIORNO numerico $X_GIORNO (OK)" | tee -a $LOG_FILE
                #### CHECK GIORNO
                if [ $X_GIORNO -gt  31 ]
                then
                        echo "\n NOME DEL FILE $NOME_FILE NON VALIDO ! GIORNO $X_GIORNO NON CORRETTO \n" | tee -a $LOG_FILE
                      CHECK=1
                fi
        else
                echo "Errore di validazione sul Nome File : GIORNO non valido ($X_GIORNO)" | tee -a $LOG_FILE
                CHECK=1
        echo "\n"
        fi
        if [ $CHECK -eq 0 ]
   then
   X_ANNOMESE_FILE=`expr substr $NOME_FILE_TIME 1 6`
   DIFF_DATE=`expr $DATA_MESE_ANNO - $X_ANNOMESE_FILE`
   if [ $DIFF_DATE -eq 89 ]
    then DIFF_DATE=1
       echo "La Differenza Temporale \350 di ${DIFF_DATE}" | tee -a $LOG_FILE
     else
       echo "La Differenza Temporale \350 di ${DIFF_DATE} Mesi" | tee -a $LOG_FILE
   fi
    if [ $DIFF_DATE -gt 2 ]
      then echo "File ${NOME_FILE} cancellato dalla DIR ${DIR_START}" | tee -a $LOG_FILE
     rm $NOME_FILE
    fi
  #  if [ $DIFF_DATE -eq 2 ]
  #   then echo "File ${NOME_FILE} cancellato dalla DIR ${DIR_START}" | tee -a $LOG_FILE
  #   rm $NOME_FILE
  #  fi
   echo "\n******* Fine Elaborazione File ${NOME_FILE} **************\n" |tee -a $LOG_FILE
  fi
        done


Questa Shella altro non fa che,prendere tutti i file chiamati "FlussoAvanzamento e ne controlla la loro data di creazione per vedere che siano tutti numeri.Infine li cancella solo se sono più vecchi di due mesi.


Grazie mille per l'aiuto raga
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Sponsor
 

Torna a Programmazione


Topic correlati a "Shell Solaris versione 5.9":

sostituire versione linux
Autore: gia8
Forum: Software Linux
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti