Actuellement j'ai un script perl qui manipule des fichiers via un
classique system ("XXX");
Je cherche a optimiser tous cela et j'aurais besoin de deux fonctions
(si elle existe) :
1- Que mon script compare deux fichiers textes et qu'il soit capable de
dire si le second est different du premier (plutot que de faire un move
j'aimerais etre sur qu'il y a une modification dans le fichiers avant de
le deplacer et relancer l'appli)
2- Le script doit executer des commande sur une machine distante via
SSH. pareil, actuellement je bidouille avec du system ("XX"), il y a une
solution plus propre ?
À (at) Thu, 17 Nov 2005 13:33:17 +0100, Chris écrivait (wrote):
Juste pour ma culture personnelle mais si les clés ont un mot de passe existe t il un moyen pour se connecter vai ssh en lui passant la clé ou au pire en la saisissant au prealable
Em la passant (la clé), cela signifie qu'elle n'est plus protégée... donc non. En fournissant le mot de passe au préalable (à un processus sécurisé), peut-être en passant par ssh-agent ou un mécanisme similaire.
Salut,
Entre un clé avec passphrase vide ou il suffit de recupere le fichier id.rsa ou autre et une clé saisie par utilisateur.
Non en fait cela vient que j'utilise SSH avec cle + passphrase mais cela implique que cela devient difficile d'automatiser des transferts et/ou des scripts avec cette technique sauf si l'on crée une clé avec passphrase vide.
En fait pour automatiser qq chose avec CLE RSA et SSH si j'ai bien compris il faut utilisateur distant dédié + cle sans passphrase.
J'avais espéré que perl permettait de transmettre la passphrase du style <revons un peu> $SSH->connect( $host, $user, $pass_phrase) </revons un peu> A+ chris
Paul Gaborit wrote:
À (at) Thu, 17 Nov 2005 13:33:17 +0100,
Chris <chris@sra.fr> écrivait (wrote):
Juste pour ma culture personnelle mais si les clés ont un mot de passe
existe t il un moyen pour se connecter vai ssh en lui passant la clé
ou au pire en la saisissant au prealable
Em la passant (la clé), cela signifie qu'elle n'est plus
protégée... donc non. En fournissant le mot de passe au préalable (à
un processus sécurisé), peut-être en passant par ssh-agent ou un
mécanisme similaire.
Salut,
Entre un clé avec passphrase vide ou il suffit de recupere le fichier
id.rsa ou autre et une clé saisie par utilisateur.
Non en fait cela vient que j'utilise SSH avec cle + passphrase mais cela
implique que cela devient difficile d'automatiser des transferts et/ou
des scripts avec cette technique sauf si l'on crée une clé avec
passphrase vide.
En fait pour automatiser qq chose avec CLE RSA et SSH si j'ai bien
compris il faut utilisateur distant dédié + cle sans passphrase.
J'avais espéré que perl permettait de transmettre la passphrase du style
<revons un peu>
$SSH->connect( $host, $user, $pass_phrase)
</revons un peu>
A+
chris
À (at) Thu, 17 Nov 2005 13:33:17 +0100, Chris écrivait (wrote):
Juste pour ma culture personnelle mais si les clés ont un mot de passe existe t il un moyen pour se connecter vai ssh en lui passant la clé ou au pire en la saisissant au prealable
Em la passant (la clé), cela signifie qu'elle n'est plus protégée... donc non. En fournissant le mot de passe au préalable (à un processus sécurisé), peut-être en passant par ssh-agent ou un mécanisme similaire.
Salut,
Entre un clé avec passphrase vide ou il suffit de recupere le fichier id.rsa ou autre et une clé saisie par utilisateur.
Non en fait cela vient que j'utilise SSH avec cle + passphrase mais cela implique que cela devient difficile d'automatiser des transferts et/ou des scripts avec cette technique sauf si l'on crée une clé avec passphrase vide.
En fait pour automatiser qq chose avec CLE RSA et SSH si j'ai bien compris il faut utilisateur distant dédié + cle sans passphrase.
J'avais espéré que perl permettait de transmettre la passphrase du style <revons un peu> $SSH->connect( $host, $user, $pass_phrase) </revons un peu> A+ chris
Paul Gaborit
À (at) Thu, 17 Nov 2005 15:50:21 +0100, Chris écrivait (wrote):
J'avais espéré que perl permettait de transmettre la passphrase du style <revons un peu> $SSH->connect( $host, $user, $pass_phrase) </revons un peu>
À partir du moment où la "pass phrase" ou le mot de passe est stocké en clair quelque part, on considère que ce n'est plus sécurisé... donc que ça ne sert plus à rien.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 17 Nov 2005 15:50:21 +0100,
Chris <chris@sra.fr> écrivait (wrote):
J'avais espéré que perl permettait de transmettre la passphrase du style
<revons un peu>
$SSH->connect( $host, $user, $pass_phrase)
</revons un peu>
À partir du moment où la "pass phrase" ou le mot de passe est stocké
en clair quelque part, on considère que ce n'est plus sécurisé... donc
que ça ne sert plus à rien.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 17 Nov 2005 15:50:21 +0100, Chris écrivait (wrote):
J'avais espéré que perl permettait de transmettre la passphrase du style <revons un peu> $SSH->connect( $host, $user, $pass_phrase) </revons un peu>
À partir du moment où la "pass phrase" ou le mot de passe est stocké en clair quelque part, on considère que ce n'est plus sécurisé... donc que ça ne sert plus à rien.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Chris
Paul Gaborit wrote:
À (at) Thu, 17 Nov 2005 15:50:21 +0100, Chris écrivait (wrote):
J'avais espéré que perl permettait de transmettre la passphrase du style <revons un peu> $SSH->connect( $host, $user, $pass_phrase) </revons un peu>
À partir du moment où la "pass phrase" ou le mot de passe est stocké en clair quelque part, on considère que ce n'est plus sécurisé... donc que ça ne sert plus à rien.
Oui ok je critique pas le principe mais bon comment faire pour la faire saisir a l'utilisateur lambda via une interface graphique
A+ chris
Paul Gaborit wrote:
À (at) Thu, 17 Nov 2005 15:50:21 +0100,
Chris <chris@sra.fr> écrivait (wrote):
J'avais espéré que perl permettait de transmettre la passphrase du style
<revons un peu>
$SSH->connect( $host, $user, $pass_phrase)
</revons un peu>
À partir du moment où la "pass phrase" ou le mot de passe est stocké
en clair quelque part, on considère que ce n'est plus sécurisé... donc
que ça ne sert plus à rien.
Oui ok je critique pas le principe mais bon
comment faire pour la faire saisir a l'utilisateur lambda via une
interface graphique
À (at) Thu, 17 Nov 2005 15:50:21 +0100, Chris écrivait (wrote):
J'avais espéré que perl permettait de transmettre la passphrase du style <revons un peu> $SSH->connect( $host, $user, $pass_phrase) </revons un peu>
À partir du moment où la "pass phrase" ou le mot de passe est stocké en clair quelque part, on considère que ce n'est plus sécurisé... donc que ça ne sert plus à rien.
Oui ok je critique pas le principe mais bon comment faire pour la faire saisir a l'utilisateur lambda via une interface graphique
A+ chris
Nicolas George
Emmanuel Florac wrote in message :
Facile : cmp ne renvoie rien si les fichiers sont identiques, donc "faux", et quelque chose s'ils sont différents donc "vrai". Autrement dit il vaut mieux utiliser `` ou qx() plutôt que 'system' (je te laisse chercher pourquoi dans la doc...)
Beurk ! cmp, comme toutes les commandes Unix décentes, renvoit un code de retour pour indiquer le résultat de son fonctionnement. C'est infiniment préférable à la bidouille qui consiste à parser sa sortie, même trivialement.
Emmanuel Florac wrote in message
<pan.2005.11.16.13.26.08.972753@imaginet.fr>:
Facile : cmp ne renvoie rien si les fichiers sont identiques, donc "faux",
et quelque chose s'ils sont différents donc "vrai". Autrement dit il
vaut mieux utiliser `` ou qx() plutôt que 'system' (je te laisse chercher
pourquoi dans la doc...)
Beurk ! cmp, comme toutes les commandes Unix décentes, renvoit un code de
retour pour indiquer le résultat de son fonctionnement. C'est infiniment
préférable à la bidouille qui consiste à parser sa sortie, même
trivialement.
Facile : cmp ne renvoie rien si les fichiers sont identiques, donc "faux", et quelque chose s'ils sont différents donc "vrai". Autrement dit il vaut mieux utiliser `` ou qx() plutôt que 'system' (je te laisse chercher pourquoi dans la doc...)
Beurk ! cmp, comme toutes les commandes Unix décentes, renvoit un code de retour pour indiquer le résultat de son fonctionnement. C'est infiniment préférable à la bidouille qui consiste à parser sa sortie, même trivialement.
Emmanuel Florac
Le Thu, 17 Nov 2005 17:29:53 +0000, Nicolas George a écrit :
Beurk ! cmp, comme toutes les commandes Unix décentes, renvoit un code de retour pour indiquer le résultat de son fonctionnement. C'est infiniment préférable à la bidouille qui consiste à parser sa sortie, même trivialement.
à ma connaissance le code de retour indique le succès ou l'échec, mais pas le résultat de la commande.
-- Sutor ne ultra Crepidam.
Le Thu, 17 Nov 2005 17:29:53 +0000, Nicolas George a écrit :
Beurk ! cmp, comme toutes les commandes Unix décentes, renvoit un code de
retour pour indiquer le résultat de son fonctionnement. C'est infiniment
préférable à la bidouille qui consiste à parser sa sortie, même
trivialement.
à ma connaissance le code de retour indique le succès ou l'échec, mais
pas le résultat de la commande.
Le Thu, 17 Nov 2005 17:29:53 +0000, Nicolas George a écrit :
Beurk ! cmp, comme toutes les commandes Unix décentes, renvoit un code de retour pour indiquer le résultat de son fonctionnement. C'est infiniment préférable à la bidouille qui consiste à parser sa sortie, même trivialement.
à ma connaissance le code de retour indique le succès ou l'échec, mais pas le résultat de la commande.
-- Sutor ne ultra Crepidam.
Nicolas George
Emmanuel Florac wrote in message :
à ma connaissance le code de retour indique le succès ou l'échec, mais pas le résultat de la commande.
Dans toutes les commandes « interrogatives » (grep, test, diff, cmp...), le code de retour est utilisé pour signaler le résultat du test, en plus d'un éventuel affichage sur le terminal, et en réservant un code distinct pour un échec anormal. Exemple pratique :
cigaes /tmp $ echo oui > oui1 cigaes /tmp $ echo oui > oui2 cigaes /tmp $ echo non > non cigaes /tmp $ cmp oui1 oui2; echo $? 0 cigaes /tmp $ cmp oui1 non; echo $? oui1 non differ: char 1, line 1 zsh: exit 1 cmp oui1 non 1 cigaes /tmp $ cmp oui1 maybe; echo $? cmp: maybe: No such file or directory zsh: exit 2 cmp oui1 maybe 2
Ce comportement est tout à fait standard, dans Single Unix par exemple (avec 0 pour le succès du test, 1 pour l'échec, et une valeur strictement supérieure à 1 pour une erreur).
Souvent, des options sont fournies pour supprimer la sortie terminal et n'avoir que le code de retour (-q pour GNU grep, -s pour cmp d'après Single Unix).
Emmanuel Florac wrote in message
<pan.2005.11.17.17.43.31.796224@imaginet.fr>:
à ma connaissance le code de retour indique le succès ou l'échec, mais
pas le résultat de la commande.
Dans toutes les commandes « interrogatives » (grep, test, diff, cmp...), le
code de retour est utilisé pour signaler le résultat du test, en plus d'un
éventuel affichage sur le terminal, et en réservant un code distinct pour un
échec anormal. Exemple pratique :
cigaes /tmp $ echo oui > oui1
cigaes /tmp $ echo oui > oui2
cigaes /tmp $ echo non > non
cigaes /tmp $ cmp oui1 oui2; echo $?
0
cigaes /tmp $ cmp oui1 non; echo $?
oui1 non differ: char 1, line 1
zsh: exit 1 cmp oui1 non
1
cigaes /tmp $ cmp oui1 maybe; echo $?
cmp: maybe: No such file or directory
zsh: exit 2 cmp oui1 maybe
2
Ce comportement est tout à fait standard, dans Single Unix par exemple (avec
0 pour le succès du test, 1 pour l'échec, et une valeur strictement
supérieure à 1 pour une erreur).
Souvent, des options sont fournies pour supprimer la sortie terminal et
n'avoir que le code de retour (-q pour GNU grep, -s pour cmp d'après Single
Unix).
à ma connaissance le code de retour indique le succès ou l'échec, mais pas le résultat de la commande.
Dans toutes les commandes « interrogatives » (grep, test, diff, cmp...), le code de retour est utilisé pour signaler le résultat du test, en plus d'un éventuel affichage sur le terminal, et en réservant un code distinct pour un échec anormal. Exemple pratique :
cigaes /tmp $ echo oui > oui1 cigaes /tmp $ echo oui > oui2 cigaes /tmp $ echo non > non cigaes /tmp $ cmp oui1 oui2; echo $? 0 cigaes /tmp $ cmp oui1 non; echo $? oui1 non differ: char 1, line 1 zsh: exit 1 cmp oui1 non 1 cigaes /tmp $ cmp oui1 maybe; echo $? cmp: maybe: No such file or directory zsh: exit 2 cmp oui1 maybe 2
Ce comportement est tout à fait standard, dans Single Unix par exemple (avec 0 pour le succès du test, 1 pour l'échec, et une valeur strictement supérieure à 1 pour une erreur).
Souvent, des options sont fournies pour supprimer la sortie terminal et n'avoir que le code de retour (-q pour GNU grep, -s pour cmp d'après Single Unix).
TiChou
Dans le message <news:, *Emmanuel Florac* tapota sur f.c.l.perl :
1- Que mon script compare deux fichiers textes et qu'il soit capable de dire si le second est different du premier (plutot que de faire un move j'aimerais etre sur qu'il y a une modification dans le fichiers avant de le deplacer et relancer l'appli)
Le plus simple ne serait-il pas de faire un system("cmp")?
D'expérience, j'aurais plutôt tendance à conseiller, pour faire de la comparaison de fichiers, à utiliser un algorithme de signature numérique comme MD5 avec md5sum qui sera beaucoup plus rapide que de la comparaison octet par octet comme le fait 'cmp'. Enfin ma remarque s'applique surtout dans le cas de fichiers relativement gros.
-- TiChou
Dans le message <news:pan.2005.11.16.11.56.07.107525@imaginet.fr>,
*Emmanuel Florac* tapota sur f.c.l.perl :
1- Que mon script compare deux fichiers textes et qu'il soit capable de
dire si le second est different du premier (plutot que de faire un move
j'aimerais etre sur qu'il y a une modification dans le fichiers avant de
le deplacer et relancer l'appli)
Le plus simple ne serait-il pas de faire un system("cmp")?
D'expérience, j'aurais plutôt tendance à conseiller, pour faire de la
comparaison de fichiers, à utiliser un algorithme de signature numérique
comme MD5 avec md5sum qui sera beaucoup plus rapide que de la comparaison
octet par octet comme le fait 'cmp'.
Enfin ma remarque s'applique surtout dans le cas de fichiers relativement
gros.
Dans le message <news:, *Emmanuel Florac* tapota sur f.c.l.perl :
1- Que mon script compare deux fichiers textes et qu'il soit capable de dire si le second est different du premier (plutot que de faire un move j'aimerais etre sur qu'il y a une modification dans le fichiers avant de le deplacer et relancer l'appli)
Le plus simple ne serait-il pas de faire un system("cmp")?
D'expérience, j'aurais plutôt tendance à conseiller, pour faire de la comparaison de fichiers, à utiliser un algorithme de signature numérique comme MD5 avec md5sum qui sera beaucoup plus rapide que de la comparaison octet par octet comme le fait 'cmp'. Enfin ma remarque s'applique surtout dans le cas de fichiers relativement gros.
-- TiChou
Emmanuel Florac
Le Sun, 20 Nov 2005 17:07:58 +0100, TiChou a écrit :
D'expérience, j'aurais plutôt tendance à conseiller, pour faire de la comparaison de fichiers, à utiliser un algorithme de signature numérique comme MD5 avec md5sum qui sera beaucoup plus rapide que de la comparaison octet par octet comme le fait 'cmp'.
Ce n'est plus rapide que si tu compares plusieurs fois un fichier avec d'autres. Si tu compares des paires toujours différentes, cmp sera plus rapide (il arrête dès qu'il trouve deux octets différents).
-- Ne pas savoir de quoi on parle est un avantage dont il ne faut pas abuser. R.Debray
Le Sun, 20 Nov 2005 17:07:58 +0100, TiChou a écrit :
D'expérience, j'aurais plutôt tendance à conseiller, pour faire de la
comparaison de fichiers, à utiliser un algorithme de signature numérique
comme MD5 avec md5sum qui sera beaucoup plus rapide que de la comparaison
octet par octet comme le fait 'cmp'.
Ce n'est plus rapide que si tu compares plusieurs fois un fichier avec
d'autres. Si tu compares des paires toujours différentes, cmp sera plus
rapide (il arrête dès qu'il trouve deux octets différents).
--
Ne pas savoir de quoi on parle est un avantage dont il ne faut pas
abuser.
R.Debray
Le Sun, 20 Nov 2005 17:07:58 +0100, TiChou a écrit :
D'expérience, j'aurais plutôt tendance à conseiller, pour faire de la comparaison de fichiers, à utiliser un algorithme de signature numérique comme MD5 avec md5sum qui sera beaucoup plus rapide que de la comparaison octet par octet comme le fait 'cmp'.
Ce n'est plus rapide que si tu compares plusieurs fois un fichier avec d'autres. Si tu compares des paires toujours différentes, cmp sera plus rapide (il arrête dès qu'il trouve deux octets différents).
-- Ne pas savoir de quoi on parle est un avantage dont il ne faut pas abuser. R.Debray
Nicolas George
Emmanuel Florac wrote in message :
Ce n'est plus rapide que si tu compares plusieurs fois un fichier avec d'autres. Si tu compares des paires toujours différentes, cmp sera plus rapide (il arrête dès qu'il trouve deux octets différents).
Ça dépend : avec cmp, il faut lire les deux fichiers en même temps, ce qui fait intervenir les temps d'accès du support de stockage s'ils sont gros et sur le même support, et les problèmes de scheduling d'accès disque.
Emmanuel Florac wrote in message
<pan.2005.11.20.16.34.56.210623@imaginet.fr>:
Ce n'est plus rapide que si tu compares plusieurs fois un fichier avec
d'autres. Si tu compares des paires toujours différentes, cmp sera plus
rapide (il arrête dès qu'il trouve deux octets différents).
Ça dépend : avec cmp, il faut lire les deux fichiers en même temps, ce qui
fait intervenir les temps d'accès du support de stockage s'ils sont gros et
sur le même support, et les problèmes de scheduling d'accès disque.
Ce n'est plus rapide que si tu compares plusieurs fois un fichier avec d'autres. Si tu compares des paires toujours différentes, cmp sera plus rapide (il arrête dès qu'il trouve deux octets différents).
Ça dépend : avec cmp, il faut lire les deux fichiers en même temps, ce qui fait intervenir les temps d'accès du support de stockage s'ils sont gros et sur le même support, et les problèmes de scheduling d'accès disque.
Marko
Bonsoir,
Sameline wrote:
Bonjour, 1- Que mon script compare deux fichiers textes et qu'il soit capable de dire si le second est different du premier (plutot que de faire un move j'aimerais etre sur qu'il y a une modification dans le fichiers avant de le deplacer et relancer l'appli)
J'utiliserais le module: File::Compare
Salutations
Bonsoir,
Sameline wrote:
Bonjour,
1- Que mon script compare deux fichiers textes et qu'il soit capable de
dire si le second est different du premier (plutot que de faire un move
j'aimerais etre sur qu'il y a une modification dans le fichiers avant de
le deplacer et relancer l'appli)
Bonjour, 1- Que mon script compare deux fichiers textes et qu'il soit capable de dire si le second est different du premier (plutot que de faire un move j'aimerais etre sur qu'il y a une modification dans le fichiers avant de le deplacer et relancer l'appli)