résumé des actions:
1/ activer le débogage USB sur le terminal android
2/ créer une règle UDEV pour la connection avec ADB
3/ télécharger le SDK android
4/ identitifez votre device
5/ se connecter au device

détail:
Pour pouvoir se connecter à distance (Via un cable USB par exemple) sur un terminal Android depuis Linux. La première chose à faire est de modifier la règle de chargement du périphérique en modifiant un paramètre UDEV. UDEV est le daemon créant les fichiers spéciaux de périphériques comme /dev/sda, /dev/tty, etc…

tout est dynamique il n’y a donc pas grand chose à faire si ce n’est de créer une règle dans un fichier. Vous trouverez les lignes à mettre depuis http://wiki.cyanogenmod.com/wiki/Udev

$ sudo vi /etc/udev/rules.d/51-android.rules
$ cat /etc/udev/rules.d/51-android.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ff9", MODE="0666", GROUP="plugdev" # ADB

Le terminal android lui aussi doit être configuré pour pouvoir autoriser les connexions distantes, allez dans paramètres -> applications -> développement -> cocher Débogage USB

télécharger le SDK android : http://developer.android.com/sdk/index.html décompressez-le et allez dans le répertoire tools, lancez le bianaire « android », une fenêtre va s’ouvrir, sélectionner le téléchargement de ADB. Remontez d’un cran dans votre arborescence et allez dans le répertoire platforms-tools.

maintenant branchez votre terminal via la connectique USB.

il ne reste plus qu’à se connecter. identifiez votre terminal avec la commande :

$ ./adb devices
List of devices attached
HT04RG358426    device

lancez un shell sur votre terminal

$ ./adb -s HT04RG358426 shell

si votre terminal android est rooté, une fois dans le shell vous pouvez taper la commande « su », regardez ensuite l’écran du terminal pour autoriser la connection en root et voilà.

 

raid5 optimisé, au final, j’ai multiplié par 4 les performances initales.

maintenant,
la copie d’un gros fichier depuis et vers le même filesystème se fait à environ 85Mo/s.
la lecture d’un fichier se fait environ à 1Go/s
l’écriture environ à 190Mo/s

pour tous les détails c’est à la page perfs x4 – optimisation d’un raid5 par la pratique

vous y trouverez un résumé condensé des différentes optimisations, toutes les modifications effectuées, des scripts de stress et de test et aussi le détail très technique de toutes les opérations.

 

Pour voir le nombre de CPU logique :

$ grep -c "processor" /proc/cpuinfo
16

le nombre de CPU physique :

$ grep "physical id" /proc/cpuinfo |sort -u |wc -l
2

nombre de core par CPU :
Continue reading »

 

selon les données à sauvegarder/archiver, il ne faut pas se jeter sur le premier outil de compression qui nous vient en tête.

voici un exemple concret concernant une sauvegarde mysql, vous serez tous d’accord avec moi pour dire que ce n’est finalement que du texte:

$ ls -lh backup.sql*
-rw-r--r-- 1 root root  25M 2011-11-30 13:03 backup.sql
-rw-r--r-- 1 root root 6,7M 2011-11-30 13:04 backup.sql.gz
-rw-r--r-- 1 root root 1,8M 2011-11-30 13:05 backup.sql.7z

Continue reading »

 

We had performance issues on our NFS servers, very poor performances.
after analyze we have seen that the bottleneck came from the disks, as always;
but tuning the FS did not solve the problem.

I talk about 1500 NFS mountpoint (running on 9 nodes from ServiceGuard cluster solution) as in my actual mission, everything works through NFS.
The homedir of course but also the applications, the logs, libraries etc…
Continue reading »

 

Hi gents,

after searching a script to massive set quota for users on HP-UX, i’ve found nothing, only people asking how to do it.
of course you have the ‘edquota’ command, which can copy a user’s quota template into another account, but this is not the best way.

so, i’ve wrote a little script to do the job, for all my NFS users.

this script will definitively not fit for an other person than me and my needs, but I think it can be a good basis.
Continue reading »

 

voici une mise à jour du script MULTI_PROC.sh
ce script, permet de paralléliser le lancement de scripts.

attention, ce script a été conçu pour fonctionner depuis Solaris uniquement.
n’oubliez pas de changer les chemins à différents binaires pour un autre OS.
Continue reading »

 

rappel pour quand un serveur HP-UX plante.

depuis le GSP, il ne faut jamais utiliser la commande CM -> RS.
cela ferait un bête reset du serveur.
au contraire, utiliser la commande CM -> TC

TC signifie « Transfert of Control », et va exécuter un dump de la mémoire sur disque, généralement sur le lvol swap.

après que le dump ait été enregistré sur disque, le serveur reboot.
une fois le serveur redémarré, le dump est automatiquement transféré dans le répertoire configuré dans le fichier /etc/rc.config.d/savecrash
Continue reading »

 

Voici un script qui regarde si l’espace disponible pour un crash dump est suffisant ou pas.
bien évidemment, il faut le lancer avant que la machine ne freeze.

Download : checkdumpsize.sh
#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin
SAVECRASH_DIR="/var/adm/crash"

[ -f /etc/rc.config.d/savecore ] && . /etc/rc.config.d/savecore
[ -f /etc/rc.config.d/savecrash ] && . /etc/rc.config.d/savecrash
[ -f /etc/rc.config.d/savecrash ] || {
	echo "ERROR: /etc/rc.config.d/savecrash defaults file MISSING"
	exit 0
}

Print_data () {
	printf " %4s Size Mem dump %6d\n" "$1" $MEM_DUMP_SIZE

	if [ "$MEM_DUMP_SIZE" -lt "$LV_DUMP_SIZE" ]
	then
		printf " Size Disk dump     %6d OK\n" $LV_DUMP_SIZE
	else
		printf " Size Disk dump     %6d Error\n" $LV_DUMP_SIZE
	fi

	if [ "$MEM_DUMP_SIZE" -lt "$FS_DUMP_SIZE" ]
	then
		printf " Size free Dir      %6d OK\n" $FS_DUMP_SIZE
	else
		printf " Size free Dir      %6d Error\n" $FS_DUMP_SIZE
	fi

	printf "\n"
}

MEM_DUMP_SIZE=$( /sbin/crashconf -v |grep "Total pages included in dump"| cut -d":" -f2 )
MEM_DUMP_SIZE=$( echo $MEM_DUMP_SIZE |awk '{ printf ("%d\n", ($1 * 4 / 1024)) }' )
FS_DUMP_SIZE=$( bdf $SAVECRASH_DIR |grep -v used | awk '{ print $4 }' )
FS_DUMP_SIZE=$( echo $FS_DUMP_SIZE |awk '{ printf ("%d\n", ($1 / 1024)) }' )
LV_DUMP_SIZE="0"

for SIZE in $( /sbin/crashconf -v |grep "dev" | awk '{ print $3 }' )
do
	LV_DUMP_SIZE=$(expr $SIZE + $LV_DUMP_SIZE)
done

LV_DUMP_SIZE=$( echo $LV_DUMP_SIZE |awk '{ printf ("%d\n", ($1 / 1024)) }')

printf "\n                     Data in Mb\n"
Print_data ""

MEM_DUMP_SIZE=$(echo $MEM_DUMP_SIZE |awk '{ printf ("%d\n", ($1 * 105 / 100)) }')
Print_data "+5%"

MEM_DUMP_SIZE=$(echo $MEM_DUMP_SIZE |awk '{ printf ("%d\n", ($1 * 1047 / 1000)) }')
Print_data "+10%"

MEM_DUMP_SIZE=$(echo $MEM_DUMP_SIZE |awk '{ printf ("%d\n", ($1 * 1091 / 1000)) }')
Print_data "+20%"

il affiche l’espace dispo pour maintenant et aussi si la mémoire utilisée augmente de +5, +10 et +20%.
on peut donc prévoir un rajout d’espace disque.

exemple de sortie du script:
Continue reading »

 

script permettant un affichage amélioré de : bdf

bdf affiche généralement sur 2 ligne une info concernant un point de montage si celui-ci dépasse 80 caractère, ce qui est souvent le cas.

ce script affiche chaque enregistrement sur une seule ligne, avec en sus, des infos comme le nombre d’inodes et le type de filesystème.

la version perl de ce script fonctionne très bien.
cependant, perl n’est pas présent sur tout les serveurs.

voici donc la version ksh.

Download : bdfa.sh
#!/bin/ksh
##----------------------------------------------------------------------------
# ATTENTION : Pour lecture plus clair tapez :tabstop=3 sous vi ou positionner
# ---------   "set tabstop=3" dans le fichier ".exrc"
## Script  : bdfa
## Version : 2.0.0
## Objet   : Formatage de la commande bdf.
## Auteur  : Cedrick GAILLARD
##----------------------------------------------------------------------------
# 1.0.0 27-oct-06 - Cedrick - Creation
# 1.0.1 19-mar-07 - Cedrick - Ajout du PATH
# 1.1.0 19-mar-07 - Cedrick - modification du script en profondeur
#                             pour une selection du/des chemin(s) plus vaste.
# 2.0.0 02-jul-08 - Cedrick - reecriture quasi complete avec apparition de:
#                              - taille affichees du Ko jusqu'au Yo
#                              - plus de doublon sur les FS nfs
#                              - amelioration syntaxique
# 2.0.1 30-jul-08 - Cedrick - modification du code pour corriger les problemes suivants:
#                              - bdfa ne remontait pas jusqu'a la racine lors de: bdfa /somedir
#                              - bdfa ne prenais pas bien en compte le repertoire "."
# 2.0.2 02-avr-09 - Cedrick - Utilisation de df pour localiser le point de montage.
# 2.1.0 13-aou-09 - Cedrick - le metrique (M,G,Y,Etc...) est sur un caractere maintenant.
#                           - ajout du total de tout les FS en fin de calcul
#                           - correction de l'anayse des chemins donnes en argument.
# 3.0.0 21-sep-09 - cedrick - reecriture complete.
#                           - beaucoup plus rapide.
#                           - affichage du total si plus d'un FS.
#                           - accepte tous les arguments de bdf.
#
#-----------------------------------------------------------------------------
##
## Ce script permet d'afficher la sortie d'un bdf sans chevauchement de ligne
## l'option -i de bdf est utilisee ce qui permet d'afficher des informations
## sur les inodes.
##

