Juin 142011
 

la fonction suivante prend un nom de répertoire en argument et retourne un array contenant la liste de tous les fichiers récursivement:

Download : getFiles.sh

function getFiles($directory) {
    // Try to open the directory
    if($dir = opendir($directory)) {
        // Create an array for all files found
        $tmp = Array();
        // Add the files
        while($file = readdir($dir)) {
            // Make sure the file exists
            if($file != "." && $file != ".." && $file[0] != '.') {
                // If it's a directory, list all files within it
                if(is_dir($directory . "/" . $file)) {
                    $tmp2 = getFiles($directory . "/" . $file);
                    if(is_array($tmp2)) {
                        $tmp = array_merge($tmp, $tmp2);
                    }
                } else {
                    array_push($tmp, $directory . "/" . $file);
                }
            }
        }
        // Finish off the function
        closedir($dir);
        return $tmp;
    }
}

fonction récupérée sur php.net.

Juin 142011
 

dès fois, on lance une connexion ssh avec des commandes dedans.
dès fois, la connexion ssh se ferme pas, et c’est bien fatigant, surtout quand on veut accéder à plusieurs serveurs au travers d’une boucle.

solution, les redirection.
parceque si la connexion se ferme pas, c’est qu’il y a des fichiers ouverts, on squizze donc ces fichiers.

voici l’exemple d’une connexion qui ne se ferme pas, pourtant, aucune erreur :

$ ssh machine "/sbin/init.d/ldapclientd.rc stop && \
/sbin/init.d/ldapclientd.rc start"

et voici la même avec les redirections, cette connexion se fermera bien à la fin des commandes.

$ ssh machine "/sbin/init.d/ldapclientd.rc stop </dev/null>/dev/null 2>&1 && \
 /sbin/init.d/ldapclientd.rc start </dev/null>/dev/null 2>&1"
Juin 142011
 

pour se connecter en ssh sur un site distant quand il y a un proxy socks entre la connexion.
le mieux est d’utiliser la command connect dans les options ssh.

le fichier connect.c a compiler se trouve ici : connect.html

cette page contient plein d’exemples.

un exemple ou deux de plus ne faisant pas de mal :

$ ssh -o "ProxyCommand=/usr/local/bin/connect \
-S domain\\login@proxy.domain:1080 %h %p" 88.180.70.50 22
$ ssh -o "ProxyCommand=/usr/local/bin/connect \
-S login@proxy.domain:1080 %h %p" 88.180.70.50 22
Juin 142011
 

prérequis:
une machine derrière une passerelle ayant accès à l’extérieur par ssh et ayant un serveur sshd qui tourne.

voila le topo.
vous êtes au boulot et tous les postes informatiques sont derrière une passerelle.
bien pratique mais vous avez une compilation sur un serveur et vous savez que la compilation va prendre au moins une heure.
vous ne pouvez rien faire en attendant la fin de la compilation et pourtant, y en a des choses à faire après (vérifications/configurations/etc…)

l’astuce.
vous allez connecter une machine chez vous et y ouvrir une socket, quand vous serez chez vous, vous n’aurez qu’a vous connecter à cette socket pour vous connecter à la machine du boulot.
Continue reading »

Juin 142011
 

Problème:
j’ai fait une grosse archive tar (non compressée) et l’extraction des données a été interrompue suite à une corruption de disque.

tar est très lent a reprendre l’extraction ou il en était et échoue lamentablement au final à cause des erreurs rencontrées..
c’est parce que tar lit séquentiellement le fichier backup.tar, il travaille en bloc.

Solution :
créer un index des fichiers se trouvant dans l’archive, tar va lire l’intégralité du fichier une première fois mais ensuite, il n’aura plus à le relire entièrement.

$ FICHIER=archive.tar
$ tar --list --block-number --verbose --file=$FICHIER > ${FICHIER}.index

Continue reading »

Juin 142011
 

liste de certains alias ajoutés à mon .profile.

alias sepath='echo ${PATH} | tr ":" "n" | xargs ls |sort -u | egrep -i "${@}"'
alias burniso='cdrecord -v -overburn speed=8 driveropts=burnfree $1'
alias df='df -aTh'
alias psa='ps axwww|grep -i'
alias startx='startx ${1} >~/X.log 2>&1 &'

et leur utilisation:
Continue reading »