Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users French
  • Search

[SCRIPT] Sauvegarder vos fichiers simplement et rapidement

Forum dédié aux utilisateurs francophones de Gentoo. Retrouvez aussi Gentoo Linux en français sur le wiki!

Moderators: xaviermiller, El_Goretto

Post Reply
  • Print view
Advanced search
33 posts
  • 1
  • 2
  • Next
Author
Message
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

[SCRIPT] Sauvegarder vos fichiers simplement et rapidement

  • Quote

Post by loopx » Sun Sep 03, 2006 11:57 pm

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: Select all

#!/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 :)
Last edited by loopx on Thu Dec 13, 2007 10:40 pm, edited 13 times in total.
Mon MediaWiki perso : http://pix-mania.dyndns.org
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Fri Sep 08, 2006 12:28 am

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
Last edited by loopx on Wed Sep 13, 2006 4:39 pm, edited 2 times in total.
Mon MediaWiki perso : http://pix-mania.dyndns.org
Top
titoucha
Advocate
Advocate
User avatar
Posts: 2374
Joined: Thu Jul 21, 2005 5:08 am
Location: Genève

Re: [SCRIPT] Sauvegarder vos configs nux facilement et via f

  • Quote

Post by titoucha » Mon Sep 11, 2006 1:32 am

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.
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Mon Sep 11, 2006 3:22 am

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
Top
titoucha
Advocate
Advocate
User avatar
Posts: 2374
Joined: Thu Jul 21, 2005 5:08 am
Location: Genève

  • Quote

Post by titoucha » Mon Sep 11, 2006 3:35 am

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
Top
Magic Banana
Veteran
Veteran
User avatar
Posts: 1913
Joined: Tue Dec 13, 2005 7:15 pm
Location: Belo Horizonte, Minas Gerais, Brasil
Contact:
Contact Magic Banana
Website

  • Quote

Post by Magic Banana » Mon Sep 11, 2006 10:15 am

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.
Top
man in the hill
Veteran
Veteran
User avatar
Posts: 1552
Joined: Thu Dec 15, 2005 6:25 pm
Location: Madinina

  • Quote

Post by man in the hill » Mon Sep 11, 2006 11:46 am

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 http://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 !
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Mon Sep 11, 2006 4:08 pm

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
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Mon Sep 11, 2006 4:13 pm

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
Top
Magic Banana
Veteran
Veteran
User avatar
Posts: 1913
Joined: Tue Dec 13, 2005 7:15 pm
Location: Belo Horizonte, Minas Gerais, Brasil
Contact:
Contact Magic Banana
Website

  • Quote

Post by Magic Banana » Mon Sep 11, 2006 5:08 pm

Voilà ce que tu cherches : http://personal.riverusers.com/~thegren ... .0.tar.bz2

Et puis ça te fera encore un peu travailler ton anglais. :wink:
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Mon Sep 11, 2006 6:48 pm

Oh, merci beaucoup :)
Mon MediaWiki perso : http://pix-mania.dyndns.org
Top
man in the hill
Veteran
Veteran
User avatar
Posts: 1552
Joined: Thu Dec 15, 2005 6:25 pm
Location: Madinina

  • Quote

Post by man in the hill » Mon Sep 11, 2006 8:44 pm

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: Select all

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 ... ruby04&p=1

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


@ +
Get Up and Go !
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Mon Sep 11, 2006 9:22 pm

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
Top
man in the hill
Veteran
Veteran
User avatar
Posts: 1552
Joined: Thu Dec 15, 2005 6:25 pm
Location: Madinina

  • Quote

Post by man in the hill » Mon Sep 11, 2006 9:53 pm

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 !
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Mon Sep 11, 2006 10:22 pm

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
Top
man in the hill
Veteran
Veteran
User avatar
Posts: 1552
Joined: Thu Dec 15, 2005 6:25 pm
Location: Madinina

  • Quote

Post by man in the hill » Mon Sep 11, 2006 10:56 pm

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

Code: Select all

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: Select all

200 PORT command successful. Consider using PASV. = mode passif
@ +
Get Up and Go !
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Tue Sep 12, 2006 12:30 am

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
Top
PabOu
Veteran
Veteran
User avatar
Posts: 1088
Joined: Wed Feb 11, 2004 9:45 am
Location: Namur - Belgium
Contact:
Contact PabOu
Website

  • Quote

Post by PabOu » Tue Sep 12, 2006 12:58 am

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 !
Top
titoucha
Advocate
Advocate
User avatar
Posts: 2374
Joined: Thu Jul 21, 2005 5:08 am
Location: Genève

  • Quote

Post by titoucha » Tue Sep 12, 2006 2:00 am

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]
Top
restecool
n00b
n00b
Posts: 30
Joined: Mon Sep 27, 2004 7:10 pm

  • Quote

Post by restecool » Tue Sep 12, 2006 7:18 am

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

note:
vraiment cool ce script
Top
Magic Banana
Veteran
Veteran
User avatar
Posts: 1913
Joined: Tue Dec 13, 2005 7:15 pm
Location: Belo Horizonte, Minas Gerais, Brasil
Contact:
Contact Magic Banana
Website

  • Quote

Post by Magic Banana » Tue Sep 12, 2006 8:59 am

Code: Select all

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...
Top
truc
Advocate
Advocate
User avatar
Posts: 3199
Joined: Mon Jul 25, 2005 9:24 am

  • Quote

Post by truc » Tue Sep 12, 2006 1:46 pm

Code: Select all

sed 'k!d' file
pour afficher la k-ième ligne ;)
The End of the Internet!
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Tue Sep 12, 2006 11:42 pm

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
Top
man in the hill
Veteran
Veteran
User avatar
Posts: 1552
Joined: Thu Dec 15, 2005 6:25 pm
Location: Madinina

  • Quote

Post by man in the hill » Wed Sep 13, 2006 1:33 am

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 !
Top
loopx
Advocate
Advocate
User avatar
Posts: 2787
Joined: Fri Apr 01, 2005 7:42 pm
Location: Belgium / Liège
Contact:
Contact loopx
Website

  • Quote

Post by loopx » Wed Sep 13, 2006 1:38 am

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
Top
Post Reply
  • Print view

33 posts
  • 1
  • 2
  • Next

Return to “French”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Authors
Gentoo is a trademark of the Gentoo Foundation, Inc. and of Förderverein Gentoo e.V.
The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-4.0 license.
The Gentoo Name and Logo Usage Guidelines apply.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy