View previous topic :: View next topic |
Author |
Message |
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Fri May 05, 2006 2:37 pm Post subject: |
|
|
TGL wrote: | Grosso modo, ce que j'apprécie, c'est que ça se prête bien à une approche incrémentale. On peut faire des trucs déjà utiles et fonctionnels directement sur la ligne de commande, et c'est comme ça que ça commence en général, avec un simple "one-liner". Parfois ça en reste là (j'en fais juste un alias), et parfois ça grossit parceque je l'améliore petit à petit, et alors, pour l'éditer plus facilement, je le colle dans un fichier et je l'indente. Voilà, un script crade est né. |
Pas si crade que ça, j'ai d'ailleurs repris voilà déjà un bon moment une de tes créations, que j'ai un peu modifié pour prendre en compte plusieurs arguments : la fonction bash usedesc(). Sans vraiment le vouloir, j'ai fait un peu de récursivité en bash .
Code: | usedesc () {
local portdir=$(sed -n 's:^PORTDIR=::p' /etc/make.conf);
[ -z "$portdir" ] && portdir=/usr/portage;
[[ ${#} -ge 1 ]] && printf "${__GREEN} ==>> ${__YELLOW}${1}${__GREEN} <<== \n" %s && \
grep -h "$1.*\ -\ " ${portdir}/profiles/use.* | \
gawk -F' - ' '{ printf (" \033[32;01m* \033[31;01m%s \033[0;01m- \033[36;01m%s\033[0;0m \n", $1, $2) }'
if [ ${#} -gt 1 ] ; then
shift
echo
usedesc ${@}
fi
} |
_________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
bibi.skuk Guru
Joined: 01 Aug 2005 Posts: 425
|
Posted: Fri May 05, 2006 11:16 pm Post subject: |
|
|
tiens, 2 lignes de python, a peine testées, en fait, je me suis demandé lors d'une maj si je pouvais avoir la liste des paquets restants a emerger... voila ce qui en est sorti, c'est pas genial, dans le sens ou je ne suis pas sur que ca marche a tous les coups, l'affichage est tres moche (y'en a pour ainsi dire pas du tout), mais bon, si ca peut servir a quelqu'un. j'essayerait de le modifier un peu histoire d'en faire un script utilisable.
mergelist.py: |
#!/usr/bin/python
import portage
mergelist = portage.mtimedb["resume"]["mergelist"][:]
for x in mergelist: print x[2]
|
Oui, je l'avait dit que c'etait basique... (mais ca m'a donné envi de regarder un peu plus attentivement comment fonctionne portage ) |
|
Back to top |
|
|
Trevoke Advocate
Joined: 04 Sep 2004 Posts: 4099 Location: NY, NY
|
Posted: Wed May 10, 2006 4:25 pm Post subject: |
|
|
On en est a presque un mois, je dirais que ce thread est epuise, non? _________________ Votre moment detente
What is the nature of conflict? |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Thu May 11, 2006 7:49 am Post subject: |
|
|
Trevoke wrote: | On en est a presque un mois, je dirais que ce thread est epuise, non? | On est en pleine discussion à ce propos ...
Le prochain devrait arriver incessamment. _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
Darkael Veteran
Joined: 10 Aug 2004 Posts: 1321 Location: France
|
Posted: Thu May 11, 2006 9:33 am Post subject: |
|
|
yoyo wrote: | Trevoke wrote: | On en est a presque un mois, je dirais que ce thread est epuise, non? | On est en pleine discussion à ce propos ...
Le prochain devrait arriver incessamment. |
Pourquoi ne pas juste les faire dans cet ordre?
C'est pas comme si certains sujets étaient meilleurs que d'autres |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Thu May 11, 2006 9:50 am Post subject: |
|
|
Disons, pour faire simple, que nous essayons de privilégier les sujets "à fort potentiel". Mais c'est assez subjectif, c'est vrai ! _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
Trevoke Advocate
Joined: 04 Sep 2004 Posts: 4099 Location: NY, NY
|
Posted: Thu May 11, 2006 12:33 pm Post subject: |
|
|
J'veux pas troller, hein, mais "A mort louis croix veh baton".
Comment ca, je sais pas faire autre chose que troller? Non mais dis donc. Demasque!
Serieusement, allez, je veux apprendre un peu plus moi! _________________ Votre moment detente
What is the nature of conflict? |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Fri May 12, 2006 7:44 am Post subject: |
|
|
Bonjour,
alors pour moi c'est la première fois que je me mets à ces petits scipts qui rendent la vie plus facile. J'ai donc récupérer un premier squelette d'un script bash pour de la sauvegarde de données. Je fais donc un tar, puis un tar --diff ou compare (c'est là que j'aimerais un coup de main, en effet je ne sais pas récuper les alertes qui en découlent afin de stopper l'opération de transfert qui est censée suivre) puis je transfert avec smbclient :
Code: |
#!/bin/bash
# Crée une sauvegarde compressée de tous les répertoires spécifiés et stocke
# le fichier en résultant dans un répertoire de votre choix.
#SAUVE_REP="$HOME /etc /var"
SAUVE_REP_PERSO="/home/mickael/Articles /home/mickael/Presentation /home/mickael/Publications_Personnelles"
#NOM_SAUVEGARDE=`date '+%b%d%Y'`
NOM_SAUVEGARDE="Backup.tar.gz"
SAUVEGARDE_DEST_REP="/home/mickael/Gentoo/Backup"
# Décommentez la ligne suivante pour obtenir une sauvegarde GZippée,
# commentez pour une sauvegarde BZippée
echo "Compression des dossiers avant transfert"
tar czfP $SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE $SAUVE_REP_PERSO
echo "Comparaison de l'archive avec les répertoires courants..."
#tar --diff --verbose --file=$SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE $SAUVE_REP_PERSO
tar --diff --file=$SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE $SAUVE_REP_PERSO /home/mickael/Gimp/
(ici j'ai rajouter un répertoire que je ne sauvegarde pas afin d'avoir une comparaison avec erreur!
# Nous créons une archive BZippée...
# Commentez la ligne suivante pour une archive GZippée,
# décommentez pour une archive BZippée
#tar cjf $SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE.tar.bz2 $SAUVE_REP
# Connexion avec LAB-SERVEUR
echo "Sauvegarde en cours sur le serveur..."
echo "Vous pouvez prendre un café..."
smbclient "//X.X.X.X/Sauvegardes" -U xxx%xxxx -D xxxxx/backup -c 'put /home/mickael/Gentoo/Backup/Backup.tar.gz Backup.tar.gz'
|
voili voilà, c'est pas encore dans cron, mais le petit grandi.
PS : j'oubliais de vous montrer une alerte :
Quote: | ./Gentoo/Backup/save.sh
Compression des dossiers avant transfert
Comparaison de l'archive avec les répertoires courants...
tar: /home/mickael/Gimp: ne peut être retrouvé dans l'archive.
tar: Statut d'erreur reporté d'erreurs précédentes.
Sauvegarde en cours sur le serveur...
Vous pouvez prendre un café...
Domain=[LAB-SERVEUR] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
putting file /home/mickael/Gentoo/Backup/Backup.tar.gz as \xxxx\backup\Backup.tar.gz (888.2 kb/s) (average 888.2 kb/s)
Sauvegarde Terminée !
|
PSS : Pourquoi ce langage : et bien je sais pas, la première fois c'était du bash également je n'ai fait que recopier un script pour ma carte pcmcia. De plus, les exemples trouvés sur le net pendant mes recherches étaient également en bash, et je le trouve assez simple ou plutôt il me semble accessible pour moi. _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Fri May 12, 2006 1:37 pm Post subject: |
|
|
Juste une petite évolution de script pour sauvegarde.
Afin d'avoir une archive tar datée j' ai donc modifier ceci : Code: | NOM_SAUVEGARDE=`date '+%b.%d.%Y'.tar.gz` |
Jusque là vous me direz rien de bien méchant, certe, mais le problème c'est que smbclient lui il aime bien les noms de fichiers soient correctement arrêtés, en gros on peut pas mettre $NOM_SAUVEGARDE à la fin du "put" (put est une option de smbclient). Donc l'astuce est d'utiliser les mask et mput ce qui donne :
Code: |
cd $SAUVEGARDE_DEST_REP
# Connexion avec LAB-SERVEUR
echo "Sauvegarde en cours sur le serveur..."
echo "Vous pouvez prendre un café..."
smbclient "//x.x.x.x/xxxxxx" -U x%xxxxx -D xxxx/backup -c "mask /home/mickael/Gentoo/Backup/TEST/*.2006.tar.gz ; mput *.2006.tar.gz"
|
Voui, vous me dite que si vendredi prochain je fais une sauvegarde, il va de nouveau me transférer celui d'aujourd'hui, mais rien ne nous empêche de déplacer ce dernier avec un mv!. _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
AigleFR n00b
Joined: 27 Nov 2005 Posts: 25
|
Posted: Tue May 16, 2006 8:22 pm Post subject: |
|
|
Code: |
### A savoir: ce script se connecte automatiquement au reseau wifi detecte (s'il est configure).
### Le script cherche d'abord dans le fichier des reseaux prioritaires (on y classe les réseaux par nom ESSID et par ordre de priorité)
### Si il ne trouve aucun reseau prioritaire, il cherche dans le dossier qui contient tous les reseaux configurer, et là il se connecte au premier qu'il trouve.
### Dans le dossier des fichiers de configurations de tous les reseaux auxquels on peut se connecter, il faut mettre comme nom de fichier,
### celui de son ESSID (ex: si mon ESSID est Wanadoo_1234, le fichier s'appelera Wanadoo_1234)
### Il peut etre pratique de mettre un lien dans /sbin vers le répertoire ou se trouve le script
### (ex: dans /sbin un lien appelle wifi qui point vers /home/tux/script/script_connection_wifi)
### Ainsi, il suffira de lancer par exemple la commande wifi pour lancer le script.
#!/bin/bash
######## ICI se trouve la configuration du script ########
connectdefaut="/home/utilisateur/script/wifi/defaut.conf" #fichier de config par defaut
connectprio="/home/utilisateur/script/wifi/prio.conf" #fichier contenant les ESSID prioritaires
dossres="/home/utilisateur/script/wifi/config/*" #dossier ou se trouve les fichiers de config
dossres2="/home/utilisateur/script/wifi/config/" #dossier ou se trouve les fichiers de config
ipdef="192.168.1.51" #adresse ip par defaut si dhcpcd echou ou si on prefere utilise une ip statique pour se connecter
ippass="192.168.1.1" #adresse ip de la passerelle (exemple 192.168.1.1 pour une livebox)
inter="eth1" #interface reseau wifi
driver="ipw2200" #driver de la carte wifi
wifires="/home/utilisateur/script/wifi/wifires" #pour mettre les reseaux trouves
wifirestmp="/home/utilisateur/script/wifi/wifirestmp" #pour faire une petite transformation
wifirestmp2="/home/utilisateur/script/wifi/wifirestmp2" #pour faire une petite transformation
############################################################
##### Commande a lancer en tout premier #####
echo " "
#############################################
#############################################
test() {
if lsmod | grep "$driver" > /dev/null
then
echo " * Driver OK"
else
echo " * Driver $driver non trouvé"
echo " * Lancement du driver"
if modprobe "$driver"
then
echo " * Driver $driver lance"
sleep 2
else
echo " * Impossible de lancer le driver $driver"
exit
fi
fi
scanres=$(iwlist "$inter" scanning | grep ESSID)
stop-wpa > /dev/null
stop-dhcpcd > /dev/null
}
#############################################
scan() {
echo " * Detection des reseaux actifs"
sleep 2
if [[ ! $scanres ]]
then
echo " * Aucun reseau detecte"
exit
else
echo > "$wifires"
echo > "$wifirestmp2"
echo "${scanres}" > "$wifirestmp"
for anter in $(cat "$wifirestmp")
do
echo "$anter" >> "$wifirestmp2"
echo $(cut --delimiter='"' -f2 "$wifirestmp2") >> "$wifires"
done
echo -n " * Reseaux detectes : "
echo $(cat "$wifires")
fi
}
#############################################
auto() {
echo " * Connection au reseau"
for wifitrouv in $(cat "$wifires")
do
for wifirechdef in $(cat "$connectprio") #recherche d'abord une connection dans le fichier de config prioritaire
do
if [ "${wifirechdef##*/}" = "$wifitrouv" ]
then
config="$dossres2""$wifirechdef"
connect
fi
done
echo " * Aucun reseaux prioritaire trouves"
for wifirech in $dossres #recherche ensuite dans le dossier des fichiers de config
do
if [ "${wifirech##*/}" = "$wifitrouv" ]
then
config="$wifirech"
connect
exit
fi
done
done
echo " "
echo " * ERREUR: Aucun fichier de configuration ne correspond au reseau trouve"
exit
}
#############################################
connect() {
echo " * Debut de la connection"
connect-wpa
connect-dhcp
}
############################################
connect-wpa() {
echo " * Connection au reseau : "${config##*/}" "
echo " * Lancement de wpa_supplicant ... "
if [[ $(wpa_supplicant -Dwext -ieth1 -c"$config" -B -w) ]]
then
echo " "
echo " * ERREUR: Impossible de lancer wpa_supplicant"
exit
fi
}
#############################################
connect-dhcp() {
##Si on ne veut pas utiliser une ip automatique avec dhcpcd, il faut commenter cette partie, ainsi que le "fi" indiqué
##Ensuite il faut commenter tous les stop-dhcpcd, sauf la fonction stop-dhcpcd()
###############################################################################
echo " * Lancement de dhcpcd ... " #
if dhcpcd "$inter" #
then #
echo " * Connection termine" #
sleep 1 #
clear #
exit #
else #
echo " " #
echo " * ERREUR: Impossible de lancer dhcpcd" #
echo " " #
###############################################################################
echo " * Connection avec une ip statique : $ipdef "
if [[ $(ifconfig "$inter" "$ipdef") ]]
then
echo " * ERREUR: Connection avec une ip statique impossible"
exit
else
echo " * Connection avec une ip statique etablie"
fi
if [[ $(route add default gw "$ippass") ]]
then
echo " * ERREUR: Erreur lors de la specification de la route"
exit
else
echo " * Etablissement de la route par defaut"
echo " * Connection termine"
sleep 2
clear
exit
fi
fi ## Commenter ici aussi pour ne pas utiliser dhcpcd
}
#############################################
stop-dhcpcd() {
if [[ $(start-stop-daemon --stop --name dhcpcd) ]]
then
echo " * Le service dhcpcd est deja arrete"
else
echo " * Arret du service dhcpcd"
fi
}
#############################################
stop-wpa() {
if [[ $(start-stop-daemon --stop --name wpa_supplicant) ]]
then
echo " * Le service wpa_supplicant est deja arrete"
else
echo " * Arret du service wpa_supplicant"
fi
}
#############################################
#############################################
case $1 in
start) #pour se connecter a la config de defaut
test
config="$connectdefaut"
connect
;;
stop)
stop-wpa
stop-dhcpcd
;;
auto)
test
scan
auto
;;
restart)
stop-wpa
stop-dhcpcd
test
scan
auto
;;
force) #pour specifier le chemin et le nom du fichier de config (ex: wifi force /home/tux/script/config/Wanadoo_1234 )
test
config="$2"
connect
;;
scan) #pour detecter seulement les reseaux sans s'y connecter
test
scan
exit
;;
*)
if [ ! $1 ] # Si aucune option, on lance auto par defaut
then
test
scan
auto
fi
echo " "
echo " * ERREUR : Commande inconnue"
exit
;;
esac
|
En gros, c'est un script qui permet de se connecter automatiquement avec wpa_supplicant sur réseau wifi qui est détecté (à condition que se réseau soit déjà configurer).
C'est pratique quand on doit se connecter sur différent réseaux wifi à différent endroit.
Je pense q'on peut facilement améliorer le script et aussi rajouter des fonctions.
PS: Désolé pour la taille du script ... et j'espère qu'il sera utile a quelqu'un. |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon May 22, 2006 7:55 am Post subject: |
|
|
Bonjour,
toujours dans la continuité de mon petit script bash pour faire de la sauvegarde, j'ai un petit problème avec tar et la redirection des erreurs dans un fichier intitulé erreurs.log :
Code: | echo "Comparaison de l'archive avec les répertoires courants..."
tar --diff --file=$SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE $SAUVE_REP_PERSO $REPERTOIR_TESTING > $ERREURS_LOG |
Mon problème est qu'il ne va jamais écrire dans ce fichier représenté ici par la variable $ERREURS_LOG. Afin d'avoir des erreurs, j'ai rajouté un répertoire/fichier définit par $REPERTOIR_TESTING. Dans une console, il me dit bien que dans l'archive tar, il n'y a pas les fichiers qui appatiennent à $REPERTOIR_TESTING, mais le fichier erreurs.log lui est vide, désespérément vide...
Elle est où la boulette s'il vous plaît? _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
Oupsman Veteran
Joined: 19 Jul 2004 Posts: 1042
|
Posted: Mon May 22, 2006 8:10 am Post subject: |
|
|
Ta redirection n'est pas bonne, tu ne rediriges que la sortie standard, pas la sortie d'erreur.
Essaye ceci :
Code: |
echo "Comparaison de l'archive avec les répertoires courants..."
tar --diff --file=$SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE $SAUVE_REP_PERSO $REPERTOIR_TESTING 2> $ERREURS_LOG
|
Perso, dans mes scripts je fais :
Code: |
commande > fichier.log 2>&1
|
pour rediriger la sortie d'erreur vers la sortie standard _________________ --
L'idéal de nouveauté semble avoir remplacé l'idéal de progrès. C'est bien triste.
----
Unix philosophy: "Do one thing and do it well."
systemd: "Try to do everything and do it wrong." |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon May 22, 2006 8:15 am Post subject: |
|
|
Merci Oupsman, je test de suite et je me renseignerai par rapport à ta technique des 2>&1.
EDIT : Merci, cela fonctionne maintenant. Alors jevous montre la toute petite évolution de mon script :
Code: |
#!/bin/bash
clear
SAUVE_REP_PERSO="/home/mickael/Articles /home/mickael/Presentation /home/mickael/Publications_Personnelles"
NOM_SAUVEGARDE=`date '+%b.%d.%Y'.tar.gz`
SAUVEGARDE_DEST_REP="/home/mickael/Gentoo/Backup/TEST"
ERREURS_LOG="/home/mickael/Gentoo/Backup/TEST/erreurs.log"
REPERTOIR_TESTING="/home/mickael/Conneries"
> $ERREURS_LOG
# Décommentez la ligne suivante pour obtenir une sauvegarde GZippée,
echo "Compression des dossiers avant transfert"
tar czfP $SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE $SAUVE_REP_PERSO
echo "Comparaison de l'archive avec les répertoires courants..."
tar --diff --file=$SAUVEGARDE_DEST_REP/$NOM_SAUVEGARDE $SAUVE_REP_PERSO $REPERTOIR_TESTING 2> $ERREURS_LOG
if test -s '/home/mickael/Gentoo/Backup/TEST/erreurs.log';
then
echo " $(color ltyellow red)RAPPORT DE L'OPÉRATION$(color off)"
echo "$(color ltyellow red)!ERREUR/ Les fichiers suivants sont absents de l'archive :$(color off)"
cat < $ERREURS_LOG
exit
else
echo "********************************"
echo "* $(color ltgreen black)RAPPORT DE L'OPÉRATION$(color off)*"
echo "* $(color ltgreen black)Archive réussie$(color off) *"
echo "********************************"
# Déplacement dans le fichier de sauvegarde
cd /home/mickael/Gentoo/Backup/TEST/
# Connexion avec LAB-SERVEUR
echo "Sauvegarde en cours sur le serveur..."
echo "Vous pouvez prendre un café..."
smbclient "//xxxxxx/Doctorants" -U xxxxx%xxxxx -D mparis/backup -c "mask /home/mickael/Gentoo/Backup/TEST/*.2006.tar.gz ; mput *.2006.tar.gz"
# Une petite phrase.
echo "Sauvegarde Terminée !"
fi
# On vire la sauvegarde du PC perso :
rm $NOM_SAUVEGARDE
|
EDIT 2 : Ta technique Oupsman, est plus intéressante car en plus d'avoir que les erreurs j'ai également la sortie standard. Ce 2>&1 concatène la sortie d'erreurs sur la sortie standard, mais je crois que dans mon cas, vu la boucle qui suit ce tar --diff, je vais conserver que la redirection de la sortie d'erreurs. Merci encore pour l'info. _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
Oupsman Veteran
Joined: 19 Jul 2004 Posts: 1042
|
Posted: Mon May 22, 2006 8:35 am Post subject: |
|
|
ce lien peut être utile : http://abs.traduc.org/abs-3.7-fr/io-redirection.html _________________ --
L'idéal de nouveauté semble avoir remplacé l'idéal de progrès. C'est bien triste.
----
Unix philosophy: "Do one thing and do it well."
systemd: "Try to do everything and do it wrong." |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon May 22, 2006 9:16 am Post subject: |
|
|
J'ai une question d'ordre générale, qui je pense intéresserait beucoup de débutants lorsqu'ils se lancent dans l'écriture de petits scripts. Comment fait-on, (ou peut-être Où trouver cette info) pour dire au script de ce lancer que si une carte pcmcia est présente par exemple, et par corrolaire de s'arrêter si elle ne s'y trouve plus? Vous voyez ce que je veux dire?
En fait ma question est double, mais ce que je ne sais pas c'est où trouver l'info qui me dira que la carte pcmcia est bien présente.
Merci.
EDIT : Je pensais à la commande tail, mais le problème c'est que mon fichier dmesg ou message n' a jamais été éffacé donc il contient beaucoup de lignes, donc le script peut être dupé par une info périmée...oui/non/peut-être. _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Last edited by Mickael on Mon May 22, 2006 11:42 am; edited 1 time in total |
|
Back to top |
|
|
kaworu Guru
Joined: 07 Dec 2005 Posts: 450
|
Posted: Mon May 22, 2006 11:32 am Post subject: |
|
|
au risque de dire une erreur :
ça crée un événement acpi d'insérer ou enlever une carte PCMCIA non?
Si c'est le cas, c'est très simple ^____^
mes 2 cents.. _________________ Macbook
Core2Duo @ 2.0GHz - 1Go RAM - HD 80Go - Intel GMA 945
Gentoo GNU/Linux
~amd64 - 2.6.24-gentoo-r2 - Fluxbox || (KDE && Compiz-Fusion) |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon May 22, 2006 11:38 am Post subject: |
|
|
kaworu wrote: | au risque de dire une erreur :
ça crée un événement acpi d'insérer ou enlever une carte PCMCIA non?
|
Je le vois comme cela, et si je dis pas de bêtises, on retrouve cette info dans le fichier dmesg/messages (je sais plus ) mais cette dernière info peut être suivie au cours d'une journée par plusieurs infos, sans compter que ces deux fichiers n'ont jamais été néttoyés/vidés!!!! donc le script ou la commande appropriée peut être bernée par un vieux log?? _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
Oupsman Veteran
Joined: 19 Jul 2004 Posts: 1042
|
Posted: Mon May 22, 2006 11:46 am Post subject: |
|
|
Question con : et en passant par le trio dbus/hal/ivman ? _________________ --
L'idéal de nouveauté semble avoir remplacé l'idéal de progrès. C'est bien triste.
----
Unix philosophy: "Do one thing and do it well."
systemd: "Try to do everything and do it wrong." |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon May 22, 2006 11:47 am Post subject: |
|
|
Oupsman wrote: | Question con : et en passant par le trio dbus/hal/ivman ? |
OK mais comment?????? em même temps mon trio c'est : dbus/hal/gvm _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
Oupsman Veteran
Joined: 19 Jul 2004 Posts: 1042
|
Posted: Mon May 22, 2006 11:58 am Post subject: |
|
|
MickTux wrote: | Oupsman wrote: | Question con : et en passant par le trio dbus/hal/ivman ? |
OK mais comment?????? em même temps mon trio c'est : dbus/hal/gvm |
Après réflexions, je ne sias pas si mon trio est le bon _________________ --
L'idéal de nouveauté semble avoir remplacé l'idéal de progrès. C'est bien triste.
----
Unix philosophy: "Do one thing and do it well."
systemd: "Try to do everything and do it wrong." |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon May 22, 2006 12:01 pm Post subject: |
|
|
Pourquoi? il est bon ton trio, ivman gvm et autres c'est une question de choix, d'indépendance et je ne sais quoi. _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Mon May 22, 2006 4:32 pm Post subject: |
|
|
Bon, alors je viens de lire quelques infos (voir ici) sur la toile et je dirais que udev suffirait à notre bonheur :
1 : insertion du périférique, sans rien toucher à udev, sa config etc...
2 : vérification dans /var/log/syslog du ou des périfériques créés par udev.
3 : c'est udevinfo qui va nous fournir le chemin complet dans /sys dans lequel ontrouvera toutes les infos relatives à notre périférique.
4 : Un extrait de dmesg avec l'insertion de ma carte, @Kaworu : on a bien l'événement acpi mais est-il écrit ailleurs :
Quote: | pccard: card ejected from slot 0
ndiswrapper: device wlan0 removed
ACPI: PCI interrupt for device 0000:03:00.0 disabled
pccard: CardBus card inserted into slot 0
ndiswrapper: driver lsbcmnds (The Linksys Group, Inc.,07/17/2003, 3.30.15.0) loaded
PCI: Enabling device 0000:03:00.0 (0000 -> 0002)
ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 177
PCI: Setting latency timer of device 0000:03:00.0 to 64
ndiswrapper: using irq 177
wlan0: vendor: ''
wlan0: ndiswrapper ethernet device 00:12:17:b3:6e:6a using driver lsbcmnds, 14E4:4320.5.conf
wlan0: encryption modes supported: WEP; TKIP with WPA; AES/CCMP with WPA
|
5 : Je crois bien que udev suffira à notre bonheur si pcmciautils à été compilé pour communiqué avec udev. Si j'ai bien compris la documentation, par défaut c'est udev qui se chage du boulot.
6 : Une solution : utilisée la réponse de la commande pccardctl status : exemple sans carte insérée :
_________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Last edited by Mickael on Tue May 23, 2006 3:10 pm; edited 2 times in total |
|
Back to top |
|
|
olivier elmekki n00b
Joined: 29 Jan 2006 Posts: 55
|
Posted: Tue May 23, 2006 1:16 pm Post subject: |
|
|
Bonjour,
ma petite contributions à ce thread qui mérite d'avoie la vie longue...
Il s'agit d'un script permettant de trier les fichiers mp3 d'un répertoire suivant l'une de ses balises, en les plaçant dans un répertoire du nom de la valeur de la balise choisie.
J'ai choisi ruby car c'est mon langage usuel. C'est vrai que ces 'quick-hacks' ne permettent pas trop d'utiliser le modèle orienté-objet de ruby, mais comme un autre de ses atouts est la concision et qu'il permet tout de même de faire de la programmation impérative, je le préfère généralement à bash (qui reste pourtant, selon moi, un modèle de langage intégré à un systême).
A noter que pour faire tourner ce script, il faut bien sûr l'interpréteur ruby, mais aussi le module mp3info (dev-ruby/ruby-mp3info).
Code: |
#!/usr/bin/env ruby
require 'mp3info'
require 'fileutils'
case ARGV[0]
when 'artist', 'genre', 'comments', 'title', 'album', 'tracknum'
Type_tri = ARGV[0]
else
puts "\
synopsis: tri_mp3.rb type_tri [chemin]
où type_ tri peut être, au choix:
artist, genre, comments, title, album, tracknum
tri_mp3 permet de classer des fichiers musicaux en les placant dans un répertoire suivant un critère commun que vous
aurez choisi, sur la base d'une balise mp3.
Si 'chemin' n'est pas spécifié, tri_mp3.rb sera lancé dans le répertoire courant."
end
chemin = ARGV[1]
if chemin != nil and File.directory?( chemin )
chemin += '/' if chemin[/\/$/] == nil
repertoire = Dir.new( chemin )
else
repertoire = Dir.new( './' )
end
str_rep = repertoire.path
repertoire.each { |fichier|
if File.extname( fichier ) == '.mp3'
f_mp3 = Mp3Info.new( fichier )
balise = f_mp3.tag[ Type_tri ]
balise = f_mp3.tag2['TCON'] if Type_tri == 'genre' and balise == nil
balise = 'inconnu' if balise == nil
Dir.mkdir( str_rep + balise ) if not File.exist?( str_rep + balise )
FileUtils.mv( str_rep + fichier, str_rep + balise + '/' + fichier )
end
}
|
|
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Thu Dec 14, 2006 10:48 am Post subject: |
|
|
J'ai une petite question pour les utilisateurs de sed. JE suis en train de faire mumuse, avec sed suite à ce poste, mais également à une demande sur la section portage du forum. Un utilisateur y demande si il était possible de gérer les flags USE par catégories dans etc-portage.package.use avec une écriture particulière, la réponse est pour le moment non. Mais il est possible de faire un petit script, genre on commence par retrouver dans une catégorie tous les ebuilds qui ont la variable USE doc, puis avec sed, on récupère que le début de la sortie de la première commande que l'on ira écrire dans etc/portage.use.
Commande 1 :
trouver dans /usr/portage/dev-ruby, tous les ebuilds qui ont la variable doc :
Code: | find ./dev-ruby/ -name '*.ebuild' -exec grep -ni 'IUSE="*doc*"' {} /dev/null ';'
./dev-ruby/mod_ruby/mod_ruby-1.2.4-r2.ebuild:13:IUSE="doc"
./dev-ruby/mod_ruby/mod_ruby-1.2.4-r1.ebuild:13:IUSE="doc"
./dev-ruby/fxruby/fxruby-1.2.6.ebuild:16:IUSE="doc"
|
Ok, si on redirige tout ceci dans un fichier test, placé dans home, on peut alors faire mumuse avec sed. Mais mon problème est que pour le moment je n'arrive pas à récupérer tout ce qui se trouve entre ./dev-ruby/mod_ruby/ et virer tout ce qui suit, par exemple. pour ensuite aller écrire ceci dans etc/portage/package.use...
Comment fait on svp?
Commande sed 2 :
celle-ce ne va pas :
Code: | sed -n -e 's/ *[/]//p' /home/mickael/test
mod_rubymod_ruby-1.2.4-r2.ebuild:13:IUSE="doc"
mod_rubymod_ruby-1.2.4-r1.ebuild:13:IUSE="doc"
fxrubyfxruby-1.2.6.ebuild:16:IUSE="doc"
|
Il faudrait que je remplace l'option p par g, mais les / m'emmerde... _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
geekounet Bodhisattva
Joined: 11 Oct 2004 Posts: 3772
|
Posted: Thu Dec 14, 2006 10:52 am Post subject: |
|
|
Ça ne marchera pas avec tous les ebuilds, parce que certains ont leurs USE depuis les eclass dont ils héritent. |
|
Back to top |
|
|
|
|
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
|
|