<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Latest snippets tagged linux</title>
  <link rel="alternate" href="http://snippets.prendreuncafe.com/snippets/tagged/linux/order_by/date"></link>
  <id>http://snippets.prendreuncafe.com/snippets/tagged/linux/order_by/date</id>
  <updated>2008-04-23T14:36:03Z</updated>
  <author>
    <name>Symfony</name>
    <author_email>noreply@symfony-project.com</author_email>
  </author>
<entry>
  <title>Extraire toutes les chaînes d'un fichier binaire</title>
  <link href="http://snippets.prendreuncafe.com/snippet/89"></link>
  <updated>2008-04-23T14:36:03Z</updated>
  <id>89</id>
  <summary type="html">En fait, c'est tout bête (mais qu'est ce que ça peut être utilie !) :

[code]
$ strings /usr/bin/iconv 
Written by %s.
char
UCS-4
conversion from %s unsupported
conversion to %s unsupported
conversion from %s to %s unsupported
try '%s -l' to get the list of supported encodings
[...]
[code]</summary>
</entry>
<entry>
  <title>Comparer les différences entre deux répertoires</title>
  <link href="http://snippets.prendreuncafe.com/snippet/80"></link>
  <updated>2008-03-22T15:59:50Z</updated>
  <id>80</id>
  <summary type="html">C'est tout con, mais encore faut-il le savoir :)

[code]
$ diff -rq rep1/ rep2/
[/code]</summary>
</entry>
<entry>
  <title>Dump de toutes les bases d'un serveur MySQL dans des fichiers multiples</title>
  <link href="http://snippets.prendreuncafe.com/snippet/67"></link>
  <updated>2007-04-26T18:49:13Z</updated>
  <id>67</id>
  <summary type="html">Si comme moi vous avez sous la main un serveur abritant plusieurs (dizaines, voir centaines de) bases de données, le jour où une des bases de données plante et qu'on vous demande de la restaurer, je vous souhaite bien du courage si vous n'avez qu'un résultat de mysqldump --all-databases sous la main. 

Afin de pallier ce problème, j'ai écris ce script bash qui vous facilitera bien la vie !

Au programme : 

 * sauvegarde des dump de chaque base dans des fichiers séparés compressés en gzip, eux même situés dans un dossier nommé en fonction de la date

 * suppression automatique du dump effectué il y a 7 jours.

Le script est destiné à être exécuté par un cron, par exemple toutes les nuits.

[code]
#!/bin/bash

#paramètres de configuration du script
#completer ici par le nom d'un utilisateur autorisé à dumper toutes vos bases :
strMysqlUser=&quot;&quot; 
#completer ici par le mot de passe de cet utilisateur :
strPassword=&quot;&quot; 
# completer ici par le chemin vers le repertoire de travail où va se trouver le dump
# il est possible de préfixer le répertoire  :
# &quot;/rep/de/travail/prefix_&quot; donnera alors /rep/de/travail/prefix_20070505
repTravail=&quot;&quot; 


#mémorisation de la date du jour et de la date d'il y a 7 jours
dateActuelle=$(date +%Y%m%d)
datePassee=$(date --date '7 days ago' +%Y%m%d)

#Suppression de la sauvegarde d'il y a 7 jours
echo &quot;[&quot;$(date +%F\ %X)&quot;] Suppression des dump du &quot;$datePassee
repTravailPasse=$repTravail$datePassee
rm -R $repTravailPasse

# début du dump
echo &quot;[&quot;$(date +%F\ %X)&quot;] Dump du : &quot;$dateActuelle
repTravailActuel=$repTravail$dateActuelle
mkdir $repTravailActuel
# récupération de la liste des bdd, &quot;tail -n +2&quot; est présent pour ne pas récupérer le titre &quot;Databases&quot; renvoyé par mysql
listDatabase=$(mysql --user=$strMysqlUser --password=$strPassword --exec=&quot;SHOW DATABASES;&quot; |  tail -n +2)

#dump de chaque base dans un fichier
for lineDatabase in $listDatabase
do
    echo &quot;[&quot;$(date +%F\ %X)&quot;] Debut du dump de la base &quot;$lineDatabase&quot; vers &quot;$repTravailActuel
    mysqldump --user=&quot;$strMysqlUser&quot; --password=&quot;$strPassword&quot; &quot;$lineDatabase&quot; | gzip &gt; &quot;$repTravailActuel&quot;/&quot;$lineDatabase&quot;.sql.gz
    echo &quot;[&quot;$(date +%F\ %X)&quot;] Dump compressé dans &quot;$repTravailActuel&quot;/&quot;$lineDatabase&quot;.sql.gz&quot;
done
echo &quot;[&quot;$(date +%F\ %X)&quot;] Fin de la sauvegarde&quot;
exit 0
 
[/code]</summary>
</entry>
<entry>
  <title>Raccourcis pour changer de bash rapidement</title>
  <link href="http://snippets.prendreuncafe.com/snippet/65"></link>
  <updated>2007-04-10T14:50:49Z</updated>
  <id>65</id>
  <summary type="html">Beaucoup de monde connait le ctrl+alt+FX (X allant de 1 à 6 pour les sessions de terminal, et au dessus pour les sessions graphiques)

