Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/02/2011, à 00:14

uboops

Test de vérification de compatibilité en 64 bits - bash

Bonsoir,
J'aimerais pouvoir simplifier (en une seule ligne de commande), toutes ces informations essentielles, relatives à la version d'Ubuntu et à la plateforme.
Des idées?

echo; if [ `cat /proc/cpuinfo | grep "flags" | head -n1 | grep "lm" | wc -l` -gt 0 ] ; then echo `grep DESCRIPTION /etc/lsb-release | cut -d\" -f 2`-`grep CODENAME /etc/lsb-release | cut -d\= -f 2`-`getconf LONG_BIT`bits `uname -r` ***plateforme:`uname -m` compatible 64 bits*** ; else echo `grep DESCRIPTION /etc/lsb-release | cut -d\" -f 2`-`grep CODENAME /etc/lsb-release | cut -d\= -f 2`-`getconf LONG_BIT`bits `uname -r` ***plateforme:`uname -m` non compatible 64 bits***; fi;

Ce qui affiche sur une ligne dans le terminal:

Ubuntu 10.04.2 LTS-lucid-32bits 2.6.32-28-generic-pae ***plateforme:i686 compatible 64 bits***

Dernière modification par uboops (Le 05/02/2011, à 14:56)


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#2 Le 05/02/2011, à 06:39

ehmicky

Re : Test de vérification de compatibilité en 64 bits - bash

Ton then et ton else ont le même contenu ?
Déjà le test peut être raccourci en :

if [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]]

Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#3 Le 05/02/2011, à 14:57

uboops

Re : Test de vérification de compatibilité en 64 bits - bash

Ok, merci, j'ai corrigé le contenu, car l'un doit afficher : "compatible 64 bits", et l'autre "of course" : "non compatible 64 bits"

echo; if [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]]; then echo `grep DESCRIPTION /etc/lsb-release | cut -d\" -f 2`-`grep CODENAME /etc/lsb-release | cut -d\= -f 2`-`getconf LONG_BIT`bits `uname -r` ***plateforme:`uname -m` Mem:`free -m | grep Mem | awk -F' ' '{print $2}'`MB compatible 64 bits*** ; else echo `grep DESCRIPTION /etc/lsb-release | cut -d\" -f 2`-`grep CODENAME /etc/lsb-release | cut -d\= -f 2`-`getconf LONG_BIT`bits `uname -r` ***plateforme:`uname -m` Mem:`free -m | grep Mem | awk -F' ' '{print $2}'`MB NON compatible 64 bits***; fi;

Ubuntu 10.04.2 LTS-lucid-32bits 2.6.32-28-generic-pae ***plateforme:i686 Mem:4023MB compatible 64 bits***

Dernière modification par uboops (Le 05/02/2011, à 21:17)


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#4 Le 05/02/2011, à 21:41

ehmicky

Re : Test de vérification de compatibilité en 64 bits - bash

Salut,

non= ; [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] || non="non-" ; echo -e "\n$(grep DESCRIPTION /etc/lsb-release | cut -d\" -f2)-$(grep CODENAME /etc/lsb-release | cut -d= -f2)-$(getconf LONG_BIT)bits $(uname -r)\n***plateforme: $(uname -m) ${non}compatible 64 bits***"

Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#5 Le 05/02/2011, à 22:00

uboops

Re : Test de vérification de compatibilité en 64 bits - bash

Merci,
Belle optimisation (avec la mémoire totale reconnue en plus)!

non= ; [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] || non="non-" ; echo -e "\n$(grep DESCRIPTION /etc/lsb-release | cut -d\" -f2)-$(grep CODENAME /etc/lsb-release | cut -d= -f2)-$(getconf LONG_BIT)bits $(uname -r)\n***plateforme: $(uname -m) Mem:`free -m | grep Mem | awk -F' ' '{print $2}'`MB ${non}compatible 64 bits***"

Ubuntu 10.04.2 LTS-lucid-32bits 2.6.32-28-generic-pae
***plateforme: i686 Mem:4023MB compatible 64 bits***

Dernière modification par uboops (Le 05/02/2011, à 22:01)


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#6 Le 05/02/2011, à 22:26

ehmicky

Re : Test de vérification de compatibilité en 64 bits - bash

Tu peux faire ça également :

non= ; [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] || non="non-" ; echo -e "\n$(grep DESCRIPTION /etc/lsb-release | cut -d\" -f2)-$(grep CODENAME /etc/lsb-release | cut -d= -f2)-$(getconf LONG_BIT)bits $(uname -r)\n***plateforme: $(uname -m) Mem:$(free -m | awk '/Mem/ {print $2}')MB ${non}compatible 64 bits***"

Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#7 Le 06/02/2011, à 14:53

uboops

Re : Test de vérification de compatibilité en 64 bits - bash

Exact, c'est mieux
Du coup je vais proposer ça sur la doc ubuntu: http://doc.ubuntu-fr.org/ubuntu_64bits une amélioration:

non= ; [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] || non="non-" ; echo "***${non}compatible 64 bits***"

ou ça, car plus "lisible" (car celle du dessus plus optimisée, n'a pas plu à tout le monde apparemment wink  )

if [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] ; then echo "Compatible 64 bits" ; else echo "Non-compatible 64 bits" ; fi

Car c'est plus explicite que le test du 1 ou du 0 de la doc actuelle:

cat /proc/cpuinfo | grep "flags" | head -n1 | grep "lm" | wc -l

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
Avec plus d'informations: partie OS et Platforme:

non= ; [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] || non="non-" ; echo -e "\n$(grep DESCRIPTION /etc/lsb-release | cut -d\" -f2)-$(grep CODENAME /etc/lsb-release | cut -d= -f2)-$(getconf LONG_BIT)bits $(uname -r)\n***plateforme: $(uname -m) Mem:$(free -m | awk '/Mem/ {print $2}')MB ${non}compatible 64 bits***"

Ubuntu 10.04.2 LTS-lucid-32bits 2.6.32-28-generic-pae
***plateforme: i686 Mem:4023MB compatible 64 bits***

Dernière modification par uboops (Le 06/02/2011, à 15:06)


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#8 Le 06/02/2011, à 15:54

Watael

Re : Test de vérification de compatibilité en 64 bits - bash

Salut

serait-il imprudent de sourcer /etc/lsb-release, pour récupérer les valeurs des variables qui y sont déclarées, au lieu de faire des grep |cut tout moche?

Dernière modification par Watael (Le 06/02/2011, à 15:54)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#9 Le 06/02/2011, à 17:29

uboops

Re : Test de vérification de compatibilité en 64 bits - bash

Watael a écrit :

Salut
serait-il imprudent de sourcer /etc/lsb-release, pour récupérer les valeurs des variables qui y sont déclarées, au lieu de faire des grep |cut tout moche?

Salut,
Si tu avais bien lu le premier post tu n'aurais pas posé cette question quelque peu ridicule car non pertinente (hors sujet) !
(Le postula de départ: "...Ce qui affiche sur une ligne dans le terminal:... ")


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#10 Le 06/02/2011, à 18:14

Watael

Re : Test de vérification de compatibilité en 64 bits - bash

c'est quoi ton stress ?

(. /etc/lsb-release; non= ; [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] || non="non-"; printf '\n%s\n%s\n' "$DISTRIB_DESCRIPTION-$DISTRIB_CODENAME-$(getconf LONG_BIT)bits $(uname -r)" "***plateforme: $(uname -m) Mem:$(free -m | awk '/Mem/ {print $2}')MB ${non}compatible 64 bits***")

Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#11 Le 06/02/2011, à 18:36

uboops

Re : Test de vérification de compatibilité en 64 bits - bash

LOL,
Aucun stress ici, c'est juste que la formulation ainsi que la tonalité de ta question est un peu condescendante, d'où la tonalité de la réponse.
Pour info., je privilégie toujours plus dans les relations humaines le "savoir être" que le "savoir" ou le "savoir faire".
Je vois néanmoins que quand tu veux tu peux également être constructif !

...Donc si ça te gène, je peux effacer mes 2 derniers posts...


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#12 Le 06/02/2011, à 22:30

ehmicky

Re : Test de vérification de compatibilité en 64 bits - bash

uboops, Watael a raison, c'est bien mieux comme ça, merci Watael smile
Sinon, il était pas agressif tongue


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#13 Le 06/02/2011, à 23:00

uboops

Re : Test de vérification de compatibilité en 64 bits - bash

ehmichy, tu as le droit de légitimer son comportement, c'est ton choix.
Pour ma part je privilégie toujours plus ,dans mes relations humaines, le "savoir être" que le "savoir"  ou le reste..., et c'est mon choix.

C'était certes pas très agressif mais condescendant, ce qui pour moi gâche un peu (malgré son savoir technique apporté)
...Bien que le "c'est quoi ton stress ?" démontre tout de même une certaine forme agressivité.
Mais bon c'est pas grave ...


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#14 Le 06/02/2011, à 23:25

Totor

Re : Test de vérification de compatibilité en 64 bits - bash

Bonsoir,

Il existe un outil bien pratique pour déterminer ce genre de chose : lshw (à installer)

read -a infos < <(grep bits  <(sudo lshw -C processor)) && { (( ${infos[1]} == 64 )) && echo "Plateforme compatible 64 bits." || echo "Plateforme non compatible 64 bits."; }  || echo "Informations de plateforme non trouvées"

Si tu ne veux pas lancer lshw en sudo, il faut rediriger la sortie d'erreur de lshw :

read -a infos < <(grep bits  <(lshw -C processor 2>/dev/null)) && { (( ${infos[1]} == 64 )) && echo "Plateforme compatible 64 bits." || echo "Plateforme non compatible 64 bits."; }  || echo "Informations de plateforme non trouvées"

-- Lucid Lynx --

Hors ligne

#15 Le 07/02/2011, à 20:42

uboops

Re : Test de vérification de compatibilité en 64 bits - bash

Bonjour et Merci pour l'info Totor


“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).

Hors ligne

#16 Le 05/03/2011, à 12:41

BlueRabbit

Re : Test de vérification de compatibilité en 64 bits - bash

Bonjour,

je voudrai optimiser mon code pouvez vous m'aidé

Code 1 : il marche dans mon script

#TT=$(du -ax ${RACINE_A_SAVE} ${EXCLUSTION_TAR}|wc -l)
TT=$(df -i ${RACINE_A_SAVE} |awk '/^\/dev/{print $3}')
#pour que sa marche TT=5555 nb de fichier sur disques
TT=55555
#Inodes utiliser:  = nombre de fichier

tar cvpzf /dev/null * ${EXCLUSTION_TAR} |gawk -v VAR=$TT '{
TRAITER+=1 ;
TRAITER_COM=int(TRAITER*99/VAR) ;
print TRAITER_COM ;
printf "#" TRAITER_COM "%% " TRAITER " Fichier traité sur " VAR " : "
if (length > 40) print substr($0, 0 , 20) "..."  substr($0,length -20 ,length) ;
else print $0 ;
}' 2>/dev/null| zenity --progress --width=650 --title="Sauvegarder LINUX" --text="Initialisation de la sauvegarde....."  --percentage=0 --auto-close  ;

Code 2 : il marche en console mais plante dans mon script

TT=555555
 tar cvpzf /dev/null *  |gawk -v VAR=$TT '{
TRAITER+=1
POURCENT=TRAITER*99/VAR
if (length > 40) printf "%.f""\n" "#""%.f" "%% " TRAITER " Fichier traité sur "VAR" : "substr($0, 0 , 20)"..."  substr($0,length -20 ,length)"\n" ,POURCENT,POURCENT
else printf "%.f""\n" "#""%.f" "%% " TRAITER " Fichier traité sur "VAR" : "$0"\n",POURCENT,POURCENT
}' 2>/dev/null| zenity --progress --width=650 --title="Sauvegarder LINUX" --text="Initialisation de la sauvegarde....."  --percentage=0 --auto-close  ;

Dernière modification par BlueRabbit (Le 05/03/2011, à 12:48)


archlinux 64 Bits
Portable ASUS i5

Hors ligne