Memo

From AleikoumWiki

(Difference between revisions)
Jump to: navigation, search
m (Divers)
m
Line 219: Line 219:
http://asher256.tuxfamily.org/index.php?2005/12/29/10-personnaliser-gnome-avec-gconf
http://asher256.tuxfamily.org/index.php?2005/12/29/10-personnaliser-gnome-avec-gconf
 +
 +
 +
== Algo ==
 +
 +
=== un peu de dichotomie ===
 +
 +
<pre>
 +
#/bin/sh
 +
 +
max=999
 +
fic="/tmp/erwan/liste-fic"
 +
flag="NOT-FIND"
 +
pattern="fichier"
 +
 +
# premier test : y a t il de la place ?
 +
nb_lignes=`wc -l $fic | cut -d " " -f 1`
 +
echo "nb_lignes == $nb_lignes"
 +
 +
if [[ $nb_lignes -gt $max ]]
 +
then
 +
echo "il n y a pas de place dispo"
 +
exit 0
 +
fi
 +
 +
let limite_haute=$nb_lignes+1
 +
limite_basse=-1
 +
let compteur=$max/2
 +
while [[ $flag == "NOT-FIND" ]]
 +
do
 +
o_limite_haute=$limite_haute
 +
o_limite_basse=$limite_basse
 +
 +
fic_temp=`cat $fic | head -n $compteur | tail -n 1 | sed "s/$pattern\.\(...\)/\1/g" | sed "s/^0\(..\)/\1/g" | sed "s/^0\(.\)/\1/g"`
 +
if [[ $compteur -eq $fic_temp ]]
 +
then
 +
echo "compteur $compteur egal a $fic_temp"
 +
limite_haute=$compteur
 +
elif [[ $compteur -lt $fic_temp ]]
 +
then
 +
echo "compteur $compteur inf a $fic_temp"
 +
limite_haute=$fic_temp
 +
elif [[ $compteur -gt $fic_temp ]]
 +
then
 +
echo "compteur $compteur sup a $fic_temp"
 +
limite_basse=$fic_temp
 +
fi
 +
let compteur=($limite_haute+$limite_basse+1)/2
 +
echo "les limites deviennent [$limite_basse;$limite_haute]"
 +
echo "les anciennes limites deviennent [$o_limite_basse;$o_limite_haute]"
 +
if [[ $limite_haute -eq $o_limite_haute ]] && [[ $limite_basse -eq $o_limite_basse ]]
 +
then
 +
let compteur=$limite_basse+1
 +
flag="FIND"
 +
fi
 +
echo""
 +
done
 +
compteur=`printf "%03d" "$compteur"`
 +
echo "fic est $pattern.$compteur"
 +
echo "fin"
 +
</pre>

Revision as of 13:45, 18 August 2008

Au moins je suis sur de rien perdre comme ca !


Contents

Commandes Linux diverses

Divers

# Cette ligne va unlink tout les pipes contenu dans /tmp  
for i in `ls -la /tmp | grep '^prwxrwxrwx' |tr -s ' '|cut -d' ' -f9`; do `unlink /tmp/$i`;done

# Efface tout les liens du repertoire courant
for i in `ls -la . | grep '^lrwxrwxrwx' |tr -s ' '|cut -d' ' -f9`; do `rm -rf $i`;done

# TEST
for a in `grep -rn "_msg" * | sed "s/.*_msg \(....\).*/\1/g"`; do cat /users/too00/data/ecrit_log.msg | grep $a > /dev/null && echo "$a orphelin : $?" ; done

# Liste le contenu du repertoire courant en classant par ordre croissant de creation, la date est de type : date +"%s"
ls -l --time-style=+%s | sed -e 's/^.* \([0-9]*\) \([^ ]*\)$/\1 \2/'

# Liste le contenu du repertoire courant en classant par ordre decroissant de creation, la date est de type : date +"%s"
ls -rl --time-style=+%s | sed -e 's/^.* \([0-9]*\) \([^ ]*\)$/\1 \2/'

# Connaitre la taille du contenu d'un repertoire
du -hs le_rep

# Petite manip
$ aa="test"
$ bb="rere"
$ testrere="ajourdhui"
$ port=$aa$bb
$ echo $port
testrere
$ echo ${!port}
ajourdhui

