Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SCRIPT] Sauvegarder vos fichiers simplement et rapidement
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sun Sep 03, 2006 11:57 pm    Post subject: [SCRIPT] Sauvegarder vos fichiers simplement et rapidement Reply with quote

Bonsoir, j'ai créé (étant assez pourri, et vu que j'ai peur de perdre mes jolis fichiers de configs et autres) ce script qui a pour but de sauvegarder tout et n'importe quoi, selon bien sur une liste de fichier important. Il est "portable" dans le sens ou on peu l'exécuter sur n'importe quel linux (normalement).

Ce script est codé .. hum ... en bash :lol: c'est pourquoi il est possible qu'il fonctionne sur tout système UNIX même très basique ... 8)

Fonctionnalités:
- permet de lister les fichiers/répertoires important présent sur le système
- permet la sauvegarde dans une archive
- permet la sauvegarde via FTP de l'archive précédante
- auto-génération du fichier contenant les chemins vers les différents fichiers/répertoires important (à mettre à jour selon vos besoin)
- auto-sauvegarde de lui-même (il serait désastreux d'avoir tout sauvé sauf le script qui a fait le boulot pour vous :wink: )

Utilisation:
- sh pix-save.sh
- ./pix-save.sh (nécessite de donner le droit d'exécution préalablement: chmod +x pix-save.sh)

Par défaut, l'exacution de ce script demande un utilisateur ROOT et affiche l'aide si aucun paramètre n'est précisé.

Paramètres:
- --help: affiche l'aide
- --check: vérifie la présence des fichiers/répertoires important
- --save: sauvegarde vos fichiers/répertoires dans une archive
- --save --ftp: sauvegarde vos fichiers/répertoires localement et via FTP

Configurations: voir début du script ...

Personnalisation:
Après le premier lancement du script (--check ou --save), celui-ci va auto-générer un fichier appelé 'pix-save.data'. Ce fichier peut être mis à jour pour ajouter/supprimer des chemins absolu vers des fichiers ou des répertoires importants. Vous avez aussi la possibilité de modifier directement le script au niveau de la fonction 'generate_save_list()' qui a pour but de générer ce fichier 'pix-save.data'.


Nom du script: PiX-SAVE
Version actuelle: 1.0
Date de sortie: 13/12/2007



Les +:
- rapide
- efficace (si on oublie pas d'ajouter des chemins ...)
- copie de l'archive sur une autre machine
- en francais :D

Copier-coller le code si dessous dans un fichier que vous nomerez: pix-save.sh
Vous n'avez plus qu'a l'exécuter :wink:
Code:

#!/bin/bash
# by loopx
# 13/12/2007
############

#emplacement de ce script
THIS_PATH=$(pwd)
SCRIPT_NAME=$0

#Version
VERSION="1.0"

#Nom du fichier contenant la liste des fichiers/repertoires a sauvegarder
SAVE_LIST="pix-save.data"

#contient le chemin complet vers la liste des configs
SAVE_LIST_PATH=$THIS_PATH/$SAVE_LIST

#type d'archive 'tar' and 'tar.bz2'
ARCHIVE_TYPE="tar.bz2"

#emplacement du repertoire temporaire
TMP_PATH="/tmp/pix-save-tmp"


##############################################################################

#Permet d'afficher la date et l'heure
datetime() {
   echo "Date et Heure:"  $(date)
}

#Permet le nettoyage du sous repertoire 'pix-save'
remove_temporary_folder() {
   echo
   echo -n "> Suppression du répertoire temporaire '"$TMP_PATH"' ... "

   rm -rf $TMP_PATH

   if [ -e "$TMP_PATH" ]; then
      echo "erreur"
      echo "  Il semble que '"$TMP_PATH"' n'a pu être supprimé ! :o"
   else
      echo "OK"
   fi
}

#Permet de generer le fichier liste contenant les fichiers de configs les plus connus
#Il pourra etre modifie par apres (ou alors, modifier ce script)
generate_save_list() {
   echo "> Generation de la liste de fichier de configurations par defaut dans '"$SAVE_LIST_PATH"'..."
   echo "> N'hésitez pas à le modifier selon vos besoins..."
   echo

   touch $SAVE_LIST_PATH

   if [ -e "$SAVE_LIST_PATH" ]; then
      echo "  Création du fichier: OK"
   else
      echo "  !!! Création du fichier: KO (impossible de creer le fichier, permission refusee ???)"
      exit 1
   fi

   #configuration système
   echo /boot/grub/grub.conf >> $SAVE_LIST_PATH
   echo /etc/apache2/ >> $SAVE_LIST_PATH
   echo /etc/bind/ >> $SAVE_LIST_PATH
   echo /etc/conf.d/ >> $SAVE_LIST_PATH
   echo /etc/dhcp/dhcpd.conf >> $SAVE_LIST_PATH
   echo /etc/exports >> $SAVE_LIST_PATH
   echo /etc/firewall/ >> $SAVE_LIST_PATH
   echo /etc/fstab >> $SAVE_LIST_PATH
   echo /etc/group >> $SAVE_LIST_PATH
   echo /etc/hosts >> $SAVE_LIST_PATH
   echo /etc/laptop-mode/laptop-mode.conf >> $SAVE_LIST_PATH
   echo /etc/lilo.conf >> $SAVE_LIST_PATH
   echo /etc/make.conf >> $SAVE_LIST_PATH
   echo /etc/modules.autoload.d/kernel-2.6 >> $SAVE_LIST_PATH
   echo /etc/mplayer.conf >> $SAVE_LIST_PATH
   echo /etc/named/ >> $SAVE_LIST_PATH
   echo /etc/openvpn/ >> $SAVE_LIST_PATH
   echo /etc/quagga/ >> $SAVE_LIST_PATH
   echo /etc/rc.conf >> $SAVE_LIST_PATH
   echo /etc/resolv.conf >> $SAVE_LIST_PATH
   echo /etc/rsyncd.conf >> $SAVE_LIST_PATH
   echo /etc/samba/ >> $SAVE_LIST_PATH
   echo /etc/ssh/ >> $SAVE_LIST_PATH
   echo /etc/vsftpd/ >> $SAVE_LIST_PATH
   echo /etc/X11/xorg.conf >> $SAVE_LIST_PATH
   echo /usr/src/linux/.config >> $SAVE_LIST_PATH
   echo /root/script/ >> $SAVE_LIST_PATH
   echo /var/www/localhost/ >> $SAVE_LIST_PATH

   #configuration simple utilisateur
   echo $(echo '$USER_HOME_PATH')"/.amsn/" >> $SAVE_LIST_PATH
   echo $(echo '$USER_HOME_PATH')"/.kde/Autostart/" >> $SAVE_LIST_PATH
   echo $(echo '$USER_HOME_PATH')"/.xbindkeysrc" >> $SAVE_LIST_PATH
   echo $(echo '$USER_HOME_PATH')"/.xinitrc" >> $SAVE_LIST_PATH
   echo $(echo '$USER_HOME_PATH')"/.Xmodmap" >> $SAVE_LIST_PATH
   echo $(echo '$USER_HOME_PATH')"/startxgl" >> $SAVE_LIST_PATH
   echo $(echo '$USER_HOME_PATH')"/workspace" >> $SAVE_LIST_PATH

   echo "   Génération: TERMINEE"
   echo
}

#Vérifie la présence de la liste des fichiers/repertoires à sauvegarder; autogénération si introuvable
check_save_list() {
   if [ ! -e "$SAVE_LIST_PATH" ]; then
      echo "> Le fichier '$SAVE_LIST_PATH' est introuvable: AUTO-GENERATION requise..."
      generate_save_list
   else
      echo "> Le fichier '$SAVE_LIST_PATH' existe déjà; il ne sera pas remplacé."
   fi

   echo
}

#Début d'action du script (--check, --save)
main() {
   check_save_list

   #récupérer le chemin vers le HOME de l'utilisateur principal
   echo "> Vérification en cours ..."
   echo
   echo "  Veuillez indiquer le chemin vers le répertoire simple utilisateur (optionnel, ex: '/home/loopx') :"
   echo -n "  > "
   read USER_HOME_PATH
   echo

   #vérifier la saisie précédante
   if [ -z $USER_HOME_PATH ]; then
      echo "> Aucun répertoire utilisateur ne sera pris en compte"
      echo
   else
      if [ -e $USER_HOME_PATH ]; then
         echo "> Répertoire utilisateur validé"
         echo
      else
         echo "!!! Répertoire utilisateur introuvable: '"$USER_HOME_PATH"' !"
         exit 1
      fi
   fi

   echo "> NOTE: les fichiers ci-dessous, qui ont été trouvé, feront partie de l'archive ..."
   echo

   #vérification de la présence des fichiers/répertoires
   nb_found=0
   nb_total=0
   for FICHIER in $(cat $SAVE_LIST_PATH); do
      #re-evaluate the variable for change $USER_HOME_PATH to /home/blabla
      FICHIER=$(eval echo $FICHIER)

      nb_total=$(( $nb_total + 1 ))

      if [ -e $FICHIER ]; then
         echo -e "\t***" $FICHIER "=> trouvé"
         nb_found=$(( $nb_found + 1 ))
      else
         #on précise qu'un fichier est introuvable uniquement si c'est un check
         if [ $STATE = "check" ]; then
            echo -e "\t***" $FICHIER "=> pas trouvé"
         fi
      fi
   done

   echo
   echo "=> En résumé:"
   echo "===> "$nb_found"/"$nb_total" configurations à sauvegarder ..."
   echo "=============================================>"
   echo

   #sauvegarde des fichiers/répertoires
   if [ $STATE = "save" ]; then
      echo
      echo
      echo "> NOTE: la liste précédente affiche les configurations trouvées. Si il en manque, veuillez mettre à jour le fichier '"$SAVE_LIST_PATH"'."
      echo "    Si vous désirer arrêter ce script maintenant, vous pouvez utiliser les touches CTRL+C ..."
      echo
      echo "> Copie en cours ..."
      echo "  Ou voulez-vous que l'archive soit créée ('/root' par défaut) ?"
      echo -n "  > "
      read ARCHIVE_PATH
      echo

      #régler la valeur par défaut de ARCHIVE_PATH, la destination de l'archive contenant les sauvegardes
      if [ -z $ARCHIVE_PATH ]; then
         ARCHIVE_PATH="/root"

         if [ -e $ARCHIVE_PATH ]; then
            echo "> L'archive sera sauvegardée dans le répertoire '"$ARCHIVE_PATH"'..."
            echo
         else
            echo "> '"$ARCHIVE_PATH"' n'existe pas! Utilisation du répertoire utilisateur de ROOT défini dans le shell ..."
            echo

            ARCHIVE_PATH=$HOME

            if [ -e $ARCHIVE_PATH ]; then
               echo "> L'archive sera sauvegardée dans le répertoire '"$ARCHIVE_PATH"'..."
               echo
            else
               echo "!!! '"$ARCHIVE_PATH"', défini dans les variables d'environnement, est introuvable. Aucun répertoire valide n'a été trouvé pour le stockage de l'archive !"

               exit 1
            fi
         fi
      elif [ -e $ARCHIVE_PATH ]; then
         echo "> L'archive sera sauvegardée dans le répertoire '"$ARCHIVE_PATH"'..."
         echo
      else
         echo "!!! '"$ARCHIVE_PATH"' est introuvable !"
      fi

      #création du répertoire temporaire
      echo -n "> Création du répertoire temporaire ... "
      mkdir -p $TMP_PATH

      #vérification du répertoire temporaire
      if [ -e $TMP_PATH ]; then
         echo "OK"

         #vérification de la présence d'un ancien répertoire de configs
         if [ -e "$TMP_PATH/files_to_save" ]; then
            echo "> ATTENTION: un répertoire 'files_to_save' se trouvant dans '"$TMP_PATH"' à été trouvé."
            echo "  Ce répertoire ne devrait pas exister; il provient peut-être d'une ancienne sauvegarde..."
            echo "  Par sécurité, veuillez déplacer, ou supprimer, ce répertoire 'files_to_save' !"
            echo "!!! '"$TMP_PATH"/files_to_save' ne doit pas exister lors de l'execution de ce script !"
            exit 1
         fi

         mkdir -p $TMP_PATH/files_to_save
         echo -n "> Creation du sous repertoire temporaire: '"$TMP_PATH"/files_to_save' ... "

         if [ -e $TMP_PATH/files_to_save ]; then
            echo "OK"
            echo
         else
            echo "KO"
            echo "!!! Impossible de créer le répertoire temporaire '"$TMP_PATH/files_to_save"' !"
            exit 1
                        fi
      else
         echo " KO"
         echo "!!! Impossible de créer le répertoire '"$TMP_PATH"' !"
         exit 1
      fi

      echo "> Entrez le nom de l'archive (optionnel) :"
      echo -n "  > "
      read ARCHIVE_NAME
      echo

      #régler le nom de l'archive par défaut (=nom du pc)
      if [ -z $ARCHIVE_NAME ]; then
         ARCHIVE_NAME="cfg-"$(hostname)
      fi

      echo "> Nom complet du fichier archive: '"$ARCHIVE_NAME"."$ARCHIVE_TYPE"'"
      echo
      echo
      echo "> Sauvegarde en cours ..."
      echo
   
      #sauvegarde des fichiers/répertoires
      nb_saved=0
      for FICHIER in $(cat $SAVE_LIST_PATH); do
         #re-evaluate the variable for change $USER_HOME_PATH to /home/blabla
         FICHIER=$(eval echo $FICHIER)
   
         if [ -e $FICHIER ]; then
            nb_saved=$(( $nb_saved + 1 ))

            echo -n -e $nb_saved"/"$nb_found"\t***" $FICHIER "=> en cours ... "

            #copie des fichier/répertoires dans le répertoire temporaire
            cp -r $FICHIER $TMP_PATH/files_to_save
            
            echo "OK"
         fi
      done

      echo
      echo -n "> Je m'auto-sauvegarde :-) ... "$THIS_PATH/$SCRIPT_NAME" ... "
      cp $THIS_PATH/$SCRIPT_NAME $TMP_PATH/files_to_save
      echo "OK"

      echo

      #creation de l'archive
                #cd $PATH_CONF
      echo -n "> Création de l'archive "
      if [ $ARCHIVE_TYPE = "tar" ]; then
         echo -n "'TAR' ... "

         #création de l'archive à l'aide de la commande TAR
                        tar cf $ARCHIVE_PATH/$ARCHIVE_NAME.$ARCHIVE_TYPE $TMP_PATH/files_to_save
                elif [ $ARCHIVE_TYPE = "tar.bz2" ]; then
         echo -n "'TAR.BZ2' ... "

         #création de l'archive à l'aide de la commande TAR
         tar cjf $ARCHIVE_PATH/$ARCHIVE_NAME.$ARCHIVE_TYPE $TMP_PATH/files_to_save
                else
         echo "!!! Format d'archive non supporté: "$ARCHIVE_TYPE
         echo "Veuillez vérifier la configuration de ce script !"

         remove_temporary_folder
         exit 1
      fi

      echo "terminé"
                echo
                echo "> Vous trouverez l'archive ici: "$ARCHIVE_PATH/$ARCHIVE_NAME.$ARCHIVE_TYPE
                echo

      remove_temporary_folder

      #sauvegarde via ftp
      if [ $ARG2 = '--ftp' ]; then
         echo
         echo
         echo "> Sauvegarde de l'archive via FTP en cours..."
         echo
         echo -n "  > Vérification de la présence de 'FTP' ... "

         if [ -e "/usr/bin/ftp" ] || [ -e "/usr/sbin/ftp" ] || [ -e "/bin/ftp" ] || [ -e "/sbin/ftp" ]; then
            echo "trouvé"
         else
            echo "introuvable !"
            echo "!!! Veuillez installer la commande FTP sur votre système !"
            exit 1
         fi

         echo
         echo -n -e "\t> Entrez le nom ou l'IP du serveur FTP distant: "
         read HOST_NAME

         echo
         echo -n -e "\t> Entrez le nom d'utilisateur: "
         read USER_NAME

         echo
         echo -n -e "\t> Entrez le chemin où l'archive sera copiée (optionnel): "
         read FTP_PATH
         echo

         #vérification du chemin, utilisation du HOME si non spécifié
         if [ -z $FTP_PATH ]; then
            FTP_PATH="~"
         fi

         #se placer dans le répertoire ou se trouve l'archive
         cd $ARCHIVE_PATH

#NE PAS METTRE DE TABULATION A CET ENDROIT!!! NI D'ESPACE A LA FIN DE CES LIGNE !!! (pour le ftp)
#Dans le cas contraire, vous obtiendrez des erreurs ...!!!
ftp -n $HOST_NAME <<End-of-Session
user $USER_NAME
binary
cd $FTP_PATH
put $ARCHIVE_NAME.$ARCHIVE_TYPE
bye
End-of-Session

         echo
         echo "> Fin de la session FTP, si aucune erreur ne s'ai produite, c'est que le fichier a correctement été transféré :-)"
      fi
   fi
}

#Aide l'utilisateur à composer correctement la ligne appelant ce script
help() {
   echo "> Vous êtes perdu ? Pas de panique, lisez ce qui suit :"
   echo
   echo "  Le script 'PiX-SAVE' à pour but d'automatiser la sauvegarde des fichiers ou répertoires sensible sur un système UNIX. "
   echo
   echo "  Voici la liste complète des paramètres pris en compte :"
   echo "    '--help'  : afficher ce message d'aide."
   echo "    '--check' : permet de scanner la liste des configurations dans l'unique but de savoir s'ils sont présents sur le système."
   echo "    '--save'  : identique à '--check', mais va en faire une sauvegarde dans une archive local au système."
   echo "    '--save --ftp' : identique à '--save' mais permet la copie de l'archive sur un serveur FTP via l'utilisation de la commande 'ftp'."
}

###########################################################################
# DEBUT DU SCRIPT
###########################################################################

#le tag (généré par figlet)
echo " ____  ___  __    ____    ___     _______"
echo "|  _ \(_) \/ /   / ___|  / \ \   / / ____|"
echo "| |_) | |\  /____\___ \ / _ \ \ / /|  _|"
echo "|  __/| |/  \_____|__) / ___ \ V / | |___"
echo "|_|   |_/_/\_\   |____/_/   \_\_/  |_____|"
echo -e "\t= = > VERSION "$VERSION "< = ="
echo

#seul root peut executer ce script
if [ $(whoami) != root ]; then
   echo "Désolé, vous devez être ROOT pour utiliser ce script"
   exit 1
fi

echo -e "NOTE: ce script va s'auto-sauvegarder lors de l'archivage de vos configuration :-)"
sleep 1

echo
echo -e "\tCommande appelante:" $0 $1 $2
echo
echo

if [ -z "$1" ]; then
   help
elif [ "$1" = "--check" ]; then
   STATE="check"
   main
elif [ "$1" = "--save" ]; then
   STATE="save"

   #récuperer le 2ème paramètre: il est invisible à partir d'une fonction
   if [ -z $2 ]; then
      ARG2="nothing"
   else
      ARG2=$2
   fi

   main
elif [ "$1" = "--help" ]; then
   help
elif [ "$1" = "--generate-save-list" ]; then
   check_save_list
else
   echo "> Option incorrecte! Consultez l'aide pour de plus amples informations :"
   echo "  './pix-save.sh --help' pour afficher l'aide."
fi

echo
echo "A bientot ;-)"




J'espère que vous l'essaierez et que vous l'apprécierez :wink:

N'oubliez pas de me renvoyer vos impressions et vos remarques / bugs / fonctionnalités manquantes, je pourrais faire en sorte de l'améliorer un peu :o


IMPORTANT: lors du copier-coller, vérifié que les longues lignes n'ont pas été coupé en 2 ... cela poserais un problèmes syntaxique suivit peut être d'une erreur de logique ... De plus, à un endroit, il est indiqué qu'il ne faut absolument PAS mettre de tabulation ou d'espace pour respecter l'indentation. Si vous le faites, la fonctionalité FTP de ce script ne fonctionnera plus: erreur de syntaxe ou un truc du genre ... Donc, merci de vérifier à 2 fois avant de me dire que le script ne s'exécute même pas :)
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org


Last edited by loopx on Thu Dec 13, 2007 10:40 pm; edited 13 times in total
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Fri Sep 08, 2006 12:28 am    Post subject: Reply with quote

Mise à jour: séparation des données et du script.
Mise à jour2: only root, on peu faire ENTER sans se prendre la tete :)
Mise à jour 3: super, j'ai plus de problème avec le ftp, ai rendu le script un rien plus modulaire aussi et rajouter des check pour éviter que le script ne fasse des bêtises ;)
Mise à jour 4: generation du fichier 'conf-list' si nécessaire
Mise à jour 5: deux langue disponible: francais et anglais


TODO:
- utilisation de sftp
- vérif que les commandes utilisée existe bien
- check de certaine option AVANT d'arriver à la compression (genre le type de sauvegarde, .tar ou .tar.bz2)
- utilisation des options passé en paramètre pour ne pas les demander lors de l'exécution (aie, ca risque de faire mal ca :roll:)
- possibilité de regénérer le fichier 'conf-list' à partir du script seul (ca doit etre facile à faire :) et en plus, plus qu'un fichier à faire transferer pour le répendre. Tiens, ca pourrait meme etre automatique :) Je commence à bien aimer les scripts bash ;) [Oki]
- demander à l'utilisateur si il veut ou non une generation automatique du 'conf-list'
- refaire la présentation du script ... :D
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org


Last edited by loopx on Wed Sep 13, 2006 4:39 pm; edited 2 times in total
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Mon Sep 11, 2006 1:32 am    Post subject: Re: [SCRIPT] Sauvegarder vos configs nux facilement et via f Reply with quote

loopx wrote:


Ah, désolé, j'ai préféré la langue universelle au francais :oops:

J'espère que ca va pas faire en sorte que personne ne le teste :)
.


Avant que je ne tombe sur cette petite phrase je me suis demandé pourquoi tout était en anglais, je trouve un peu dommage de ne pas mettre les messages en français, car si ton programme fonctionne bien il risque d'y avoir quelqu'un qui va devoir le traduire, c'est un comble 8O

PS. c'est une remarque générale sur le programmeur francophone qui sort son programme en anglais et même pas dans sa langue natale.
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Mon Sep 11, 2006 3:22 am    Post subject: Reply with quote

Héhéhéhé :lol:

Ben, c'est pour faire un peu progresser mon anglais :roll:

Mais tu me fais penser à un truc... Et si je faisais un autre fichier pour la langue :lol: avec une auto-génération et un tit menu lors de la première install :wink:

Ca parrait un peu compliqué tout de meme... Il va falloir y réfléchir.
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Mon Sep 11, 2006 3:35 am    Post subject: Reply with quote

En fait ton bout de code à fait resortir un certain agassement car j'ai vu pas mal de programmeur francophonne qui ne prennent même plus la peine de programmer dans leur propre langue, alors que je vois au même moment M$ qui sort des traduction dans des langues que je ne connais même pas.

En plus le français et la francophonie c'est pas quand même rien, heeeuuu je suis entrain de m'emballer, c'est bon je -----> []


PS: tu l'as compris la remarque n'avait rien de personnelle
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Mon Sep 11, 2006 10:15 am    Post subject: Reply with quote

Je pense au contraire qu'il est bon de programmer en anglais. Il s'agit d'un logiciel libre. Tout le monde devrait pouvoir l'utiliser et comprendre facilement le code pour des améliorations futures. Comme l'anglais est la langue internationale...

Ceci ne va pas à l'encontre du fait qu'il est très bon de fournir des traductions des logiciels. Bien au contraire. Cela va dans le sens de ce que je viens d'écrire.
Back to top
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Mon Sep 11, 2006 11:46 am    Post subject: Reply with quote

titoucha wrote:
En plus le français et la francophonie c'est pas quand même rien ...


+ 1 :lol: ...

Magic Banana wrote:
Je pense au contraire qu'il est bon de programmer en anglais. Il s'agit d'un logiciel libre. Tout le monde devrait pouvoir l'utiliser et comprendre facilement le code pour des améliorations futures. Comme l'anglais est la langue internationale... Ceci ne va pas à l'encontre du fait qu'il est très bon de fournir des traductions des logiciels. Bien au contraire. Cela va dans le sens de ce que je viens d'écrire.


Moi, personnellement qui commence à programmer modestement avec Ruby et pense en français, même si les mots clé sont tjrs en anglais pour tous les langages donc facile de voir le travail du code pour un bon programmeur , je me vois mal écrire mon code en anglais qui pourrait m'empêcher de le voir clairement, si j'ai à revenir sur mon code qques temps après car mes variables et surtout mes commentaires sont très importants pour moi ... Et même si je capte pas mal l'anglais cela me gave tjrs d'utiliser un logiciel en anglais et si c'est un logiciel complexe :twisted: ...

je crois bien que Loopx à un peu abusé en postant son script en anglais dans un sous forum français alors qu'il y a le forum en anglais Documentation, Tips & Tricks :wink:, et si lui il a besoin d'améliorer son anglais ce n'est pas ce qui nous intéresse en tant qu'utilisateur ! En plus vu que je me suis tapé la traduction de mon script, je ne vois pas pourquoi il ne le ferais pas :D car son script n'est pas si long que cela !... Enfin la présentation sans balise bbcode laisse vraiment à désirer ! Tu trouvras de meilleurs exemples mais regarde comment je présente en gros un code https://forums.gentoo.org/viewtopic-t-496528.html et c'est pareil pour le ChangeLog et le TODO ... Tout cela est totalement amical sinon je n'aurais pas perdu mon temps à l'écrire :wink: !


@ +
_________________
Get Up and Go !
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Mon Sep 11, 2006 4:08 pm    Post subject: Reply with quote

titoucha wrote:
En fait ton bout de code à fait resortir un certain agassement car j'ai vu pas mal de programmeur francophonne qui ne prennent même plus la peine de programmer dans leur propre langue, alors que je vois au même moment M$ qui sort des traduction dans des langues que je ne connais même pas.

En plus le français et la francophonie c'est pas quand même rien, heeeuuu je suis entrain de m'emballer, c'est bon je -----> []


PS: tu l'as compris la remarque n'avait rien de personnelle


Mais ne t'inquiète pas, je vais pas me facher pour si peu, bien que le fait que tu dis que tu sois agassé ...

Rien n'empeche les gens de retraduire en effet, meme si ca crain si il y a des mises à jour. Tu sais, je fais un tit script bash pour m'aider, pour apprendre, alors pourquoi pas essayer un truc en 2 langues ?

Maintenant, c'est vrai, je laisse le francais de coté et pire, j'ai surement fais plein de faute. Encore désolé, mais le but étant aussi de faire un peu d'anglais :roll:

Maintenant, c'est pas pour ca que je le passerai pas en francais, j'aimerai juste ne pas retiré ce que j'ai déjà placé (=> pas repasser en fr, mais plutot ajouter le fr ...).

Help me if you can :wink:
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Mon Sep 11, 2006 4:13 pm    Post subject: Reply with quote

man in the hill wrote:
je crois bien que Loopx à un peu abusé en postant son script en anglais dans un sous forum français alors qu'il y a le forum en anglais Documentation, Tips & Tricks :wink:, et si lui il a besoin d'améliorer son anglais ce n'est pas ce qui nous intéresse en tant qu'utilisateur !


Mouais, bon, arretez de vous embaler comme ça, c'est bon!!! Jvais vous le pondre en francais aussi quand j'aurais trouvé le moyen ! Si j'ai pas été sur le forum en anglais, c'est parce que celui en francais est mieux, plus sympatique et surtout, c'est de la que je "viens" on va dire...

Tout est question de langue universelle. Que vont dire les chinoix si ils veulent utiliser mon script :lol:

@man in the hill: tout ca ne me dit pas si tu as déjà testé la nouvelle version, avec le binary, tu auras plus de probz à mon avis (permission denied), pourrais-tu confirmer ?

Pour la présentation de mon code, moui, si tu veux :)

Je trouve que c'est déjà fort claire (sauf les explications) mais bon, si tu veux, aux prochain post, je ferais le ménage. Je dois dire que c'est assez pénible de formatter sur un forum, mais bon faut bien le faire :roll:


EDIT: je cherche un howto bash mais plus complet que celui la: http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

Je sais pas comment gérer les arguments de mon script (pour que ca fonctionne en les mettants dans n'importe quel sens par exemple. Et aussi, comment peut on faire un NOT en bash, pour ce if : if [ -e fichier ] (je dois faire un if/else au lieu d'un if seul, parce que je dois vérifier que le fichier n'existe pas). Enfin, je vais y regarder...

J'aimerai qu'on me donne quelque proposition pour la "technique de traduction", comme ca je serais un peu plus aimé :lol: 8)

EDIT2: il me faudrait une commande qui permet la lecture complète AVEC espace de la ligne X d'un fichier donné (ainsi, ben je mets toutes les phrases dans ce fichier :roll: Ca commence à devenir massif ce tit script
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Mon Sep 11, 2006 5:08 pm    Post subject: Reply with quote

Voilà ce que tu cherches : http://personal.riverusers.com/~thegrendel/abs-guide-4.0.tar.bz2

Et puis ça te fera encore un peu travailler ton anglais. :wink:
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Mon Sep 11, 2006 6:48 pm    Post subject: Reply with quote

