Archives – août, 2009
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: Install, Trac
Posted in App | No Comments »
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: Disque Dur, Linux, USB, Veille
Posted in App | No Comments »
août 25th, 2009
Tags: Bluetooth, Linux, Téléphone
Posted in App | No Comments »
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: Bash, Tips
Posted in System | No Comments »
août 4th, 2009
utilise le logiciel Open Source laconi
La dernière version permet de s’identifier via OpenID, Facebook Connect.
Tags: Blog, Linux, Micro-Blogging, Open Source
Posted in App, Web | No Comments »
Page précédente