[ "$(uname -s)" != "HP-UX" ] && {
   echo "Erreur: script indisponible pour [ $(uname -s) ]."
   exit
}

# Initialisations
SUFFIXES="KMGTPEZY"
MAX_SUFF=${#SUFFIXES}

# On recupere la sortie du bdf et on met sur une ligne ce qui doit l'etre
BDF_OUTPUT=$(bdf -i $@ |tail +2 |sed -e '/^[^ ][^ ]*$/{
N
s/[ ]*\n[ ]*/ /
}')

# On recupere les types de FS presents montés sur le systeme
MNT_OUTPUT=$(awk '{if($3 ~ "^"autofs"$") {next} else {printf("%s %s\n",$1, $3)}}' /etc/mnttab)

#------------------------------------------------------------------------------#
# Fonction retournant les nombres convertis avec leur suffixe.
#
calc_number () {
	NUMBER=$1
	ITERATION=1
	while [ "$NUMBER" -gt "1023" ]
	do
		[ "$ITERATION" -ge "$MAX_SUFF" ] && break
		ITERATION=$(($ITERATION + 1))
		NUMBER=$(echo "scale=2; $NUMBER / 1024" |bc)
	done

	NUMBER=$(printf "%.2f" $NUMBER)
	[ -n "$(echo "$NUMBER" |fgrep ".00")" ] && {
		NUMBER=$(printf "%.0f" $NUMBER)
	}
	echo "${NUMBER}$(echo $SUFFIXES |cut -c${ITERATION})"
}
#
# Fin - calc_number
#------------------------------------------------------------------------------#

#------------------------------------------------------------------------------#
# affiche le resultat
#
printf_data () {
	if [ "${#}" -gt "4" ]
		then
			printf "%-${LENGTH_LV}s %8s %8s %8s %5s %8s %8s %5s %5s %s\n" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}"
		else
			printf "%${LENGTH_LV}s %8s %8s %8s\n" $1 $2 $3 $4
	fi
}
#
# Fin - printf_data
#------------------------------------------------------------------------------#

# On compte le nombre de caracteres du premier champ avec awk
LENGTH_LV=$(echo "${BDF_OUTPUT}" |awk 'BEGIN{name=0} {
	if(length($1) > name) {
		name=length($1)
	}
} END {
	print name
}')

# Affichage de l'En-tete
printf_data 'File System' Size Used Avail '%Used' Inodes Ifree '%IUsed' Type '%Mounted On'

TSIZE=0 TUSED=0 TAVAIL=0
# On met en forme
echo "${BDF_OUTPUT}" |while read LVOL SIZE USED AVAIL PUSED IUSED IFREE IUSE MOUNTED
do
	TSIZE=$(($TSIZE + $SIZE))
	TUSED=$(($TUSED + $USED))
	TAVAIL=$(($TAVAIL + $AVAIL))

	SIZE=$(calc_number $SIZE)
	USED=$(calc_number $USED)
	AVAIL=$(calc_number $AVAIL)

	# Type de FS
	FS_TYPE=$(echo "$MNT_OUTPUT" |grep "^$LVOL " |cut -d" " -f2)
	printf_data $LVOL $SIZE $USED $AVAIL $PUSED $IUSED $IFREE $IUSE $FS_TYPE $MOUNTED
done

# Affichage du total si plusieurs FS affiches
[ "$(echo "${BDF_OUTPUT}" |wc -l)" -gt "1" ] && {
	TSIZE=$(calc_number $TSIZE)
	TUSED=$(calc_number $TUSED)
	TAVAIL=$(calc_number $TAVAIL)
	printf_data -------- -------- -------- --------
	printf_data "Total:" $TSIZE $TUSED $TAVAIL
}
© 2011 Unix Open Suffusion theme by Sayontan Sinha