Oh, merci beaucoup :)
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Mon Sep 11, 2006 8:44 pm    Post subject: Reply with quote

loopx wrote:
@man in the hill: tout ca ne me dit pas si tu as déjà testé la nouvelle version, avec le binary, tu auras plus de probz à mon avis (permission denied), pourrais-tu confirmer ?


En fait tjrs pas ! Même sortie !

loopx wrote:
EDIT: je cherche un howto bash mais plus complet que celui la: http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

Je sais pas comment gérer les arguments de mon script (pour que ca fonctionne en les mettants dans n'importe quel sens par exemple. Et aussi, comment peut on faire un NOT en bash, pour ce if : if [ -e fichier ] (je dois faire un if/else au lieu d'un if seul, parce que je dois vérifier que le fichier n'existe pas). Enfin, je vais y regarder...


je suis très limité en bash ! mais en ruby passer des arguments est très simple et tester un fichier se fait aussi simplement que cela :
Code:
fichier = FileTest::exist?('nom_du_fichier')

la variable fichier récupère une valeur true ou false que tu traites dans un if ou un case qui est plus puissant que tous autres langages http://www.projectomega.org/article.php?lg=fr&php=tuts_ruby04&p=1

Je sais que je ne t'ai pas beaucoup aidé là avec mes insinuations :( ...


@ +
_________________
Get Up and Go !
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Mon Sep 11, 2006 9:22 pm    Post subject: Reply with quote

Non en fait, mais tu m'as quand meme dit que le ftp veux toujours pas fonctionner chez toi :wink:

Non, sérieux, ca me dépasse, peut etre faudrait'il le forcer en passive ou en ASCII (démarre peut etre en binaire chez toi alors que chez moi c'étais en ASCII). Ca me dépasse un peu comme un simple ftp peux foutre le kazaa...

