2011-03-13 21:42

Voici les quelques lignes que j’utilise pour sauvegarder mes bases de données MySQL sur mon serveur Debian :

#!/bin/sh
# This will dump all your databases

DATE=$(date +%Y%m%d%H%M)

for DB in $(echo "show databases" | mysql --defaults-file=/etc/mysql/debian.cnf -N)
do
        mysqldump --defaults-file=/etc/mysql/debian.cnf $DB > /backup/mysql/${DB}_${DATE}.sql

        gzip /backup/mysql/${DB}_${DATE}.sql
done

# purge old dumps
find /backup/mysql/ -name "*.sql*" -mtime +8 -exec rm -vf {} \;

Vous pouvez le lancer via un cron :

11 1 * * * /usr/local/bin/mysqldump.sh > /tmp/mysqldump.log

De cette manière, toute erreur affichée par le script sera envoyée par mail à l’utilisateur root (adresse configurée dans /etc/aliases).

Sous une autre distribution que Debian, s’il n’existe pas un fichier de mot de passe équivalent dans /etc/mysql/, vous devrez en créer un.

2011-03-13 21:42 · Tags: , ,
2010-11-30 21:11

J’ai découvert Clementine il y a quelques temps déjà.

Il n’existe pas de paquet ni sous Ubuntu, ni sous Debian, mais le site officiel fournit un paquet .deb pour votre version d’Ubuntu préférée.
Il existe même en version Mac OS X et Windows…

Un petit clique sur le fichier .deb correspondant à votre distrib Ubuntu devrait suffire pour l’installer.

J’ai testé des tonnes de lecteurs (Amarok, Rythmbox, le vieux XMMS, Exaile, Listen, Totem…).

Clementine est un dérivé d’Amarok, très simplifié, et s’intègre très bien dans Gnome grâce aux librairies Qt4.

Bref, je suis heureux d’avoir découvert ce logiciel, que je vous recommande.

2010-11-30 21:11 · Tags: , , , ,
2010-11-09 23:51

Dans un précédent billet, j’expliquais comment mettre en place un “mangeur de courriel” avec Exim, de manière à se créer des adresses multiples qui redirigent toutes vers la même destination :

catchall_pub:
  driver = redirect
  domains = pub.mondomaine.com
  data = utilisateur@mondomaine.com

Ensuite, j’expliquais que sur l’adresse destination, on pouvait mettre en place un filtre Sieve ou Exim via un fichier .forward.

On peut vouloir mettre en place le filtre directement dans Exim, par soucis de centralisation de configuration, ou tout simplement si la boîte destination ne supporte pas les filtres.

Il suffit d’ajouter l’option local_parts :

catchall_pub:
  driver = redirect
  domains = pub.mondomaine.com
  local_parts = !/etc/exim4/pub.mondomaine.com.blacklist
  data = utilisateur@mondomaine.com

Dans /etc/exim4/pub.mondomaine.com.blacklist, on place les adresses rejetées, une par ligne :

toto1
titi2

Ainsi, les adresses toto1@pub.mondomaine.com et titi2@pub.mondomaine.com sont désormais rejetées.

Doc Exim4 :

2010-11-09 23:51 · Tags: , , ,
2010-10-11 00:45

Par défaut sous Debian, ProFTPD utilise uniquement la base d’utilisateurs système de /etc/passwd.

Pour ajouter des utilisateurs “virtuels”, il faut procéder comme suit :

Dans /etc/proftpd/proftpd.conf :

DefaultRoot ~
AuthUserFile /etc/proftpd/ftpd.passwd
RequireValidShell off

Puis relancer proftpd : /etc/init.d/proftpd restart

Fichier des utilisateurs :

vi /etc/proftpd/ftpd.passwd
username:HASH:1011:1011:MyUserName:/home/ftp/directory:/bin/true

Vous pouvez générer les lignes du fichier à l’aide de la commande ftpasswd, mais je trouve plus simple de générer le mot de passe avec la commande :

mkpasswd --hash=md5

Puis collez le HASH dans le fichier des mots de passe.

On corrige les droits du fichier de mot de passe :

chown proftpd /etc/proftpd/ftpd.passwd
chmod go-r /etc/proftpd/ftpd.passwd

Enfin, il suffit de tester.

Liens :

2010-10-11 00:45 · Tags: ,
2010-07-05 22:19

NetHack, un des meilleurs jeux qui soient.

Je trouve le thème des tuiles par défaut dans xnethack assez laid. Sous Debian / Ubuntu (paquet nethack-x11), le fichier des tuiles est obligatoirement au format XPM. Il est configuré dans le fichier /etc/X11/app-defaults/NetHack avec le xpm : /usr/share/pixmaps/nethack/x11tiles.

Le fichier doit être au format XPM, avoir une certaine taille, et pas trop de couleurs différentes, sinon le temps de chargement explose chez moi (plusieurs minutes).

Voici comment le modifier sous Debian / Ubuntu :

  1. Exemple : sur la page http://www.multifoliate.com/nh/, récupérez le fichier chozo32b.zip (lien NetHack 3.4.2 (32×32) (modified by me)). L’extraire pour obtenir chozo32b.bmp.
  2. L’ouvrir avec Gimp et le recouper à la taille 1280×864 (pour supprimer le noir inutile en bas). Vous pouvez indexer l’image en 256 couleurs puis l’enregistrer en XPM, ça fonctionne mais c’est moche.
  3. Pour avoir mieux, l’enregistrer au format PNG.
  4. Installer le paquet imagemagick, puis : convert -depth 5 chozo32b.png chozo5.png
  5. Ouvrir chozo5.png avec Gimp puis l’enregistrer au format XPM.
  6. Éditez /etc/X11/app-defaults/NetHack puis remplacez /usr/share/pixmaps/nethack/x11tiles par le chemin vers chozo5.xpm.
  7. Enfin, rechargez les ressources X : xrdb -merge /etc/X11/app-defaults/NetHack
  8. Lancez votre jeu favori : xnethack

MAJ 20100921
Le fichier final gzippé : chozo5.xpm.gz

Notes :

  • convert enregistre systématiquement les xpm en 256 couleurs, je ne sais pas pourquoi.
  • head image.xpm vous donne les première lignes du fichier XPM qui contiennent le nombre de couleurs différentes.
  • Les tuiles de Abigada sont celles par défaut dans la version IPhone de NetHack.

Liens :

2010-07-05 22:19 · Tags: , , ,
2010-05-24 23:52

L’idée est d’avoir à disposition un ensemble d’adresses nimportequoi@pub.mondomaine.com qui redirigent toutes vers une seule boîte. Ainsi, je peux utiliser n’importe quelle adresse @pub.mondomaine.com comme alias vers ma boîte principale.
De cette manière, je donne l’adresse ebay@pub.mondomaine.com chez Ebay, amazon@pub.mondomaine.com chez Amazon, et ainsi de suite.

L’avantage de cette solution est que je peux désactiver un alias si la désinscription sur le site ne suffit pas. Elle permet aussi de détecter les sites qui revendent votre adresse à d’autres sites.

En premier lieu, il faut qu’Exim écoute sur le réseau, et qu’il accepte les courriels à destination du domaine pub.mondomaine.com. Sous Debian, on place les directives suivantes dans /etc/exim4/update-exim4.conf.conf :

dc_local_interfaces='0.0.0.0'
dc_relay_domains='pub.mondomaine.com'

Note : sous Debian, à chaque démarrage d’Exim le fichier /etc/exim4/exim4.conf.template est rempli avec les variables définies dans /etc/exim4/update-exim4.conf.conf, pour produire le fichier /var/lib/exim4/config.autogenerated. Ceci afin de simplifier la configuration d’Exim dans les cas “standards”.

Éditer ensuite le fichier /etc/exim4/exim4.conf.template pour ajouter un nouveau router, en tant que premier router juste en dessous de begin routers :

catchall_pub:
  driver = redirect
  domains = pub.mondomaine.com
  data = utilisateur@mondomaine.com

Le router sera appelé pour tout mail @pub.mondomaine.com. Il confie tous les mails au transport redirect qui les enverra vers l’adresse spécifiée dans data.

Enfin, on pourra ensuite utiliser un fichier /home/utilisateur/.forward pour désactiver les alias à l’aide d’un filtre Sieve ou Exim.

MAJ 10/11/2010 : une autre manière de désactiver les alias

Références :

2010-05-24 23:52 · Tags: , , ,
2010-05-20 23:53

La copie de CD audio n’est actuellement pas possible sous Ubuntu Lucid avec Brasero en raison d’un vilain bug.

Pour le contourner il faut installer cdrdao version 1.2.3, qui n’est pas encore sous forme de paquet.

Pour l’installer, on peut utiliser CheckInstall, pour faire un peu plus propre qu’un vieux make install :

tar -xjvf cdrdao-1.2.3.tar.bz2
cd cdrdao-1.2.3/
./configure
make
sudo checkinstall make install

Note : la commande make échouera peut-être à cause d’un paquet de développement manquant qu’il vous faudra installer.

CheckInstall vous crée et vous installe un beau paquet Debian.

On peut aussi utiliser cdrdao directement. Un ps axf nous donne la commande utilisée par Brasero :

cdrdao read-cd --device /dev/sr0 --read-raw --datafile /home/dooblem/brasero.toc.bin -v 2 /home/dooblem/brasero.toc

Et voila le travail !

Liens :

2010-05-20 23:53 · Tags: , , , , , , ,
2010-03-09 22:11

Voici un petit programme en C que j’ai écrit il y a maintenant quelques années, mais qui est bien pratique et que j’utilise encore pour regarder mes films : Clictap.

Le programme utilise les bibliothèques Xlib et Xtest pour remplacer vos boutons de souris par des touches clavier.

J’en ai créé un petit paquet Debian il y a quelques jours :

clictap_0.6-1_i386.deb

bientôt une inclusion dans les dépots officiels ?

Exemple de fichier de configuration contenant des profils pour totem, xmms, rhythmbox et mplayer :

# ClicTap configuration file
# You can copy this example to ~/.clictap.conf

# When this key is pressed, Clictap will ungrab your mouse and quit
# Examples :
# quit_key q
# quit_key ctrl+q
quit_key q

# Profile used by default
default_profile mplayer

# List of profiles
# For each profile, a set of buttons to keys translations is given,
# each translation on a separate line.
# For a translation, the first field is the set of buttons,
# the second is the set of keys.
# Buttons are specified by their numbers.
# Keys are specified by their KeySym (Key Symbols).
# To know the button numbers and KeySyms, use the xev program to test X events.
# Example :
#
# profile foo
# 	1   a
# 	2   b+c
# 	3+1 space
# 	3+2 Control_L+d

profile totem
	1 b
	2 p
	3 n
	4 Up
	5 Down

profile xmms
	1 w
	2 c
	3 b
	4 Up
	5 Down

profile rhythmbox
	1 Alt_L+Left
	2 Control_L+space
	3 Alt_L+Right
	4 Control_L+Up
	5 Control_L+Down

profile mplayer
	1 Left
	2 space
	3 Right
	4 asterisk
	5 KP_Divide

profile mplayersub
	1 x
	2 space
	3 z
	4 asterisk
	5 KP_Divide

profile test
	1 XF86AudioLowerVolume
	2 space
	3 z
	4 asterisk
	5 KP_Divide
2010-03-09 22:11 · Tags: , , , ,
2010-02-10 19:38

Sous Debian / Ubuntu, la méthode la plus connue pour supprimer un service du démarrage du système, sans désinstaller le paquet :

update-rc.d -f mysql remove

Cette commande supprime tous les liens symbolique /etc/rc*/*mysql*. Au prochain démarrage, le service ne sera pas lancé.

Problème : à la moindre mise à jour du paquet mysql (aptitude update), les liens sont créés de nouveau.

Solution : dans les dernière version, il existe les fonctions disable / enable pour la commande update-rc.d :

update-rc.d mysql disable

Utile si comme moi vous démarrez apache ou mysql seulement de temps en temps pour faire du développement Web. Utile aussi si vous faites du partage de fichiers Samba et que vous voulez lancer le démon occasionnellement.

Note : update-rc.d --help nous indique que l’API disable / enable changera peut-être à l’avenir.

Références :

2010-02-10 19:38 · Tags: ,
2009-07-07 17:02

Voici comment créer un filtre système dans Exim4, pour envoyer certains mails dans un script Bash.

Sous Debian, on ajoute les lignes suivantes dans /etc/exim4/exim4.conf.template :

system_filter = /etc/exim4/exim.filter
system_filter_pipe_transport = address_pipe
system_filter_user = Debian-exim

Et le filtre /etc/exim4/exim.filter contient par exemple :

if $h_subject: begins "[MyTest]" and
  $h_to: contains mytest@example.com
then
       unseen pipe /usr/local/bin/myscript.sh
endif 

Dans le script .sh, on pourra récupérer le mail complet par l’instruction :

MAIL=`cat`

Notes :

  • Le transport “address_pipe” est décrit un peu plus bas dans le fichier de configuration d’Exim.
  • Si on ne place pas la directive “system_filter_user”, le script serait lancé en root, et Exim le refuse.

Lien : http://www.exim.org/exim-html-current/doc/html/filter.html

2009-07-07 17:02 · Tags: ,