# Code retour d'une commande
[toto@p00]$ ll ~
[toto@p00]$ echo $?		 --> 0
[toto@p00]$ ll /root
[toto@p00]$ echo $?		 --> 1, si pas le droit !

# Copie d'un groupe de fichier en le renommant 
for i in `ls *.cgi`; do cp $i $i.bkp ; done		# ici tous les .cgi sont COPIES et RENOMMES en .bkp

# Changer un mot dans une liste de fichier
for a in `grep -rl 'httpd2' *` ; do echo "traite $a"; sed -e 's,/httpd2/,/httpd/,g' $a > out.sed && mv -f out.sed $a ; done
# remplace le mot /httpd2/ contenu dans tout les fichiers du repertoire courant et le remplace par /httpd/

#Formattage en ext3 avec le label plop !
mke2fs -j /dev/PARTITION -L plop
# en fat32
mkdosfs -v -F 32 /dev/PARTITION -n plop

#Monter un lecteur NFS : en read only avec le no lock !
mount -o ro,nolock @serveur_nfs:/usr/local/plop /mnt/temp/

#Recherche d'un fichier (correspondant à une pattern) dans une arborescence donné
find /home/plop/public/BACKUPS-MACHINES/Ntbackup/ -name "1-*" -print -follow 2> /dev/null

# umask pour avoir du 664 a mettre dans le bashrc 
umask 0002

#convertir un timestamp en date classique 
date -d "1970-01-01 UTC + TIMESTAMP seconds"
#l'inverse
date -d AAAA-MM-JJ +"%s"

