Script Perl / Shell / Sauvegarde

Denver -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

Je souhaite faire un programme en Perl qui devrait etre simple.
Mais sur un simple "ls -l nomdefichier" le programme me ressort : "abandon"

Ma question : Pourquoi ?

Deuxième chose, quelqu'un aurait-il une solution simple à cette problématique qui a la base est :

Vérification de la bonne execution de la sauvegarde sur bande.
En fait j'ai 2 dump de bases (ldap + mysql). Donc 2 fichiers .gz mis sur bande.
Il faut donc comparer la date du jour à la date des fichiers qui sont sur la bande avant sont ejection du lecteur.

Le script de sauvegarde est un shell, mais j'peux très bien faire appel à un fichier perl avant la fin du fichier sh.

Merci d'avance.

Denver.

4 réponses

  1. Utilisateur anonyme
     
    Mais sur un simple "ls -l nomdefichier" le programme me ressort : "abandon"

    Ma question : Pourquoi ?


    erf si on voyait le code ça serait plus facile :)
    0
  2. Denver
     
    Simple erreur de débutant :

    Sans le #!/usr/bin/perl
    EN PREMIERE LIGNE, le programme ne fonctionne pas.

    Et tout simplement, pour executer une commande en Perl :

    my $commande = "ls -l nomdefichier'";
    my $resultat = system($commande);


    System permet d'executer une commande Shell dans un script Perl.
    Plus précisement, une commande du système source.
    A la base, je suis en Shell, je lance un Perl, qui execute lui même un Shell.

    La commande Exec permet la même chose, mais ne revient pas au système d'origine.

    J'éspère avoir été clair tout de même ... ;-)
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    tu as un apostrophe simple à la fin de nomfichier

    sinon ça doit fonctionner.

    regarde
    lami20j@debian:~/trash$ ls -l aa
    -rw-r--r-- 1 lami20j lami20j 3104 2007-10-30 23:29 aa
    lami20j@debian:~/trash$ cat ccm.pl
    #!/usr/bin/perl
    
    
    my $commande = "ls -l aa";
    my $resultat = system($commande);
    lami20j@debian:~/trash$ perl ccm.pl
    -rw-r--r-- 1 lami20j lami20j 3104 2007-10-30 23:29 aa
    
    0
  4. dubis
     
    En une ligne :

    perl -e 'my $commande = "ls -l "; my $resultat = system($commande); '

    @+
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      Pour le fun, ta ligne est trop longue ;-)

      perl -e 'system("ls -l")' 
      0