Thierry Leurent wrote:
Salut Alain,

  echo "$line"
  cd "$line"    # pour bash, un seul élément

Dans mon cas cela n'améliore rien, il n'arrive pas à aller sur le partage windows. Par contre cela fonctionne à merveille avec un rep linux.....

Il doit interpréter différemment le ? quand il est directement utilisé dans une variable ou en "ligne de commande". C'est sans doute dû à la différences de codes pages entre les deux machines.

Voici ce que j'ai fait de mon côté pour avoir le maximum de compatibilité :
# ----------------------------------------
U="userlogin"                 # à adapter ;-)
P="userpassword"      # idem
IO="iocharset=iso8859-15"
CP="codepage=cp850"
H="MSHOST"
SHARE="selfdefining" # ;-)

mount -t smbfs -o $U,$P,$IO,$CP //$H/$SHARE  /smb/$H
# ------------------------------------------
J'ai essayé de faire un lien symbolique pour donner au répertoire un nom sans caractères accentués et cela ne fonctionne pas mieux. C'est même pire, en ligne de commande, je n'arrive même pas à faire un cd. :(((( Il me dit qu'il n'existe pas.

Donc à moins de trouver une solution pour "convertir" les codes pages, je vais faire du hardcoding... C'est pas beau, je sais ;)

Par contre ta solution avec find est superbe et je vais l'utiliser, elle me simplifiera la vie.

Pour le problème de mail, c'est stupide sendmail n'est pas lancé.
Comme la machine que j'utilise pour cette application est un serveur de calcul. Qu'il est 90% du temps à 100% de cpu, qu'il est critique, que je ne connais pas sendmail, que j'ai pas le temps de le tester, que j'ai pas de machine de test, qu'elle évolue dans un réseau où je n'ai pas la main et où elle est fait figure d'OVNI et enfin que je ne veux pas me mettre à dos la boite qui gère le réseau interne. Ouf, je vais écrire, en perl, une appli genre mail qui en plus interrogera le dns pour connaitre le mx record.

Je n'aurai pas à installer un serveur de mail. J'évite aussi les problème dû aux changement de serveur de mails sur le réseau de la boite.

Tu dois pouvoir utiliser un module perl

cpan

cpan>  i /smtp/

-> une série de modules concernés, dont :

Email::Send::SMTP (C/CW/CWEST/Email-Send-2.05.tar.gz)

cpan> install Email::Send::SMTP
(...)
Running make install
Installing /usr/lib/perl5/site_perl/5.8.5/Email/Send.pm
Installing /usr/lib/perl5/site_perl/5.8.5/Email/Send/Test.pm
Installing /usr/lib/perl5/site_perl/5.8.5/Email/Send/SMTP.pm
Installing /usr/lib/perl5/site_perl/5.8.5/Email/Send/NNTP.pm
Installing /usr/lib/perl5/site_perl/5.8.5/Email/Send/IO.pm
Installing /usr/lib/perl5/site_perl/5.8.5/Email/Send/Qmail.pm
Installing /usr/lib/perl5/site_perl/5.8.5/Email/Send/Sendmail.pm
Installing /usr/share/man/man3/Email::Send::Qmail.3pm
Installing /usr/share/man/man3/Email::Send::NNTP.3pm
Installing /usr/share/man/man3/Email::Send::Sendmail.3pm
Installing /usr/share/man/man3/Email::Send.3pm
Installing /usr/share/man/man3/Email::Send::IO.3pm
Installing /usr/share/man/man3/Email::Send::SMTP.3pm
Installing /usr/share/man/man3/Email::Send::Test.3pm
Writing /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/auto/Email/Send/.packlist Appending installation info to /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/perllocal.pod
  /usr/bin/make install  -- OK
--------------------------------------------------------



Merci.

De rien,

  Alain

Thierry
On Thursday 18 May 2006 21:21, Alain EMPAIN wrote:
petites corrections :

Alain EMPAIN wrote:
Tu peux simplifier :

tu crées un fichier TICK dans ta directory
        CIBLE

ex: date > TICK

maintenant pour connaître les fichiers qui t'intéressent :

# -------------------------------------------
MONSHARE="/mnt/distant/Donn?es A1/"
cd "$MONSHARE"  # mettre des " " sinon le blanc va servir de délimiteur
ou utiliser un backslash
cd /mnt/distant/Donn?es\ A1/
find  . -maxdepth 1 -newer TICK > /tmp/maliste
date > TICK     # met à jour le fichier de référence de temps
        # pour le tour suivant
# -------------------------------------------
# rem: j'y mets la date, mais on pourrait tout aussi bien faire
#    echo coucou > TICK
#    ou touch TICK ;-)

Maintenant tu peux utiliser ta liste
if [ -s ... ] # on exécute s'il contient qqch

if [ ! -s /tmp/maliste ]  # FILE exists and has a size greater than zero
then
  TEMPS=`date +%y%m%d-%H%M`
   mail -s "Ma liste du $TEMPS" [EMAIL PROTECTED] < /tmp/maliste
fi

Cela devrait marcher (pas testé), mais si tu veux lire ligne par ligne
le fichier, n'oublie pas d'utiliser des "" pour le contenu de la ligne

for line in `cat /tmp/maliste`
do
  echo "$line"
  cd "$line"    # pour bash, un seul élément
  # ---
  echo $line    # visuellement identique,
  cd $line
        # mais pour bash il y a deux éléments
        # avec un espace séparateur
done

Bon amusement,

   Alain
-

Thierry Leurent wrote:
Bonsoir,

Voila la situation, je dois réaliser un script qui scanne
régulièrement un répertoire et envois un mail avec le nom des fichiers
qui y ont été créés depuis la dernière exécution du script.


Le principe de mon script est simple :
Pour connaître la dernière exécution, je stocke la date dans un
fichier (nbr de secondes depuis epoc).

Je mémorise la date de début d'exécution.
Je lis le fichier pour connaître la date de dernière exécution.
Je liste les fichiers du répertoire (premier niveau uniquement) grâce
à  un savant mélange de stat, cut, sed et sort.
Je par cour la liste et compare la date de dernière modification avec
la date de dernière exécution.
    Si le fichier est plus récent, je sauve son nom.
J'envois la liste des fichiers via la commande mail.

C'est simple :) et cela fonctionne presque :(

J'ai deux problèmes :

- Le répertoire fait partie un partage windows, monté avec samba et le
nom du répertoire à scanner (sous répertoire du montage) contient un
caractère accentué et un blanc.
Je monte mon "disque samba" dans /mnt/distant/
Dans un terminal, je fais ls /mnt/distant/* et j'ai
/mnt/distant/Donn?es A1/
Dans un terminal, je fais cd /mnt/distant/Donn?es A1 et j'arrive dans
/mnt/distant/Donn?es A1
Génial

Je me remet dans mon /home.
Je fais un script # !/bin/bash
cd /mnt/distant/Donn?es A1
echo $(pwd);

Il se place bien dans le répertoire Je fais un script # !/bin/bash
cd ..
Rep1="/mnt/distant/Donn?es A1";
Rep2="/mnt/distant/Donn?es\ A1";
cd $Rep1;
echo $(pwd);
cd $Rep2;
echo $(pwd);

Il me dit que /mnt/distant/Donn?es n'est pas un rep
             que /mnt/distant/Donn?es\ n'est pas un rep

Idem avec un passage de paramêtre


Deuxième problème.

Sendmail refuse ma connexion via mail

Merci
Thierry








_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe:
http://lists.unixtech.be/cgi-bin/mailman/listinfo/linux
Archives: http://www.mail-archive.com/linux@lists.unixtech.be
IRC: chat.unixtech.be:6667 - #unixtech
NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech
_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe:
http://lists.unixtech.be/cgi-bin/mailman/listinfo/linux Archives:
http://www.mail-archive.com/linux@lists.unixtech.be
IRC: chat.unixtech.be:6667 - #unixtech
NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech
_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://lists.unixtech.be/cgi-bin/mailman/listinfo/linux
Archives: http://www.mail-archive.com/linux@lists.unixtech.be
IRC: chat.unixtech.be:6667 - #unixtech
NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech



--
" Do something for freedom every day "
        * support Open Document Format :
                please discover and use OpenOffice (gratis)
        * or at least, install it as a converter from open format
                to a proprietary one.
Please realize that proprietary formats are important tools
to reinforce a monopoly.
begin:vcard
fn:Dr Alain EMPAIN
n:EMPAIN;Alain
org:University of LIEGE;Euregio ALMA-Grid project
adr;quoted-printable:Avenue de l'H=C3=B4pital, 3;;BAT. B23 GIGA,;Liege 1;;B-4000;Belgium
email;internet:[EMAIL PROTECTED]
title:Bioinformatics 
tel;work:+32 4 366 4497
tel;fax:+32 4 366 2917
tel;home:+32 85 51 2341
tel;cell:+32 497 70 1764
x-mozilla-html:FALSE
version:2.1
end:vcard

_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://lists.unixtech.be/cgi-bin/mailman/listinfo/linux
Archives: http://www.mail-archive.com/linux@lists.unixtech.be
IRC: chat.unixtech.be:6667 - #unixtech
NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech

Répondre à