Forum debian-fr.org

Rechercher:

* Connexion   * M’enregistrer

* FAQ    * Rechercher





Poster un nouveau sujet Répondre au sujet  [ 342 messages ]  Aller à la page Précédente  1 ... 3, 4, 5, 6, 7, 8, 9 ... 14  Suivante
Auteur Message
MessagePosté: 09 Mai 2009 07:59 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14372
Localisation: Le domaine de Henri IV
Salut,

Citation:
je viens de les corrigés .


Si tu le dis :D :D :D :D

_________________
Debian 3.14-1.slh.1-aptosid (3.14-3) GT520 Nvidia nouveau Intel (I5) ~3GHz

http://aptosid-fr.org/phpbb


Haut
 Profil  
 
MessagePosté: 11 Mai 2009 15:00 
Hors ligne
Très bavard(e)!

Inscription: 05 Jan 2008 14:19
Messages: 526
Localisation: Paris
zyriuse a écrit:
Pardon pour les fautes d'orthographe je viens de les corriger
il s'agit de mon premier script en shell donc toutes les critiques sont les bienvenue !!

_________________
Savez-vous ce que signifie MICROSOFT?
Most Intelligent Customers Realize Our Software Only (for) Fools (&) Teenagers.
Traduction : Nos plus intelligents clients réalisent que nos logiciels sont seulement pour les imbéciles et les adolescents :):)


Haut
 Profil  
 
MessagePosté: 11 Mai 2009 16:50 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14372
Localisation: Le domaine de Henri IV
Citation:
#Création de compte pour le SRV_Fichier Samba
# créé le 04/05/09 par Olivier aliase zyriuse

echo "Il faut être root pour exécuter le script"

echo "Sélectionner le nom de l'utilisateur à ajouter"

# une commande Unix retourne 0 quand son résultat est positif

echo "l'utilisteur existe déjà"

echo " Etes-vous sûr de vouloir créer l'utilisateur o/n:"
read choix < $t_tty #il écoute la sortie

echo "Création du compte Samba"

echo " le compte a bien été créé "


Contribution :)

_________________
Debian 3.14-1.slh.1-aptosid (3.14-3) GT520 Nvidia nouveau Intel (I5) ~3GHz

http://aptosid-fr.org/phpbb


Dernière édition par ggoodluck47 le 03 Aoû 2009 13:39, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 13 Mai 2009 09:22 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 27 Mar 2009 16:47
Messages: 2671
Localisation: Bretagne (Rennes)
ggoodluck47 a écrit:
Citation:
#Création de compte pour le SRV_Fichier Samba
# créé le 04/05/09 par Olivier aliase zyriuse

echo "Il faut être root pour exécuter le script"

echo "Sélectionner le nom de l'utilisateur à ajouter"

# une commande Unix retourne 0 quand son résultat est positif

echo "l'utilisteur existe déjà"

echo " Etes-vous sûr de vouloir créer l'utilisateur o/n:"
read choix < $t_tty #il écoute la sortie

echo "Création du compte Samba"

echo " le compte a bien était créé "


Contribution :)

Surcontribution ("le compte avait bien été créé", on peut le dire, donc verbe avoir, donc pas d'accent...)


Haut
 Profil  
 
MessagePosté: 03 Aoû 2009 13:02 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
Ça fait un bail que personne n'a posté ici et moi encore plus.
Je suis entrain de travailler sur mon site web et j'ai donc besoin d'envoyer mes fichiers par ftp (j'ai un LAMP local mais je veux pouvoir montrer l'état de développement à des amis de temps en temps). Les clients FTP ils me sortent par les yeux, déconnexion/reconnexion plusieurs fois pour un simple envoie de quelques fichiers lourdeur général, difficulté de le configurer pour être efficace,… bref je me suis fait un script ça iras plus vite.

C'est du perl, l'idée c'est d'avoir un répertoire local, un répertoire distant et de vouloir tout envoyé dans le dossier distant en écrasant les précédents fichiers.

Note: il n'y a aucune gestion de quel version est la plus récente entre la version distante et la version local, c'est un script basique pour le moment en tout cas.
Code:
#!/usr/bin/perl
# -*- coding: utf-8 -*-
# Envoie de données par ftp
# Version 0.1

use strict;
use warnings;
use Net::FTP;

my $localdir = $ENV{HOME}.'/public_html/blog';
my $distdir = '/blog';
my $host = 'ftpperso.free.fr';
my $login = 'coucoucestmoi';
my $mdp = 'mdpsuperfort';

my $ftp = Net::FTP->new($host, Debug => 0)
    or die "Cannot connect to $host: $@";

$ftp->login($login, $mdp)
    or die "Cannot login ", $ftp->message;

$ftp->cwd($distdir)
    or die "Cannot change working directory ", $ftp->message;

sub parcours {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
        next if $file =~ /^\.\.?$/;
        if (-d $path.'/'.$file) {
            $ftp->mkdir($file);
            $ftp->cwd($file)
                or die "cwd failed ", $ftp->message;
            &parcours($path.'/'.$file);
        }
        if (-f $path.'/'.$file) {
            if (grep(/^$file$/, $ftp->ls())){
                $ftp->delete($file);
            }
            $ftp->put($path.'/'.$file)
                or die "put failed ", $ftp->message;
            print $path.'/'.$file." envoyé\n";
        }
    }
    $ftp->cdup()
        or die "cdup failed ", $ftp->message;
    print $path."\n";
}

parcours $localdir;

$ftp->quit;


Alors oui c'est lisible comme du perl, mais j'améliorerais peut être le code plus tard.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Dernière édition par MisterFreez le 04 Aoû 2009 18:34, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 03 Aoû 2009 23:17 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
Version 0.2 du code ci-dessus, il gère les dates et envoie les fichiers PNG en mode binaire. Petit plus maintenant il y a de la couleur.
Code:
#!/usr/bin/perl
# -*- coding: utf-8 -*-
# Envoie de données par ftp
# Version 0.2

use strict;
use warnings;
use Net::FTP;
use Term::ANSIColor;

sub printblue {
    print color 'bold blue';
    print @_;
    print color 'reset';
}

sub printgreen {
    print color 'green';
    print @_;
    print color 'reset';
}

my $localdir = $ENV{HOME}.'/public_html/blog';
my $distdir = '/blog';
my $host = 'ftpperso.free.fr';
my $login = 'michel.barret5';
my $mdp = 'motdepasse';

my $ftp = Net::FTP->new($host, Debug => 0)
    or die "Echec de la connexion à $host: $@";

$ftp->login($login, $mdp)
    or die "Echec du", $ftp->message;

$ftp->cwd($distdir)
    or die "Echec du changement de répertoire ", $ftp->message;

sub parcours {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    printblue " On entre dans le répertoire $path\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
        next if $file =~ /^\.\.?$/;
        if (-d $path.'/'.$file) {
            # Le fichier est un répertoire
            $ftp->mkdir($file);
            # On ne vérifie pas l'erreur au
            # cas où le dossier existe déjà
            $ftp->cwd($file)
                or die "cwd failed ", $ftp->message;
            &parcours($path.'/'.$file);
        }
        elsif (-f $path.'/'.$file) {
            if (grep(/^$file$/, $ftp->ls())){
                # Le fichier existe déjà sur le serveur
                my $distdate = $ftp->mdtm($file);
                my $localdate = (stat ($path.'/'.$file))[9];
                # Si le fichier sur le serveur est plus récent
                # on ne fait rien
                next if($distdate > $localdate);
                # Sinon on le supprime pour le remplacer
                $ftp->delete($file);
            }
            if(grep(/.png$/, $file)){
                $ftp->binary();
            }
            $ftp->put($path.'/'.$file)
                or die "put failed ", $ftp->message;
            if(grep(/.png$/, $file)){
                $ftp->ascii();
            }
            printgreen $file." envoyé\n";
        }
    }
    $ftp->cdup()
        or die "cdup failed ", $ftp->message;
    print $path." traité\n";
}

parcours $localdir;

$ftp->quit;

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Dernière édition par MisterFreez le 09 Oct 2009 13:06, édité 3 fois.

Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 07:35 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14372
Localisation: Le domaine de Henri IV
Salut,

La coutume voudrait que la seconde ligne (et les suivantes) explique clairement ce que fait le script qui suit :)

_________________
Debian 3.14-1.slh.1-aptosid (3.14-3) GT520 Nvidia nouveau Intel (I5) ~3GHz

http://aptosid-fr.org/phpbb


Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 10:29 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
Il fait exactement comme la version 0.1 que tu trouveras juste au dessus, c'est à dire, envoyer des fichiers sur un FTP en écrasant si besoin est les fichiers sur le serveur. On défini le dossier local, le dossier client (évidement le serveur, login et mot de passe) et il envoie les fichiers. Il reste un problème pour les fichiers binaires, là je gère les fichiers png mais ce n'est pas satisfaisant.
Il fait une comparaison des dates pour ne pas envoyer un fichier si la version du serveur est plus récente que la version local (ça reviens à dire qu'il y a pas eu de modification depuis).
Enfin il a une certaine coloration de la sortie ce qui permet de mieux voir ce qui se passe.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 11:33 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14372
Localisation: Le domaine de Henri IV
Salut MisterFreez,

Cette remarque ne t' etait pas spécialement destinée, c'était un rappel :

Je suis abonné à ce post, mais je ne suis pas concerné par tous les scripts, c'est donc particulièrement agréable quand dès la première ligne je sais ce qu'il fait sans me reporter aux posts précédents :)
Je suppose que je ne suis pas le seul dans ce cas :)

_________________
Debian 3.14-1.slh.1-aptosid (3.14-3) GT520 Nvidia nouveau Intel (I5) ~3GHz

http://aptosid-fr.org/phpbb


Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 15:53 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
D'accord pas de soucis je voyais pas les choses ainsi.
Version 0.3 de mon script d'envoie de fichier sur FTP en perl. Seule différence avec la version 0.2, il envoie tout en mode binaire. Ça permet d'envoyer des fichiers textes comme binaires sans problème.
Code:
#!/usr/bin/perl
# -*- coding: utf-8 -*-
# Envoie de données par ftp
# Version 0.3

use strict;
use warnings;
use Net::FTP;
use Term::ANSIColor;

sub printblue {
    print color 'bold blue';
    print @_;
    print color 'reset';
}

sub printgreen {
    print color 'green';
    print @_;
    print color 'reset';
}

my $localdir = $ENV{HOME}.'/public_html/blog';
my $distdir = '/blog';
my $host = 'ftpperso.free.fr';
my $login = 'michel.barret5';
my $mdp = 'motdepasse';

my $ftp = Net::FTP->new($host, Debug => 0)
    or die "Echec de la connexion à $host: $@";

$ftp->login($login, $mdp)
    or die "Echec du", $ftp->message;

$ftp->cwd($distdir)
    or die "Echec du changement de répertoire ", $ftp->message;
$ftp->binary();

sub parcours {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    printblue " On entre dans le répertoire $path\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
        next if $file =~ /^\.\.?$/;
        if (-d $path.'/'.$file) {
            # Le fichier est un répertoire
            $ftp->mkdir($file);
            # On ne vérifie pas l'erreur au
            # cas où le dossier existe déjà
            $ftp->cwd($file)
                or die "cwd failed ", $ftp->message;
            &parcours($path.'/'.$file);
        }
        elsif (-f $path.'/'.$file) {
            if (grep(/^$file$/, $ftp->ls())){
                # Le fichier existe déjà sur le serveur
                my $distdate = $ftp->mdtm($file);
                my $localdate = (stat ($path.'/'.$file))[9];
                # Si le fichier sur le serveur est plus récent
                # on ne fait rien
                next if($distdate > $localdate);
                # Sinon on le supprime pour le remplacer
                $ftp->delete($file);
            }
            $ftp->put($path.'/'.$file)
                or die "put failed ", $ftp->message;
            printgreen $file." envoyé\n";
        }
    }
    $ftp->cdup()
        or die "cdup failed ", $ftp->message;
    print $path." traité\n";
}

parcours $localdir;

$ftp->quit;

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Dernière édition par MisterFreez le 09 Oct 2009 13:07, édité 3 fois.

Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 16:11 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 13 Mar 2009 07:30
Messages: 12629
Localisation: Madagascar - Isalo
MisterFreez a écrit:
D'accord pas de soucis je voyais pas les choses ainsi.
Version 0.3 de mon script d'envoie de fichier sur FTP en perl. Seule différence avec la version 0.2, il envoie tout en mode binaire. Ça permet d'envoyer des fichiers textes comme binaires sans problème.
Salut, voici que est très cool, très pratique ton script ! :D Et comme toi, j'en ai besoin maintenant... ça avance ton site ?

_________________
GO Compréhensif...
SID 3.x-etc...-amd64 && Xfce 4.x
Je fais des sites maintenant! / Service d'hébergement d'images
Visitez et Participez au wiki du forum!


Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 17:45 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 28 Aoû 2003 13:01
Messages: 14372
Localisation: Le domaine de Henri IV
Re,


Citation:
#!/usr/bin/perl
# Version 0.3
# Envoi de fichier sur FTP en perl

use strict;
...


Comme quoi ce n'est pas toujours facile de se faire comprendre :) :)

_________________
Debian 3.14-1.slh.1-aptosid (3.14-3) GT520 Nvidia nouveau Intel (I5) ~3GHz

http://aptosid-fr.org/phpbb


Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 18:43 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23221
Localisation: Père.Igor (24)
ggoodluck47 a écrit:
Salut MisterFreez,

Cette remarque ne t' etait pas spécialement destinée, c'était un rappel :

Je suis abonné à ce post, mais je ne suis pas concerné par tous les scripts, c'est donc particulièrement agréable quand dès la première ligne je sais ce qu'il fait sans me reporter aux posts précédents :)
Je suppose que je ne suis pas le seul dans ce cas :)

Non, pas seul, moi itou !

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 04 Aoû 2009 18:50 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
Voici la dernière version du script perl servant à envoyer une arborescence sur un FTP.
La seule différence de cette version 0.4 c'est que le code est licencié (CECILL).
Code:
#!/usr/bin/perl
# -*- coding: utf-8 -*-
# Envoie de données par ftp
# Version 0.4

#Copyright Michel Barret, 4 avril 2009

#michel.barret@gmail.com

#Ce logiciel est un programme informatique servant à envoyer une arborescence
#complète d'un répertoire sur FTP.

#Ce logiciel est régi par la licence CeCILL soumise au droit français et
#respectant les principes de diffusion des logiciels libres. Vous pouvez
#utiliser, modifier et/ou redistribuer ce programme sous les conditions
#de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
#sur le site "http://www.cecill.info".

#En contrepartie de l'accessibilité au code source et des droits de copie,
#de modification et de redistribution accordés par cette licence, il n'est
#offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
#seule une responsabilité restreinte pèse sur l'auteur du programme,  le
#titulaire des droits patrimoniaux et les concédants successifs.

#A cet égard  l'attention de l'utilisateur est attirée sur les risques
#associés au chargement,  à l'utilisation,  à la modification et/ou au
#développement et à la reproduction du logiciel par l'utilisateur étant
#donné sa spécificité de logiciel libre, qui peut le rendre complexe à
#manipuler et qui le réserve donc à des développeurs et des professionnels
#avertis possédant  des  connaissances  informatiques approfondies.  Les
#utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
#logiciel à leurs besoins dans des conditions permettant d'assurer la
#sécurité de leurs systèmes et ou de leurs données et, plus généralement,
#à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.

#Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
#pris connaissance de la licence CeCILL, et que vous en avez accepté les
#termes.

use strict;
use warnings;
use Net::FTP;
use Term::ANSIColor;

sub printblue {
    print color 'bold blue';
    print @_;
    print color 'reset';
}

sub printgreen {
    print color 'green';
    print @_;
    print color 'reset';
}

my $localdir = $ENV{HOME}.'/public_html/blog';
my $distdir = '/blog';
my $host = 'ftpperso.free.fr';
my $login = 'michel.barret5';
my $mdp = 'motdepasse';

my $ftp = Net::FTP->new($host, Debug => 0)
    or die "Echec de la connexion à $host: $@";

$ftp->login($login, $mdp)
    or die "Echec du", $ftp->message;

$ftp->cwd($distdir)
    or die "Echec du changement de répertoire ", $ftp->message;
$ftp->binary();

sub parcours {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    printblue " On entre dans le répertoire $path\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
        next if $file =~ /^\.\.?$/;
        if (-d $path.'/'.$file) {
            # Le fichier est un répertoire
            $ftp->mkdir($file);
            # On ne vérifie pas l'erreur au
            # cas où le dossier existe déjà
            $ftp->cwd($file)
                or die "cwd failed ", $ftp->message;
            &parcours($path.'/'.$file);
        }
        elsif (-f $path.'/'.$file) {
            if (grep(/^$file$/, $ftp->ls())){
                # Le fichier existe déjà sur le serveur
                my $distdate = $ftp->mdtm($file);
                my $localdate = (stat ($path.'/'.$file))[9];
                # Si le fichier sur le serveur est plus récent
                # on ne fait rien
                next if($distdate > $localdate);
                # Sinon on le supprime pour le remplacer
                $ftp->delete($file);
            }
            $ftp->put($path.'/'.$file)
                or die "put failed ", $ftp->message;
            printgreen $file." envoyé\n";
        }
    }
    $ftp->cdup()
        or die "cdup failed ", $ftp->message;
    print $path." traité\n";
}

parcours $localdir;

$ftp->quit;


Vous êtes abonnés peut être, mais vous parsé le fichier pour ne garder que ce qui est entre deux balise [code] ? (surtout que c'est pas un sujet très fréquenté)

@lol > http://dveloppementdemonblog.blogspot.com/

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Dernière édition par MisterFreez le 09 Oct 2009 13:08, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 21 Aoû 2009 17:12 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
Voici une version 20% plus rapide de mon code. L'astuce consiste à créer un fichier à la fin du traitement on se base sur ça date de modification à lui pour la comparer aux fichiers locaux ça diminue les commandes FTP envoyées.
Si vous voulez réenvoyer tout les fichiers il suffit de supprimer ~/.ftpperl.

Code:
#!/usr/bin/perl
# -*- coding: utf-8 -*-
# Envoie de données par ftp
# Version 0.5

#Copyright Michel Barret, 4 avril 2009

#michel.barret@gmail.com

#Ce logiciel est un programme informatique servant à envoyer une arborescence
#complète d'un répertoire sur FTP.

#Ce logiciel est régi par la licence CeCILL soumise au droit français et
#respectant les principes de diffusion des logiciels libres. Vous pouvez
#utiliser, modifier et/ou redistribuer ce programme sous les conditions
#de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
#sur le site "http://www.cecill.info".

#En contrepartie de l'accessibilité au code source et des droits de copie,
#de modification et de redistribution accordés par cette licence, il n'est
#offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
#seule une responsabilité restreinte pèse sur l'auteur du programme,  le
#titulaire des droits patrimoniaux et les concédants successifs.

#A cet égard  l'attention de l'utilisateur est attirée sur les risques
#associés au chargement,  à l'utilisation,  à la modification et/ou au
#développement et à la reproduction du logiciel par l'utilisateur étant
#donné sa spécificité de logiciel libre, qui peut le rendre complexe à
#manipuler et qui le réserve donc à des développeurs et des professionnels
#avertis possédant  des  connaissances  informatiques approfondies.  Les
#utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
#logiciel à leurs besoins dans des conditions permettant d'assurer la
#sécurité de leurs systèmes et ou de leurs données et, plus généralement,
#à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.

#Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
#pris connaissance de la licence CeCILL, et que vous en avez accepté les
#termes.

use strict;
use warnings;
use Time::Local;
use Net::FTP;
use Term::ANSIColor;

sub printblue {
    print color 'bold blue';
    print @_;
    print color 'reset';
}

sub printgreen {
    print color 'green';
    print @_;
    print color 'reset';
}

my $localdir = $ENV{HOME}.'/public_html/blog';
my $distdir = '/blog';
my $host = 'ftpperso.free.fr';
my $login = 'michel.barret5';
my $mdp = '*****';

my $fileref = $ENV{HOME}.'/.ftpperl';
my $dateref;
if (-f $fileref){
    $dateref = (stat ($fileref))[9];
}

my $ftp = Net::FTP->new($host, Debug => 0)
    or die "Echec de la connexion à $host: $@";

$ftp->login($login, $mdp)
    or die "Echec du", $ftp->message;

$ftp->cwd($distdir)
    or die "Echec du changement de répertoire ", $ftp->message;
$ftp->binary();

sub parcours {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    printblue " On entre dans le répertoire $path\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
        next if $file =~ /^\.\.?$/;
        if (-d $path.'/'.$file) {
            # Le fichier est un répertoire
            $ftp->mkdir($file);
            # On ne vérifie pas l'erreur au
            # cas où le dossier existe déjà
            $ftp->cwd($file)
                or die "cwd failed ", $ftp->message;
            &parcours($path.'/'.$file);
        }
        elsif (-f $path.'/'.$file) {
            if (grep(/^$file$/, $ftp->ls())){
                # Le fichier existe déjà sur le serveur
                my $localdate = (stat ($path.'/'.$file))[9];
                if(! -f $fileref){
                    $dateref = $ftp->mdtm($file);
                }
                next if($dateref > $localdate);
                # Sinon on le supprime pour le remplacer
                $ftp->delete($file);
            }
            $ftp->put($path.'/'.$file)
                or die "put failed ", $ftp->message;
            printgreen $file." envoyé\n";
        }
    }
    # On remonte d'un cran
    $ftp->cdup()
        or die "cdup failed ", $ftp->message;
    print $path." traité\n";
}

parcours $localdir;

$ftp->quit;

utime(time, time, $fileref) or ( open(F, ">$fileref") && close F );

Une nouvelle version va arriver sous peu avec un fonctionnement bien plus sophistiquer qui j'espère iras encore plus vite.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 21 Aoû 2009 20:37 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 13 Mar 2009 07:30
Messages: 12629
Localisation: Madagascar - Isalo
MisterFreez a écrit:
Voici une version 20% plus rapide de mon code

Code:
#Copyright Michel Barret, 4 avril 2009



Oh ! ça je suis TRES intéressé...
T'as un Paypal ? :mrgreen:

_________________
GO Compréhensif...
SID 3.x-etc...-amd64 && Xfce 4.x
Je fais des sites maintenant! / Service d'hébergement d'images
Visitez et Participez au wiki du forum!


Haut
 Profil  
 
MessagePosté: 21 Aoû 2009 21:52 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 10 Aoû 2009 17:29
Messages: 1384
Localisation: Val-de-marne
Bon, bah moi j'ai créé un script en python qui ... fait des bips =)

il faut d'abord installer le paquet beep
Code:
~# apt-get install beep


et ensuite, voila le script:

Code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
from random import randrange
sens = 1
i, frequence, vitesse = 0

type=input("Quel type de son prefères-tu? (1 = ascendant/descendant)| 0 = sons aleatoires:")
tps=input("Combien de bips compte-tu supporter( impossible d'arrêter en cours d'execution )?")
if type == 1:
        vitesse= input("Vitesse (entre 1 et 100)")
        pas=input("'pas' de combien de Hertz?( entre 1 et 100 )")
        hautMax=input("hauteur max ?( entre 500 et 3000 )")
while 1:
        if i==tps:
                break
        else:
                i+=1
        if type==0:
                frequence = randrange(0,10000)
                vitesse = randrange(1, 100)
        else:
                if sens == 1:
                        frequence+= pas
                        if frequence >= hautMax:
                                sens = 0
                if sens == 0:
                        frequence -= pas
                        if frequence <= 1:
                                sens = 1
        print frequence, "<== frequence; [ ", i,"eme bip ] | [ ", vitesse ,"ms/bip ]"
        os.system("beep -f "+str(frequence)+" -l "+str(vitesse))


Voilou, je vous souhaite bien du plaisir...

Dites-moi ce que vous en pensez ..

_________________
Core2Quad ¦ 4 Go ram | Nvidia 9600GT | NZXT M59 | Gnome 3 | 2.6.38-4.dmz.1-liquorix-amd64 | Carte son M-Audio Delta 1010LT
Participez au wiki !
Mes compos musicales sur Jamendo


Haut
 Profil  
 
MessagePosté: 21 Aoû 2009 22:38 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
@lol > Tu découvriras un jour que la licence GPL n'est pas là seule à être libre d'une part et d'autre part que même la licence GPL se sert du copyright.

Au passage t'apprendras aussi à lire
Code:
#Ce logiciel est régi par la licence CeCILL soumise au droit français et
#respectant les principes de diffusion des logiciels libres. Vous pouvez
#utiliser, modifier et/ou redistribuer ce programme sous les conditions
#de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
#sur le site "http://www.cecill.info".

La licence CECILL tel que je l'utilise est une transcription de la licence GPL au droit français. Elle s'applique n'importe où dans le monde avec plus de rigueur que la GPL du fait qu'elle fait directement référence au droit français. Au niveau européen c'est la licence la plus en vue pour les administrations quand elles font du logiciel libre. Je t'invite a aller voir le site indiqué pour plus d'informations.

Tu regarderas aussi la procédure de mise d'un code sous licence GPL et la première chose c'est copyrighter le code http://www.gnu.org/licenses/gpl-howto.fr.html

Donc ? :lol: :mrgreen: :lol:

Bon après si tu parle de la date je sais pas pourquoi je me suis raté sur le moi je vai modifier.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 21 Aoû 2009 22:49 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8380
Localisation: Grenoble
@L0u!$ > Si tu veut un peu plus t'amuser tu devrais regarder du coté des signeaux système pour les ignorer parce que là je pense qu'un Ctrl + C l'arrête.

Je peux pas essayer ce soir mais je t'en dis plus demain

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 22 Aoû 2009 04:47 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 13 Mar 2009 07:30
Messages: 12629
Localisation: Madagascar - Isalo
MisterFreez a écrit:
Au passage t'apprendras aussi à lire[code]#Ce logiciel est régi par la licence CeCILL soumise au droit français
[...]
Donc ? :lol: :mrgreen: :lol:

Bon après si tu parle de la date je sais pas pourquoi je me suis raté sur le moi je vai modifier.


Donc... J'avais lu :wink: C'était juste pour te taquiner, mais je vais aller voir le lien que tu donnes, je vais m'instruire un peu !
Ici à Madagascar, les histoires de Copiryght, licences... C'est juste pour faire joli :mrgreen:

Je vais essayer ton script aujourd'hui.
Merci pour ce travail, très utile ! :D

_________________
GO Compréhensif...
SID 3.x-etc...-amd64 && Xfce 4.x
Je fais des sites maintenant! / Service d'hébergement d'images
Visitez et Participez au wiki du forum!


Haut
 Profil  
 
MessagePosté: 22 Aoû 2009 06:46 
Hors ligne
Dieu du clavier.
Avatar de l’utilisateur

Inscription: 13 Mar 2009 07:30
Messages: 12629
Localisation: Madagascar - Isalo
MisterFreez a écrit:
Donc ? :lol: :mrgreen: :lol:

Le script tourne en ce moment même, GéNIAL ! Moi qui déteste les clients FTP (toi aussi je crois...).

Merci , un souci de moins... :D :D :D

_________________
GO Compréhensif...
SID 3.x-etc...-amd64 && Xfce 4.x
Je fais des sites maintenant! / Service d'hébergement d'images
Visitez et Participez au wiki du forum!


Haut
 Profil  
 
MessagePosté: 22 Aoû 2009 09:42 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 10 Aoû 2009 17:29
Messages: 1384
Localisation: Val-de-marne
MisterFreez a écrit:
@L0u!$ > Si tu veut un peu plus t'amuser tu devrais regarder du coté des signeaux système pour les ignorer parce que là je pense qu'un Ctrl + C l'arrête.

Je peux pas essayer ce soir mais je t'en dis plus demain


En fait, on ne peut pas l'arrêter car Ctrl+C arrête le programme "beep" et non mon script ... il fait juste défiler un peu plus vite les beeps ;)

_________________
Core2Quad ¦ 4 Go ram | Nvidia 9600GT | NZXT M59 | Gnome 3 | 2.6.38-4.dmz.1-liquorix-amd64 | Carte son M-Audio Delta 1010LT
Participez au wiki !
Mes compos musicales sur Jamendo


Haut
 Profil  
 
MessagePosté: 25 Aoû 2009 08:08 
Hors ligne
Grand posteur

Inscription: 13 Aoû 2009 07:59
Messages: 211
Yep,


Je vais peut être faire partager un peu mes scripts, j'en ai fait deux ou trois qui pourraient être utiles à certains, si vous voulez y jeter un oeil. Pour l'instant je n'en met qu'un parce que j'ai quelques soucis avec les autres ( :mrgreen: ) qui ne marchent plus depuis que je suis sous Debian... Mais je ne manquerais pas de les faire partager.

Rotate & Rename

Un petit script qui permet de renommer des photos en masse.
Le script permet de renommer les photos d'un APN (qui ont souvent des noms du genre PIC837475.JPG) en fonction de leur données exif.
Chaque photo est donc renommée avec la date et l'heure à laquelle la photo à été prise, ainsi qu'un nom que vous choisissez (en général je met le nom de l'évenement ou du photographe pour les évenements ou plusieurs photographes étaient présents)
On se retrouve avec des noms du genre :
2009-06-16 02h31min18 - "$nom".jpg

Celà permet d'avoir des noms plus sympa et pratiques que les noms d'origine, et ça permet pour un évenement ou il y a plusieurs photographes, d'avoir des photos rangées dans l'ordre, plutôt que les photos de chacun les unes à la suite des autres.

Accessoirement, le script remet les images à l'endroit (pour les photos prises verticalement)


Avertissement :
_Une fois les photos renommées, on ne peux revenir en arrière, il faut donc être sur de soi. Quelqu'un a modifié mon script de manière à permettre ça, personnellement je fais ça sur une copie des fichiers et ne supprime les originaux que quand je suis sur que c'est bon ;) Celà dit si vous voulez l'autre script je peux lui demander l'autorisation de vous le filer (quoique il doit être sous GPL)
_Dans le cas d'un évenement ou il y a plusieurs photographes, il faut avoir tous les APN à la même heure... et c'est la que ça flanche généralement...
_Le renommage ne fonctionne pas pour les vidéos, et les renomme en " - '$nom'.mpg", personnellement ça ne me dérange pas vu que je n'en fait pas beaucoup et renomme donc à la main, mais ça peut en déranger certains...

Voilà.
Les dépendances :
aptitude install exiv2 libjpeg-progs

Et le script :
ras-laptopoulos:/home/ras# cat .gnome2/nautilus-scripts/Rotate\ \&\ Rename
Code:
#/bin/bash
#
IFS="
"

auteur=$( zenity --entry --title="Auteur" --text="Nom/pseudo du photographe" --entry-text="ras" )
if ! [[ -z $auteur ]]
then auteur=" - $auteur"
fi

cd "$1"
ls | while read i
do
if [ -f "$i" ]
then
    n="0"
    date=$( exiv2 "$i" | grep timestamp | cut -c 19- | sed 's%:%-%g' | sed 's%-%h%3' | sed 's%-%min%3' )
    if ! [[ -z "$date" ]]
    then name="$date$auteur.jpg"
        while [ -f "$name" ]
        do
            n=$(( $n + 1 ))
            name="$date$auteur ($n).jpg"
        done
    mv "$i" "$name"
    fi
exifautotran "$name"
fi
done

exit 0



Bon en écrivant ça je me rend compte qu'il y a quand même pas mal de souci avec ce scripts, qui ne me gènent pas personnellement mais qui peuvent embeter certains, celà dit ça vous fait une base si vous voulez faire un truc plus performant :)


Haut
 Profil  
 
MessagePosté: 25 Aoû 2009 08:22 
Hors ligne
Grand posteur

Inscription: 13 Aoû 2009 07:59
Messages: 211
Checkmails

Pour les utilisateurs de boite gmail && les non utilisateurs de thunderbird et consors.

Ce script permet de checker dans votre boite gmail si vous avez des mails et, le cas échéant, fait clignoter la led "Ver num" en fonction du nombre de mails que vous avez (clignote double si vous avez deux mails, ainsi de suite)
Ca m'est utile moi qui ne suis pas un grand fan de thunderbird et autres, qui n'a pas encore mon serveur mail perso et qui ne reçoit pas un mail toutes les 5 minutes.

Si vous n'avez pas de mail non lu, le script check vos mails toutes les 5 minutes. Si vous avez au moins un mail non lu, le script check toutes les 15 secondes si vous en recevez de nouveaux ou si vous avez lu ceux là.

Les dépendances :
aptitude install blinkd

Le script :
Code:
#!/bin/bash
#
# But : faire clignoter une led différemment suivant le nombre de nouveaux mails sur son compte gmail
# Made by Ras'
#

cd /tmp
username=raskafary
#####
password=$( zenity --entry --title="Mot de passe Gmail" --text="Saisissez votre mot de passe :" --hide-text )
if [[ -z $password ]]
then exit
fi
if [[ $password == " " ]]
then password=$( zenity --entry --title="Mot de passe Gmail" --text="Saisissez votre mot de passe :" )
fi
#####



sleep 15

function get_rss
{
wget -q -O .gmail_rss https://$username:$password@mail.google.com/mail/feed/atom --no-check-certificate
fc=$( cat .gmail_rss | grep "fullcount" | grep -o [1-9] )
}

while true
do
get_rss

if ! [[ fc == "0" ]]
then
   until [[ $fc == "" ]]
   do
   blink -n -r $fc
   get_rss
   sleep 15
   done
blink
fi


sleep 5m
done

.gmail_rss



il faut changer dans le script le username, ici c'est raskafary vu que c'est mon login gmail, donc il faut mettre le votre.
Au lancement, il vous demande votre mot de passe gmail (de façon cryptée), si vous mettez juste un espace et validez, il vous le demandera en clair, comme ça vous êtes sûr de pas faire de fautes ^^

Le mot de passe est enregistré par la machine, mais n'est pas écrit en clair dans un fichier, il vous le redemande à chaque lancement, donc il est a priori irrécupérable.


Haut
 Profil  
 
MessagePosté: 25 Aoû 2009 11:34 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 10 Aoû 2009 17:29
Messages: 1384
Localisation: Val-de-marne
C'est dommage, car blink ne marche pas pour les PC portables ...

_________________
Core2Quad ¦ 4 Go ram | Nvidia 9600GT | NZXT M59 | Gnome 3 | 2.6.38-4.dmz.1-liquorix-amd64 | Carte son M-Audio Delta 1010LT
Participez au wiki !
Mes compos musicales sur Jamendo


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 342 messages ]  Aller à la page Précédente  1 ... 3, 4, 5, 6, 7, 8, 9 ... 14  Suivante

Index du forum » Forums d'aide » Trucs et Astuces


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Flux RSS Flux RSS Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
SEO
[ Time : 0.764s | 14 Queries | GZIP : Off ]