# petit truc avec find 
find ./ -size +200000k -printf "Size: %kK\tPath: %p\n"
find /tmp/erwan/letestrm/* -mtime +30 -delete #efface tout les fichiers modifie la derniere fois il y a plus 30jours !
find /tmp/erwan/letestrm/* -mtime -30 -delete #efface tout les fichiers modifie la derniere fois il y a moins 30jours !

# oui parle moi petit serveur 
nmap -sV -p port addresse server # avec -O on peut avoir l'OS !!

# qu est ce qu on graphe dans notre base RRD ? bref quelles sont les ordonnees qu'on a dans un fichier rrd
rrdtool info fichier.rrd | grep ds | grep type | cut -d [ -f 2 | cut -d ] -f 1

#en test : validation d une adresse IP
expr match 40.255.255.26 '[0-2]\{0,1\}[0-5]\{0,1\}[0-9]\{1,2\}.[0-2]\{0,1\}[0-5]\{0,1\}[0-9]\{1,2\}.[0-2]\{0,1\}[0-5]\{0,1\}[0-9]\{1,2\}.[0-2]\{0,1\}[0-5]\{0,1\}[0-9]\{1,2\}$'

#retirer le dernier caractere
expr "bonjour" : "\(.*\).$"

#creer un splash screen a partir d une image donne
convert -resize 640x480 -colors 14 wallpaper.jpg imagepourgrub.xpm
gzip imagepourgrub.xpm

#manip printf
printf "%03d" "0"
va donner 000

#afficher toutes les adresses ip montees
for addr in `ifconfig | grep "inet addr" | cut -d":" -f 2 | cut -d" " -f 1`
do
        listaddr="$listaddr$addr,"
done
listaddr=`expr $listaddr : "\(.*\).$"


#un exemple d utilisation de sed 
soit le fichier test.txt contenant : 
-rw-r--r--  1 helbi helbi    6679 2008-05-09 17:24 nagios    of a i lover.dia
-rw-r--r--  1 helbi helbi   28186 2008-05-16 10:30 nagiosofailover-d  ou b lon.png
-rw-r--r--  1 helbi helbi   74846 2008-05-09 17:53 nagiosofailover.png
Je souhaite recuperer le nom du fichier... avec les espaces et tout et tout ! voici une methode :
sed 's/.*\(nagios.*\)/\1/' test.txt
enjoy !


#site howto NTP : http://www.traduc.org/docs/HOWTO/lecture/TimePrecision-HOWTO.html

# To automatically launch 'screen'
WINDOW=${WINDOW:-notset}
# If 'WINDOW' is not set, then its value is 'notset'
# In this case, we can launch 'screen', else, we do nothing
if [[ "$WINDOW" == "notset" ]] && [[ "$TERM" == "xterm" ]]; then
 screen -URD
fi



# outil diff plus facil a comprendre :) : http://os.ghalkes.nl/dwdiff.html


Random Value in shell

Voici un petit script qui va permettre de generer des valeurs aleatoire en shell ouhou !

# If you need a random int within a certain range, use the 'modulo' operator.
# This returns the remainder of a division operation.

RANGE=500

echo

number=$RANDOM
let "number %= $RANGE"
echo "Random number less than $RANGE  ---  $number"

echo

# If you need a random int greater than a lower bound,
# then set up a test to discard all numbers below that.

FLOOR=200

number=0   #initialize
while [ "$number" -le $FLOOR ]
do
  number=$RANDOM
done
echo "Random number greater than $FLOOR ---  $number"
echo


# May combine above two techniques to retrieve random number between two limits.
number=0   #initialize
while [ "$number" -le $FLOOR ]
do
  number=$RANDOM
  let "number %= $RANGE"  # Scales $number down within $RANGE.
done
echo "Random number between $FLOOR and $RANGE ---  $number"
echo


# Generate binary choice, that is, "true" or "false" value.
BINARY=2
number=$RANDOM
T=1

let "number %= $BINARY"
# let "number >>= 14"    gives a better random distribution
# (right shifts out everything except last binary digit).
if [ "$number" -eq $T ]
then
  echo "TRUE"
else
  echo "FALSE"
fi  

echo

Gnome

auto exec

On souhaite lancer un exec apres le chargement de gnome et de son environnement
exemple ici avec firefox lancer au demarrage
Creer un fichier dans le rep /etc/xdg/autostart/ (dans notre cas /etc/xdg/autostart/firefoxquickstart.desktop)
puis editer ce fichier ainsi :

[Desktop Entry]
X-SuSE-translate=true
Encoding=UTF-8
Name=Firefox Quickstart
Comment=Firefox Quickstart
GenericName=Firefox Quickstart
Exec=/usr/bin/firefox http://quickstart/
Terminal=false
Type=Application
NoDisplay=false
Categories=FirefoxQuickstart;

ecran de login

Tout se passe

chargement de Gnome

Tout se passe ici /etc/opt/gnome/gconf/gconf.xml.defaults/apps/gnome-session/options/%gconf.xml

site pratique

http://asher256.tuxfamily.org/index.php?2005/12/29/10-personnaliser-gnome-avec-gconf


Algo

un peu de dichotomie

#/bin/sh

max=999
fic="/tmp/erwan/liste-fic"
flag="NOT-FIND"
pattern="fichier"

# premier test : y a t il de la place ?
nb_lignes=`wc -l $fic | cut -d " " -f 1`
echo "nb_lignes == $nb_lignes"

if [[ $nb_lignes -gt $max ]]
then
        echo "il n y a pas de place dispo"
        exit 0
fi

let limite_haute=$nb_lignes+1
limite_basse=-1
let compteur=$max/2
while [[ $flag == "NOT-FIND"  ]]
do
        o_limite_haute=$limite_haute
        o_limite_basse=$limite_basse

        fic_temp=`cat $fic | head -n $compteur | tail -n 1 | sed "s/$pattern\.\(...\)/\1/g" | sed "s/^0\(..\)/\1/g" | sed "s/^0\(.\)/\1/g"`
        if [[ $compteur -eq $fic_temp ]]
        then
                echo "compteur $compteur egal a $fic_temp"
                limite_haute=$compteur
        elif [[ $compteur -lt $fic_temp ]]
        then
                echo "compteur $compteur inf a $fic_temp"
                limite_haute=$fic_temp
        elif [[ $compteur -gt $fic_temp ]]
        then
                echo "compteur $compteur sup a $fic_temp"
                limite_basse=$fic_temp
        fi
        let compteur=($limite_haute+$limite_basse+1)/2
        echo "les limites deviennent [$limite_basse;$limite_haute]"
        echo "les anciennes limites deviennent [$o_limite_basse;$o_limite_haute]"
        if [[ $limite_haute -eq $o_limite_haute ]] && [[ $limite_basse -eq $o_limite_basse ]]
        then
                let compteur=$limite_basse+1
                flag="FIND"
        fi
        echo""
done
compteur=`printf "%03d" "$compteur"`
echo "fic est $pattern.$compteur"
echo "fin"
Personal tools