Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
(résolu) [bash]pb de scripting
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
broly
Guru
Guru


Joined: 21 Feb 2003
Posts: 345
Location: cachan 94

PostPosted: Mon Oct 13, 2003 9:40 am    Post subject: (résolu) [bash]pb de scripting Reply with quote

slut tt le monde j'ai encore un pb de script et vu que je suis pas bien fort j'ai du mal !! :D
Voila j'explique en faite c tout simple j'ai une liste dans un fichier j'aimerai qu'il me cré des repertoire en fonction de ce qu'il y a dedans le truc c q'apparement il interprete mal le retour chariot et il met tout a la ligne :
Code:

# more clean_xerox
#!/bin/ksh
set -x
#--------------------------#
# Definition des variables #
#--------------------------#
#
XEROXDIR=/nas/scan/
ADMINHOME=`ypmatch admin passwd | awk -F: '{print $6}'`
DATE=`date "+%d-%m-%Y"`
DOMAINOTES=`cat -s ${ADMINHOME}/.domainotes`
MAILUSER="xxxxxxxxxxxx@${DOMAINOTES}"
LIST_IMP=${ADMINHOME}/bin/list_xerox
LIST_PREV=`cat -s ${LIST_IMP} | grep -v '^#'| awk '{print $0 $1}'`
LOG=/usr/tmp/${DATE}_clean_xerox.log
#
#------------------------------#
# Declaration des descripteurs #
#------------------------------#
#
# On logue TOUT dans un seul fichier
#
# Ouverture d'un descripteur en écriture
exec 3>${LOG}
#
# On redirige TOUT (sortie std et err) dans le descripteur 3
exec 1>&3
exec 2>&3
#
#---------------------------#
# Declaration des fonctions #
#---------------------------#
#
# Fonction remise a zero

#
freset () {
        ls -lrt ${XEROXDIR}
        rm -rf ${XEROXDIR}*
        rm -f /usr/tmp/list_imprimante
        if [ $? -eq 0 ] ; then
                echo "Remise à zero faite avec succès"
        else
                echo "Il y a eu un problème : code d'erreur $?"
        fi
}
#
# Fonction création des repertoires
#
fmkdir () {
#eval ${LIST_PREV}
echo ${LIST_PREV}
#exec < ${LIST_PREV}
#compteur=0
while read TYPE IMPRIMANTE < ${LIST_PREV}
        do
#               ((compteur+=1))
                if [ ${TYPE} -eq 535 ] ; then
                        mkdir -p ${XEROXDIR}${IMPRIMANTE}/pdf
                        mkdir -p ${XEROXDIR}${IMPRIMANTE}/tiff
                        chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/pdf
                        chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/tiff
                        chown -R xerox:sys ${XEROXDIR}${IMPRIMANTE}/pdf
                        chown -R xerox:sys ${XEROXDIR}${IMPRIMANTE}/tiff
                elif    [  ${TYPE} -eq 1632 ] ; then
                                mkdir -p ${XEROXDIR}${IMPRIMANTE}/jpeg
                                mkdir -p ${XEROXDIR}${IMPRIMANTE}/tiff
                                chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/jpeg
                                chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/tiff
                                chown -R xerox:sys ${XEROXDIR}${IMPRIMANTE}/jpeg
                                chown -R xerox:sys ${XEROXDIR}${IMPRIMANTE}/tiff
                        else
                                echo " ${TYPE} inconnu pour l'imprimante ${IMPRIMANTE}"
                fi
        done
}
#
# Fonction MAIL
#
fmail () {
#
        if [ -s ${LOG} ]
                then
                        printf "\nEnvoi du mail aux Destinataires suivants :\n ${MAILUSER}"
                        cat -s ${LOG} | mailx -s "Purge des spool XEROX sur le FILER" ${MAILUSER}
                        printf "\n"
                else
                        printf "\n Pas de fichiers ou repertoires crees ce jour\n\n"
        fi
}
#
#-------------#
# MAIN SCRIPT #
#-------------#
#
freset >&3
fmkdir >&3
fmail >&3
#
#----------------------------#
# Fermeture des descripteurs #
#----------------------------#
#
exec 3>&-

# Si on est arrivé la code de retour 0
exit 0


et le fichier :
Code:

# more list_xerox
535 h386160p
1632 h386200z
1632 h386230a
535 h386140x
535 h386190r
535 h386080v


et lorsque que je le lance voila ce qu'il me retourne :
Code:

# ./clean_xerox
+ XEROXDIR=/nas/scan/
+ + awk -F: {print $6}
+ ypmatch admin passwd
ADMINHOME=/user/admin
+ + date +%d-%m-%Y
DATE=13-10-2003
+ + cat -s /user/admin/.domainotes
DOMAINOTES=xxxxxxx
+ MAILUSER=xxxxxxxxxxx@rsib1006
+ LIST_IMP=/user/admin/bin/list_xerox
+ + grep -v ^#
+ cat -s /user/admin/bin/list_xerox
+ awk {print $0 $1}
LIST_PREV=535 h386160p535
1632 h386200z1632
1632 h386230a1632
535 h386140x535
535 h386190r535
535 h386080v535
+ LOG=/usr/tmp/13-10-2003_clean_xerox.log
+ exec
+ 3> /usr/tmp/13-10-2003_clean_xerox.log
+ exec
+ 1>& 3
+ exec
+ 2>& 3
#


et mon fichier de log :
Code:

# more /usr/tmp/13-10-2003_clean_xerox.log
+ freset
+ 1>& 3
total 0
Remise à zero faite avec succès
+ fmkdir
+ 1>& 3
535 h386160p535 1632 h386200z1632 1632 h386230a1632 535 h386140x535 535 h386190r535 535 h386080v535
./clean_xerox[5]: 535 h386160p535^J1632 h386200z1632^J1632 h386230a1632^J535 h386140x535^J535 h386190r535^J535 h386080v535: cannot open
+ fmail
+ 1>& 3

Envoi du mail aux Destinataires suivants :
 xxxxxxx
+ exec
+ + exit 0


Merci a tous !!


Last edited by broly on Mon Oct 13, 2003 12:41 pm; edited 1 time in total
Back to top
View user's profile Send private message
broly
Guru
Guru


Joined: 21 Feb 2003
Posts: 345
Location: cachan 94

PostPosted: Mon Oct 13, 2003 11:01 am    Post subject: Reply with quote

J'arrete pas d'essayer mais ca marche pas je c pas comment faire !! a l'aide !! JE dois faire fonctionner ca pour ce soir 16h00 je suis mal !!!! :(
Back to top
View user's profile Send private message
broly
Guru
Guru


Joined: 21 Feb 2003
Posts: 345
Location: cachan 94

PostPosted: Mon Oct 13, 2003 12:37 pm    Post subject: Reply with quote

bon bah g qd meme reussi
pour info :
Code:

#!/bin/ksh
set -x
#--------------------------#
# Definition des variables #
#--------------------------#
#
XEROXDIR=/nas/scan/
ADMINHOME=`ypmatch admin passwd | awk -F: '{print $6}'`
DATE=`date "+%d-%m-%Y"`
DOMAINOTES=`cat -s ${ADMINHOME}/.domainotes`
MAILUSER="xxxxxxxxxxxxxxx@${DOMAINOTES}"
LIST_IMP=${ADMINHOME}/bin/list_xerox
LIST_PREV=`cat -s ${LIST_IMP} | grep -v '^#'> /usr/tmp/list_imprimante`
LOG=/usr/tmp/${DATE}_clean_xerox.log
#
#------------------------------#
# Declaration des descripteurs #
#------------------------------#
#
# On logue TOUT dans un seul fichier
#
# Ouverture d'un descripteur en écriture
exec 3>${LOG}
#
# On redirige TOUT (sortie std et err) dans le descripteur 3
exec 1>&3
exec 2>&3
#
#---------------------------#
# Declaration des fonctions #
#---------------------------#
#
# Fonction remise a zero
#
freset () {
        echo "Liste des répertoires avant suppression :"
        ls -lrt ${XEROXDIR}
        rm -rf ${XEROXDIR}*
        if [ $? -eq 0 ] ; then
                echo "Remise à zero faite avec succès"
        else
                echo "Il y a eu un problème : code d'erreur $?"
        fi
}
#
# Fonction création des repertoires
#
fmkdir () {
cat /usr/tmp/list_imprimante | while read TYPE IMPRIMANTE
        do
                if [ ${TYPE} -eq 535 ] ; then
                        mkdir -p ${XEROXDIR}${IMPRIMANTE}/pdf
                        echo "mkdir -p ${XEROXDIR}${IMPRIMANTE}/pdf"
                        mkdir -p ${XEROXDIR}${IMPRIMANTE}/tiff
                        echo "mkdir -p ${XEROXDIR}${IMPRIMANTE}/tiff"
                        chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/pdf
                        echo "chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/pdf"
                        chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/tiff
                        echo "chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/tiff"
                        chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/pdf
                        echo "chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/pdf"
                        chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/tiff
                        echo "chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/tiff"
                elif    [  ${TYPE} -eq 1632 ] ; then
                                mkdir -p ${XEROXDIR}${IMPRIMANTE}/jpeg
                                echo "mkdir -p ${XEROXDIR}${IMPRIMANTE}/jpeg"
  echo "mkdir -p ${XEROXDIR}${IMPRIMANTE}/jpeg"
                                mkdir -p ${XEROXDIR}${IMPRIMANTE}/tiff
                                echo "mkdir -p ${XEROXDIR}${IMPRIMANTE}/tiff"
                                chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/jpeg
                                echo "chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/jpeg"
                                chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/tiff
                                echo "chmod -R 754 ${XEROXDIR}${IMPRIMANTE}/tiff"
                                chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/jpeg
                                echo "chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/jpeg"
                                chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/tiff
                                echo "chown -R root:sys ${XEROXDIR}${IMPRIMANTE}/tiff"
                        else
                                echo " ${TYPE} inconnu pour l'imprimante ${IMPRIMANTE}"
                fi
        done
}
#
# Fonction MAIL
#
fmail () {
#
        if [ -s ${LOG} ]
                then
                        printf "\nEnvoi du mail aux Destinataires suivants :\n ${MAILUSER}"
                        cat -s ${LOG} | mailx -s "Purge des spool XEROX sur le FILER" ${MAILUSER}
                        printf "\n"
                else
                        printf "\n Pas de fichiers ou repertoires crees ce jour\n\n"
        fi
}
#
#-------------#
# MAIN SCRIPT #
#-------------#
#
freset
fmkdir
fmail
rm -f /usr/tmp/list_imprimante
#
#----------------------------#
# Fermeture des descripteurs #
#----------------------------#
#
exec 3>&-

# Si on est arrivé la code de retour 0
exit 0
[/code]
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum