Archives – août, 2009

How to – Installer Trac

août 25th, 2009

Télécharger les sources

http://trac.edgewall.org/wiki/TracInstall

Installer Trac

apt-get install trac
mkdir -p /trac/datamatrixed
trac-admin /trac/datamatrixed/ initenv

Creating a new Trac environment at /trac/datamatrixed

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

Please enter the name of your project.
This name will be used in page titles and descriptions.

Project Name [My Project]> DataMatrixed

Please specify the connection string for the database to use.
By default, a local SQLite database is created in the environment
directory. It is also possible to use an already existing
PostgreSQL database (check the Trac documentation for the exact
connection string syntax).

Database connection string [sqlite:db/trac.db]>

Please specify the type of version control system,
By default, it will be svn.

If you don’t want to use Trac with version control integration,
choose the default here and don’t specify a repository directory.
in the next question.

Repository type [svn]>

Please specify the absolute path to the version control
repository, or leave it blank to use Trac without a repository.
You can also set the repository location later.

Path to repository [/path/to/repos]> /usr/local/share/svn/datamatrixed/

Project environment for ‘DataMatrixed’ created.

You may now configure the environment by editing the file:

/trac/datamatrixed/conf/trac.ini

If you’d like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:

tracd --port 8000 /trac/datamatrixed

Then point your browser to http://localhost:8000/datamatrixed.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).

The latest documentation can also always be found on the project
website:

http://trac.edgewall.org/

Congratulations!

Tags: ,
Posted in App | No Comments »

Mettre en veille un disque USB sous Linux

août 25th, 2009

Présentation

Par défaut le moteur du disque dur connecté au Slug tourne constamment.
Afin d’économiser le disque, il est possible de le mettre en veille.
Dans ce cas, le disque s’arrête et redémarrera au prochain accès disque.

Méthode

La première chose à faire est de modifier la méthode de montage des partitions et d’ajouter l’option noatime.
Extrait d’un fichier /etc/fstab

/dev/sda1 / ext3 defaults,noatime 0 1
/dev/sda4 /1data ext3 defaults,noatime 0 2

Explication de ce paramètre noatime
Sur les systèmes de fichiers journalisés (ext3, reiserfs), il existe un attribut sur le fichier qui correspond au dernier accès en lecture.
L’option noatime désactive la mise à jour de cet attribut pour un simple accès en lecture à un fichier.

L’outil qui permet de mettre le disque en veille est sdparm : http://sg.torque.net/sg/sdparm.html

Compiler la dernière version disponible : ./configure, make, make install
Pour DebianSlug, installer le paquet
apt-get install sdparm

- Commande pour mettre le disque en veille :
sdparm –command=stop /dev/sda

Malheureusement, on peut s’apercevoir que cette mise en veille n’est que temporaire.
Le disque redémarre dès qu’un processus accède au disque.

Il va donc falloir partir à la chasse au processus.
Les premiers démons à désactiver au démarrage du slug sont :
update-rc.d -f sysklogd remove
update-rc.d -f klogd remove
update-rc.d -f courier-authdaemon remove
update-rc.d -f courier-mta remove
update-rc.d -f exim4 remove
update-rc.d -f cron remove

ATTENTION : Les mises à jour (via apt-get update) peuvent restaurer le démarrage automatique de ces démons.

Si le spinup intempestif persiste :
- Activer le mode debug du noyau sur les accès disque :
echo 1 > /proc/sys/vm/block_dump
- Le log du noyau est accessible par la commande
dmesg
Ou en mode dynamique :
cat /proc/kmsg

Il nous faut donc maintenant mettre en veille le disque
sdparm --command=stop /dev/sda
Et attendre que le disque se réveille…
Et là, la commande dmesg trahira le processus fautif :
atop(720): dirtied inode 468512 (atop.log) on sda1 : le processus atop a accédé au disque

Le démon cron exécute régulièrement certaines tâches de maintenance, notamment sur les logs.
On doit pouvoir supprimer certains scripts dans les répertoires /etc/cron.*.
Certaines tâches sont lancées une fois par heure (/etc/cron.hourly). On doit pouvoir ne les lancer qu’une fois par semaine en déplaçant les scripts dans /etc/cron/weekly.
Sur mon slug, j’ai supprimé les scripts suivants :
/etc/cron.monthly/standard
/etc/cron.daily/apt
/etc/cron.daily/aptitude
/etc/cron.daily/bsdmainutils
/etc/cron.daily/find
/etc/cron.daily/sysklogd

/etc/cron.daily/logrotate déplacé vers /etc/cron.weekly
/etc/cron.daily/man-db déplacé vers /etc/cron.weekly
/etc/cron.daily/netkit-inetd.dpkg-new déplacé vers /etc/cron.weekly
/etc/cron.daily/standard déplacé vers /etc/cron.weekly

Je ne m’y connais pas, j’ai peut être fait des erreurs. On peut peut être faire encore plus de ménage.

Il reste ensuite à mettre en oeuvre un script surveillant les accès disque et activant le spindown en cas d’inactivité du disque.
Exemple de script :

while true
do
MyDiskStatsNow=`cat /proc/diskstats | grep "sda "`
MyDiskStatsPrev="MyDiskStatsNow"
echo "diskstats : $MyDiskStatsNow"
while [ "$MyDiskStatsNow" != "$MyDiskStatsPrev" ]
do
echo "Activite disque detectee : $MyDiskStatsNow "
MyDiskStatsPrev=$MyDiskStatsNow
sleep 60
MyDiskStatsNow=`cat /proc/diskstats | grep "sda "`
done
echo "Pas d activite detectee! - Spindown actif "
/usr/local/bin/sdparm --command=stop /dev/sda
MyDiskStatsPrev=$MyDiskStatsNow
while [ "$MyDiskStatsNow" == "$MyDiskStatsPrev" ]
do
sleep 60
MyDiskStatsNow=`cat /proc/diskstats | grep "sda "`
done
echo "Prev : $MyDiskStatsPrev"
echo "Now : $MyDiskStatsNow"
echo "Activite disque detectee"
done

Disques pour lesquels cette procédure à été testée
Lacie Porsche USB 2.0 200Go (Western Digital inside)

Tuning

Pour optimiser le spindown, il faut limiter l’accès disque de certains process.
OpenVPN
Editer le fichier /etc/init.d/openvpn
Remplacer la ligne
STATUSREFRESH=10
par
STATUSREFRESH=0

Références

http://linuxfr.org/forums/10/16819.html

http://www.xs4all.nl/~bsamwel/laptop_mode/tools/faq.html

http://www.nslu2-linux.org/wiki/FAQ/SpinDownUSBHarddisks

http://www.faqs.org/docs/securing/chap6sec73.html

http://jfontain.free.fr/diskstats/diskstats.htm

Je suis toujours à la recherche de la source de cet article.
Si vous êtes l’auteur de cet article n’hésitez pas à vous manifester.

Tags: , , ,
Posted in App | No Comments »

Bluetooth et téléphone mobile sous Linux

août 25th, 2009

bluetooth-retro-phone-handset

Tags: , ,
Posted in App | No Comments »

Bash – Manipulation date et heure

août 4th, 2009

En théorie

Date

%a abréviation locale du jour de la semaine (Sun..Sat)
%A nom local du jour de la semaine (Sunday..Saturday)
%b abréviation locale du nom du mois (Jan..Dec)
%B nom local du mois (January..December)
%c date et heure locales (Sat Nov 04 12:02:33 EST
1989)
%d jour du mois (01..31)
%D date (mm/jj/aa)
%h comme %b
%j jour de l’année (001..366)
%m mois (01..12)
%U numéro de semaine dans l’année (00..53). La semaine
commence le Dimanche.
%w Jour de la semaine (0..6). Le 0 correspond au
Dimanche.
%W numéro de semaine dans l’année (00..53). La semaine
commence le Lundi.
%x représentation locale de la date (mm/jj/aa)
%y deux derniers chiffres de l’année (00..99)
%Y année (1970…)

Heure

%H heure (00..23)
%I heure (01..12)
%k heure ( 0..23)
%l heure ( 1..12)
%M minute (00..59)
%p notation locale pour AM ou PM.
%r heure actuelle (sur 12 heures) (hh:mm:ss [AP]M)
%s secondes écoulées depuis le 01-01-1970 à 00:00:00
T.U (extension non standard)
%S secondes (00..61)
%T heure actuelle, (sur 24 heures) (hh:mm:ss)
%X représentation locale de l’heure (%H:%M:%S)
%Z fuseau horaire (par ex. MET), ou rien si le fuseau
horaire n’est pas déterminé

Quelques exemples

Aujourd’hui

date ‘+%d-%m-%Y’
17-07-2009

date ‘+%d-%-m-%Y’
17-7-2009

date ‘+%d-%-m-%Y’
17- 7-2009

Hier

date ‘+%d-%m-%Y’ –date ’1 days ago’
16-07-2009

1 semaine en arrière

date ‘+%d-%m-%Y’ –date ’1 weeks ago’
10-07-2009

1 mois en arrière

date ‘+%d-%m-%Y’ –date ’1 months ago’
17-06-2009

Dans 96 jours

date ‘+%d-%m-%Y’ –date ’96 days’
21-10-2009

Générer une liste d’id unique basée sur le temps:

for i in $(seq 1 100); do sleep 1; date ‘+%s’  ; done
1247832772
1247832773
1247832774
1247832775
1247832776
1247832777
1247832778
1247832779
1247832780
1247832781
1247832782
1247832783

Tags: ,
Posted in System | No Comments »

Une plateforme de micro-blogging Open Source

août 4th, 2009

identi-ca utilise le logiciel Open Source laconi

La dernière version permet de s’identifier via OpenID, Facebook Connect.

Tags: , , ,
Posted in App, Web | No Comments »

Page précédente