Je viens de découvrir par hasard le alt+super pour passer rapidement à la console suivante. (super étant assigné à la touche windows sur les claviers prévus pour fonctionner avec les systèmes de Microsoft)

</summary>
</entry>
<entry>
  <title>Rendre l'execution d'un programme insensible aux déconnexions</title>
  <link href="http://snippets.prendreuncafe.com/snippet/62"></link>
  <updated>2007-03-15T15:09:10Z</updated>
  <id>62</id>
  <summary type="html">On peut utiliser l'utilitaire `nohup` :

[code]
$ nohup batch_script.sh
[/code]

`CTRL+Z` + `bg` mettront la tâche en arrière plan.

</summary>
</entry>
<entry>
  <title>Lancer eclipse avec la JVM de Sun</title>
  <link href="http://snippets.prendreuncafe.com/snippet/60"></link>
  <updated>2007-03-06T16:44:59Z</updated>
  <id>60</id>
  <summary type="html">GCJ c'est gentil, mais ça rame. Alors Eclipse avec GCJ... :/

Pour y remédier, on peut lancer Eclipse en forçant la JVM (update-alternatives reste sourd aux incantations à ce niveau)

[code bash]
/usr/bin/eclipse -vm /usr/lib/jvm/java-1.5.0-sun/jre/bin/java -vmargs -Xmx256M
[/code]

On notera aussi la limitation de mémoire vive utilisable ;)

Pour installer la JVM de Sun si elle n'est pa sprésente sur le système :

[code bash]
sudo apt-get install sun-java5-jre
[/code]</summary>
</entry>
<entry>
  <title>Lister le matériel de sa machine</title>
  <link href="http://snippets.prendreuncafe.com/snippet/59"></link>
  <updated>2007-02-26T16:22:29Z</updated>
  <id>59</id>
  <summary type="html">Lister toutes les informations de la machine : 

[code]
$ sudo lshw
[/code]


Il existe la possibilité d’exporter le résultat dans une page *.html : 

[code]
$ sudo lshw -html &gt; votre_nom_de_fichier.html
[/code]

via http://www.pastanque.be/splitsch/ubuntu/106/106.html et le planet ubuntu-fr (http://planet.ubuntu-fr.org)</summary>
</entry>
<entry>
  <title>Vérifier l'empreinte md5 d'une image ISO</title>
  <link href="http://snippets.prendreuncafe.com/snippet/58"></link>
  <updated>2007-02-17T12:13:33Z</updated>
  <id>58</id>
  <summary type="html">Avec md5sum :

[code]
$ md5sum feisty-desktop-i386.iso
[/code]

Comparer l'empreinte de l'image ISO avec celle du CD gravé :

Trouver le périphérique à vérifier :

[code]
$ cat /etc/fstab | grep cdrom
[/code]

Vérification :

[code]
$ md5sum /dev/hdb
[/code]</summary>
</entry>
<entry>
  <title>Sécuriser /tmp</title>
  <link href="http://snippets.prendreuncafe.com/snippet/54"></link>
  <updated>2007-02-05T22:10:24Z</updated>
  <id>54</id>
  <summary type="html">Beaucoup de script-kiddies s'amusent beaucoup avec le répertoire /tmp, par défaut aisément accessible et donc réceptacle à executables falacieux de tous poils.

Voici une méthode permettant de remplacer ce point de montage par un nouveau, de 40Mo mais dont la particularité sera de ne pas autoriser l'execution de programmes (héhé) :

[code bash]
# create a 40MB block device which will be the /tmp file system
cd /root
dd if=/dev/zero of=/root/tmpMnt bs=1024 count=40000
mkfs.ext3 -F /root/tmpMnt
# mount it at /tmp
mv /tmp /tmp.backup
mkdir /tmp
mount -o loop,noexec,nosuid,rw /root/tmpMnt /tmp
chmod 0777 /tmp
# make it so it is used on boot up
if ! grep -qai tmpMnt /etc/fstab ; then 
     echo &quot;/root/tmpMnt /tmp ext3 loop,noexec,nosuid,rw  0 0&quot; &gt;&gt; /etc/fstab
fi
# check your syntax is ok
mount -a
# check that programs in /tmp will not run
cp /bin/ls /tmp/
/tmp/ls
[/code]

Pour remonter /tmp avec droits d'execution :

[code bash]
# umount /tmp
# mount -o loop,rw /root/tmpMnt /tmp
[/code]

Et remonter la partition sans les droits d'execution :

[code bash]
# umount /tmp
# mount -o loop,noexec,nosuid,rw /root/tmpMnt /tmp
[/code]</summary>
</entry>
<entry>
  <title>[Ubuntu] Intégrer Subversion dans Nautilus</title>
  <link href="http://snippets.prendreuncafe.com/snippet/50"></link>
  <updated>2007-01-30T15:51:46Z</updated>
  <id>50</id>
  <summary type="html">SVN dans Nautilus via un clic droit, c'est possible :
[code]
$ sudo apt-get install nautilus-script-collection-svn
$ nautilus-script-manager enable Subversion
[/code]

Merci glooze ;)</summary>
</entry>
</feed>