View previous topic :: View next topic |
Author |
Message |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sun Sep 03, 2006 11:57 pm Post subject: [SCRIPT] Sauvegarder vos fichiers simplement et rapidement |
|
|
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 c'est pourquoi il est possible qu'il fonctionne sur tout système UNIX même très basique ...
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 )
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
Copier-coller le code si dessous dans un fichier que vous nomerez: pix-save.sh
Vous n'avez plus qu'a l'exécuter
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
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
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 ![Smile :)](images/smiles/icon_smile.gif) _________________ 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 |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Fri Sep 08, 2006 12:28 am Post subject: |
|
|
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 )
- 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 ... ![Very Happy :D](images/smiles/icon_biggrin.gif) _________________ 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 |
|
![](templates/gentoo/images/spacer.gif) |
titoucha Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/10449069954413d790886fc.jpg)
Joined: 21 Jul 2005 Posts: 2374 Location: Genève
|
Posted: Mon Sep 11, 2006 1:32 am Post subject: Re: [SCRIPT] Sauvegarder vos configs nux facilement et via f |
|
|
loopx wrote: |
Ah, désolé, j'ai préféré la langue universelle au francais
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
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 |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Mon Sep 11, 2006 3:22 am Post subject: |
|
|
Héhéhéhé
Ben, c'est pour faire un peu progresser mon anglais
Mais tu me fais penser à un truc... Et si je faisais un autre fichier pour la langue avec une auto-génération et un tit menu lors de la première install
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 |
|
![](templates/gentoo/images/spacer.gif) |
titoucha Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/10449069954413d790886fc.jpg)
Joined: 21 Jul 2005 Posts: 2374 Location: Genève
|
Posted: Mon Sep 11, 2006 3:35 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
Magic Banana Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/704839447483ac5d977b67.jpg)
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Mon Sep 11, 2006 10:15 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
man in the hill Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/123133140745d9ef8127513.jpg)
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Mon Sep 11, 2006 11:46 am Post subject: |
|
|
titoucha wrote: | En plus le français et la francophonie c'est pas quand même rien ... |
+ 1 ...
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 ...
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 , 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 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 !
@ + _________________ Get Up and Go ! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Mon Sep 11, 2006 4:08 pm Post subject: |
|
|
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
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 :wink:](images/smiles/icon_wink.gif) _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Mon Sep 11, 2006 4:13 pm Post subject: |
|
|
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 , 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
@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
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é
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 Ca commence à devenir massif ce tit script _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Magic Banana Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/704839447483ac5d977b67.jpg)
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
man in the hill Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/123133140745d9ef8127513.jpg)
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Mon Sep 11, 2006 8:44 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Mon Sep 11, 2006 9:22 pm Post subject: |
|
|
Non en fait, mais tu m'as quand meme dit que le ftp veux toujours pas fonctionner chez toi
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 ![Very Happy :D](images/smiles/icon_biggrin.gif) _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
man in the hill Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/123133140745d9ef8127513.jpg)
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Mon Sep 11, 2006 9:53 pm Post subject: |
|
|
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 ...
@ + _________________ Get Up and Go ! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Mon Sep 11, 2006 10:22 pm Post subject: |
|
|
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 ...
@ + |
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 |
|
![](templates/gentoo/images/spacer.gif) |
man in the hill Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/123133140745d9ef8127513.jpg)
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Mon Sep 11, 2006 10:56 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Tue Sep 12, 2006 12:30 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
PabOu Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/3473093244651a9f172aa.jpg)
Joined: 11 Feb 2004 Posts: 1088 Location: Hélécine - Belgium
|
Posted: Tue Sep 12, 2006 12:58 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
titoucha Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/10449069954413d790886fc.jpg)
Joined: 21 Jul 2005 Posts: 2374 Location: Genève
|
Posted: Tue Sep 12, 2006 2:00 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
restecool n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 27 Sep 2004 Posts: 30
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Magic Banana Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/704839447483ac5d977b67.jpg)
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Tue Sep 12, 2006 8:59 am Post subject: |
|
|
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.
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 ! )... 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 |
|
![](templates/gentoo/images/spacer.gif) |
truc Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/128604942846f4cd99d01cb.jpg)
Joined: 25 Jul 2005 Posts: 3199
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Tue Sep 12, 2006 11:42 pm Post subject: |
|
|
Mmm, ca m'a l'air pas mal tout ca
Il va prendre un sale coup le script maintenant
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 c'est mal quoi ... _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
man in the hill Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/123133140745d9ef8127513.jpg)
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Wed Sep 13, 2006 1:33 am Post subject: |
|
|
loopx wrote: | Mmm, ca m'a l'air pas mal tout ca
Il va prendre un sale coup le script maintenant
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 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 ! _________________ Get Up and Go ! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
loopx Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/gallery/Southpark/avatar17.gif)
Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Wed Sep 13, 2006 1:38 am Post subject: |
|
|
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
Je posterai quand se sera plus joli
Et je vais aussi incorporer une autogénération du fichier de langue ![Wink ;)](images/smiles/icon_wink.gif) _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|