Bon, de toute manière, il y aura bientot l'option sftp (si j'arrive...), la ca a intérret à fonctionner chez toi sinon, ca en devient triste :D
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Mon Sep 11, 2006 9:53 pm    Post subject: Reply with quote

loopx wrote:
Non, sérieux, ca me dépasse, peut etre faudrait'il le forcer en passive ou en ASCII (démarre peut etre en binaire chez toi alors que chez moi c'étais en ASCII). Ca me dépasse un peu comme un simple ftp peux foutre le kazaa...

Il fonctionne en passive et en binaire chez moi ! je vais fouiller un peu plus dans les jours qui viennent :wink: ...


@ +
_________________
Get Up and Go !
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Mon Sep 11, 2006 10:22 pm    Post subject: Reply with quote

man in the hill wrote:
loopx wrote:
Non, sérieux, ca me dépasse, peut etre faudrait'il le forcer en passive ou en ASCII (démarre peut etre en binaire chez toi alors que chez moi c'étais en ASCII). Ca me dépasse un peu comme un simple ftp peux foutre le kazaa...

Il fonctionne en passive et en binaire chez moi ! je vais fouiller un peu plus dans les jours qui viennent :wink: ...


@ +


Comment !? Mmmm, la commande ftp utilise apparement le mode binaire + actif pour la connexion, via le script ca semble plus etre du ASCII + actif?

Maintenant, tout dépend de tes configs de ton serveur ftp, le miens, il accepte tout, donc j'ai pas de permission denied mais ca fait un fichier corrompu (en ASCII).

Je vais le fixé en passive mode aussi alors ;) peut etre que c'est ca ton problème...
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Mon Sep 11, 2006 10:56 pm    Post subject: Reply with quote

loopx wrote:
je vais le fixé en passive mode aussi alors ;) peut etre que c'est ca ton problème...


Possible !
Code:

crazy_gentoo  %
 ftp amnesiac
Connected to amnesiac (192.168.26.1).
220 Welcome to Amnesiac FTP service.
Name (amnesiac:root): baki
530 Please login with USER and PASS.
SSL not available
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    2 1009     1007         4096 Jun 24 15:34 misc
drwxr-xr-x    2 1009     1007         4096 Jun 21 22:34 musik
drwxr-xr-x    2 1009     1007         4096 Jun 21 22:34 video
226 Directory send OK.
ftp>


Code:
200 PORT command successful. Consider using PASV. = mode passif


@ +
_________________
Get Up and Go !
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Tue Sep 12, 2006 12:30 am    Post subject: Reply with quote

Personne ne connait une commande pour afficher la ligne X d'un fichier ???? Ce serais super utile, j'ai regarder quelque man mais ca dis pas grand chose d'intéressant...
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Hélécine - Belgium

PostPosted: Tue Sep 12, 2006 12:58 am    Post subject: Reply with quote

loopx wrote:
Personne ne connait une commande pour afficher la ligne X d'un fichier ???? Ce serais super utile, j'ai regarder quelque man mais ca dis pas grand chose d'intéressant...


C'est peut-être pas la meilleure solution.. mais voilà :
head -n X fichier.txt | tail -n 1
_________________
Mangez du poulet !
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Tue Sep 12, 2006 2:00 am    Post subject: Reply with quote

loopx wrote:

Je sais pas comment gérer les arguments de mon script (pour que ca fonctionne en les mettants dans n'importe quel sens par exemple. Et aussi, comment peut on faire un NOT en bash, pour ce if : if [ -e fichier ] (je dois faire un if/else au lieu d'un if seul, parce que je dois vérifier que le fichier n'existe pas). Enfin, je vais y regarder...
t


Pour le NOT : if [ ! -e fichier]
Back to top
View user's profile Send private message
restecool
n00b
n00b


Joined: 27 Sep 2004
Posts: 30

PostPosted: Tue Sep 12, 2006 7:18 am    Post subject: Reply with quote

pour Magic Banana et loopx, le même en français :lol:
http://abs.traduc.org/abs-4.0-fr/abs-4.0-fr-html.tar.bz2

note:
vraiment cool ce script
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Tue Sep 12, 2006 8:59 am    Post subject: Reply with quote

Code:
The requested URL /abs-4.0-fr/abs-4.0-fr-html.tar.bz2 was not found on this server.


Et puis il veut travailler son anglais le loopx. :D

Sinon pour un traitement de fichier par ligne je pense que le mieux c'est d'utiliser sed (une horreur, les développeurs de vi s'en sont inspirés, c'est pour dire ! :lol: )... Il y a quelques trucs intéressants à ce sujet dans l'archive que je t'ai donné (mais comme toi j'en suis à la phase découverte du Shell).

Remarque il y a peut-être moyen de faire ça sans l'artillererie lourde avec la commande cut...

La proposition de PabOu me paraît très lourde de calcul...
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Tue Sep 12, 2006 1:46 pm    Post subject: Reply with quote

Code:
sed 'k!d' file
pour afficher la k-ième ligne ;)
_________________
The End of the Internet!
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Tue Sep 12, 2006 11:42 pm    Post subject: Reply with quote

Mmm, ca m'a l'air pas mal tout ca :)

