bonjour,
qui pourrais me débloque je rame grave je débute en shell je dois faire un petit script j'ai du mal
je dois créer un scripte qui permette de comparer chaque jour 2 fichiers (c'est une fichier contenant l'existance d'imprimante ou l'ajout)
1er/ fichier " printers.conf "
2eme/ fichier "compare_printers"
je dois donc comparer ces 2 fichiers chaque jour
si pas de difference entre ces 2 fichiers alors c'est ok
si difference alors rajouter ceux qui manquent dans le fichier "compare_printers"
sachant que le fichier "compare_printers" est vide la 1er fois
(pour automatiser la tache je vais foutre ça dans une crontab mais le scripte je n'arrive à le créer)
comment faire aider moi merci
#!bin/ksh
#variables
printer=/etc/printers.conf #fichier existant contenant des noms d'imprimantes
diff=/etc/compare_printers #fichier créer qu'on nourrie chaque jour
merci les mecs c'est cool, mais croyer moi je fais pas semblant de rien fairemais j'ai du mal à démarrer mon scripte je ne sais pas ou aller
voici un peu plus d'infos pour le scriptes contenus du fichier "printers.conf":
ImpSifacPsc:\
:bsdaddr=ua50d,ImpSifacPsc,Solaris:\
:description=imprimante SIFAC:
gigi50d:\
:bsdaddr=ua50d,gigi50d,Solaris:\
:description=test:
Voila en faite le fichier "printers.conf" contient des noms d'imprimante je dois donc comparez chaque jour ce fichier avec un le "compare_printers" 'qui est vide au départ)
si pas de différence entre les 2 imprimante ok
si nouvelle imprimante(c'est à dire différence) la rajouter dans le fichier "compare_printers".
Merci déjà pour votre aide géniale ce site.
oui je dois rajouter dans le fichier des nouvelles imprimantes quand elles sont nouvelles
kim Le 12/02/2008 à 22:01 on se la refait : une imprimante qui change de nom, tu dois remplacer la ligne dans ton truc, ou juste ajouter la nouvelle configuration ?

Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi
juste ajouter la nouvelle conf imprimante dans mon fichier de comparaison "compare_printers" si y'a nouvelle imprimante
merci les mecs c'est cool je vais tester
Merci Pphd
ça avance petit à petit le problème
les 2 fichiers sont comparés ça ajoute bien une nouvelle imprimante dans le nouveau fichier 'compare'
mais maintenant si une imprimante et supprimé dans le fichier d'origine 'printers.conf' ça ne supprime pas dans le fichier 'compare' qu'est ce que je dois rajouter dans la commande
Merci de m'aider
f1=/root/printers.conf
f2=/root/compare
tmp=/root/tmp
(cat $f2 ; diff -u $f1 $f2 | grep '^-' | cut -d'-' -f2 ) > $tmp
mv -f $tmp $f2
PpHd Le 13/02/2008 à 08:33 cp printers.conf compare_printers
n'est-il pas suffisant.
f1=/root/printers.conf
f2=/root/compare
tmp=/root/tmp
(cat $f2 ; diff -u $f1 $f2 | grep '^-' | cut -d'-' -f2 ) > $tmp
mv -f $tmp $f2
################################################################"
le scripte marche plus ou moins c'est cool j'avance petit à petit , autre question
1er question:
comment je fais pour remonter que les noms car là, je remonte tout :
ImpSifacPsc:\ (je veux récuperer que le nom de l'imprimante et pas le reste)
:bsdaddr=ua50d,ImpSifacPsc,Solaris:\
:description=imprimante SIFAC:
2ème question:
le scripte fait la difference entre 2 fichiers quand je supprime une imprimante le fichier crée à toujours l'ancienne imprimante comment faire.
3ème question:
je dois récuperer dans /etc/hosts l'ip de toute les imprimantes récuperer dans le fichier "compare"
exemple de /etc/host:
10.140.80.6 PNC4 PNC4Psc # HP Laserjet 5
4ème question:
ensuite je dois faire un ping sur ces adresse afin de voir celle qui sont branché ou eteinte
pour cette partie j'ai mon idée
je vais faire une boucle if après le ping si code retour =0 alors 0==>online alors indiquer la date du jour.
si code retour =1 alors 1==>offline
Aider moi please d'ailleurs pour mon tp cette exercice je l'ai appelé yaronet.sh (car j'avance grace à la communauté)
kim Le 13/02/2008 à 20:34 on va pas non plus te torcher tes devoirs quand même...

Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi
f1=/root/printers.conf
f2=/root/compare
tmp=/root/tmp
(cat $f2 ; diff -u $f1 $f2 | grep '^-' | cut -d'-' -f2 ) > $tmp
mv -f $tmp $f2
################################################################"
le scripte marche plus ou moins c'est cool j'avance petit à petit , autre question
1er question:
comment je fais pour remonter que les noms car là, je remonte tout :
ImpSifacPsc:\ (je veux récuperer que le nom de l'imprimante et pas le reste)
:bsdaddr=ua50d,ImpSifacPsc,Solaris:\
:description=imprimante SIFAC:
2ème question:
le scripte fait la difference entre 2 fichiers quand je supprime une imprimante le fichier crée à toujours l'ancienne imprimante comment faire.
3ème question:
je dois récuperer dans /etc/hosts l'ip de toute les imprimantes récuperer dans le fichier "compare"
exemple de /etc/host:
10.140.80.6 PNC4 PNC4Psc # HP Laserjet 5
aider moi jusqu'a ce niveau car je suis bloqué
bonsoir ,
j'ai fais une récupération par awk:
#!/bin/sh
f1=/etc/printers.conf140208
f2=/etc/printers.suivi
tmp=/tmp/tmp_printers
(cat $f1 |awk -F":" '{print $1}' $f1) > $tmp
mv -f $tmp $f2
je recupère maintenant que le nom des imprimantes,
dans mon fichier $f2
j'ai le nom des imprimantes : PNC4 PNC4Psc
j'ai un autre problème comment je fais pour récupérer
l'ip des l'imprimante dans le /etc/hosts avec mon fichier de récupération $f2
exemple de /etc/host:
10.140.80.6 PNC4 PNC4Psc
nslookup $NOMDELIMPRIMANTE
/etc/hosts sert à ça.
je comprends pas ce que tu veux dire
je veux récupérer l'ip pour faire un ping par la suite pour la suite de mon scripte comment je fais aider moi
Merci
en faite avec la commande awk
#!/bin/sh
f1=/etc/printers.conf140208
f2=/etc/printers.suivi
tmp=/tmp/tmp_printers
(cat $f1 |awk -F":" '{print $1}' $f1) > $tmp
mv -f $tmp $f2
je récupère que le 1er paramètre c'est à dire le nom des imprimantes par exemple "PNC4 PNC4Psc "
je dois aller après chercher dans le /etc/hosts l'ip des imprimantes qui correspondant aux noms que j'ai récupérer pour vérifier si elles sont allumer par un ping.
mais comment faire pour remonter l'ip et faire correspondre avec le noms que je récupère
exemple dans /etc/host : 10.140.80.6 PNC4 PNC4P sc sdfsdfsdfsfs
10.147.90.6 PNggggggvgfgf sdfgsdgfsd
PpHd Le 17/02/2008 à 22:08 grep $MonNom /etc/hosts | awk ' { print $1 } '
?
si je comprend bien ta commande tu grep sur variable MonNom dans /etc/hosts pour prendre la 1er variable (ip) ==>ok
comment tu mets en relation mon 1er scripte qui prend les noms des imprimante pour mettre ça dans un fichier $f2
et ton scripte pour récuperer l'ip des imprimantes dans /etc/hosts