Il va prendre un sale coup le script maintenant :D
Je me demande aussi si je devrais intégrer les langues dans le script afin de n'avoir qu'un seul fichier à transferer .... Je sais pas si c'est une bonne idée. Mais si le fichier de langue n'existe plus, ben le script n'ira plus :o c'est mal quoi ...
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Wed Sep 13, 2006 1:33 am    Post subject: Reply with quote

loopx wrote:
Mmm, ca m'a l'air pas mal tout ca :)

Il va prendre un sale coup le script maintenant :D
Je me demande aussi si je devrais intégrer les langues dans le script afin de n'avoir qu'un seul fichier à transferer .... Je sais pas si c'est une bonne idée. Mais si le fichier de langue n'existe plus, ben le script n'ira plus :o c'est mal quoi ...


En même temps tu n'as pas 10000 langues à traduire, l'anglais et le français suffiront mais tu peux aussi le faire en indi :P !
_________________
Get Up and Go !
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Wed Sep 13, 2006 1:38 am    Post subject: Reply with quote

On peut faire plusieurs style aussi ;)


Ben, voilà, c'est traduit, c'est incorporé dans le script, mais j'ai juste un dernier souci:

J'avais des echo -n qui sont remplacé par des echo tout court. Je sais pas trop comment gérer ca.

En fait, a la place de ceci dans le script: echo -e -n blablablabla


J'ai maintenant juste un echo -e blablablabla

J'ai aucune idée de comment lui dire de ne pas revenir à la ligne. Peut etre un switch case maintenant que j'y pense. Je regarderai ca demain parce que ca m'a bien soulé ce soir :D

Je posterai quand se sera plus joli ;)

Et je vais aussi incorporer une autogénération du fichier de langue ;)
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum