Macsim's mind: $tail -f macsim

Aller au contenu | Aller au menu | Aller à la recherche

Balise - Debian

lundi, avril 27 2009

Accélérer le boot de debian et ubuntu

Dans le fichier /etc/init.d/rc au niveau de la ligne 32 on trouve l'option CONCURRENCY=none avec ce bloc:

Specify method used to enable concurrent init.d scripts.
Valid options are 'none', 'shell' and 'startpar'.  To enable the
concurrent boot option, the init.d script order must allow for
concurrency.  This is not the case with the default boot sequence in
Debian as of 2008-01-20.  Before enabling concurrency, one need to
check the sequence values of all boot scripts, and make sure only
scripts that can be started in parallel have the same sequence
number, and that a scripts dependencies have a earlier sequence
number. See the insserv package for a away to reorder the boot
automatically to allow this.

Ce qui donne grosso-modo:

Spécifier la méthode utilisée pour le mode concurrent des scripts init.d.
Les options valides sont 'none','shell' et 'startpar'.
Pour activer l'option concurrente au boot, les scripts init.d doivent être ordonnées
pour permettre la concurrence. Ce n'est plus le cas avec les séquences de boot par défaut
 dans Debian depuis le 20-01-2008.
Avant d'activer la concurrence, la valeurs des séquences de tous les scripts de boot doivent
êtres vérifiées et il faut s'assurer que seul les scripts qui peuvent être lancés en parallèle
ont le même numéro de séquence et que les dépendances des scripts ont un numéro de séquence inférieur.
Jetez un coup d'oeil au package insserv pour permettre un réordonnement automatique du boot.

L'option 'startpar' fait un lancement en parallel des scripts init.d avec une sortie sérialisée. 

L'option 'shell' semble si j'ai bien compris générer un cache de lecture “readahead".

Après avoir essayé l'option shell je tombe vraiment sur un résultat intéressant.

Le temps comprend le démarrage d'une debian sid depuis grub jusqu'à GDM dans une machine virtuelle virtualbox.

  • Avec l'option 'none' je mets 49,74 secondes
  • Avec l'option 'startpar' je mets 35,12 secondes.
  • Avec l'option 'shell' je mets 28,16 secondes.

Pour ma part voici comment j'ai reconfiguré le tout.

Pour optimiser le démarrage j'ai installé insserv que je ne connaissait pas du tout, j'ai lancer update-bootsystem-insserv pour optimiser les scripts init.d.

Ça marche plutôt pas mal.

Je n'ai pas testé sur ubuntu mais l'option est bien présente dans /etc/init.d/rc si vous avez des résultats concluant fates le moi savoir.

non
Article intéressant ?
oui
44%
56%
188 vote(s)

mardi, avril 21 2009

Vider la memoire cache

Pour vider la mémoire cache d'un poste GNU/Linux et arréter de stresser avec des résultat comme ça:
(oh moman il me reste juste 183Mo de libre ;)



Il faut taper en root:

 #sync;echo 3 > /proc/sys/vm/drop_caches
 Et voilà la ram après:


non
Article intéressant ?
oui
47%
53%
180 vote(s)

jeudi, février 5 2009

La commande history

Je profite de mon dernier billet pour faire un petit rappel sur la commande history

La commande history est une commande shell qui permet d'avoir l'historique des dernières commandes tapées dans le terminal.

C'est de cette liste de commande dont dépend les touches HAUT et BAS lorsque vous appuyez dessus.

Lorsque l'on tape history on obtiens la liste des 500 dernières commandes tapées.

Ces commandes sont précédées d'un nombre, plus le nombre est grand plus la commande est récente.

Si on tape dans un terminal !X on exécutera la commande qui porte le numéro X dans l'historique.

Exemple:



Si on tape !! on exécutera la dernière commande de l'historique.

Exemple:

 />
<p>
On peut aussi taper juste le debut d'une commande après le <strong>!</strong></p>
<p>Exemple</p>
<img src=

On peut aussi faire suivre le ! par le début de la commande

Exemple:

Dans cet exemple en tapant !echo je fait exécuter la dernière commande de l'historique qui commence par echo

Pour vider l'historique il faut faire:

history -c

Par defaut les 500 dernières commandes sont mémorisées, la variable qui gère ça est $HISTSIZE

si on met cette variable a 0 on empêche le mécanisme d'historique des commandes.

$HISTSIZE=0

pour le rendre permanent il faut mettre la commande dans ~/.bash_profile

$echo HISTSIZE=0 >> ~/.bash_profile

Il suffit de se reconnecter ou de taper

. ~/.bash_profile

pour que la modification prennent effet.


non
Article intéressant ?
oui
48%
52%
219 vote(s)

Astuce quand on oubli le sudo

Si comme moi vous oubliez souvent de mettre sudo devant une commande nécessitant les droits admin il y a une méthode qui fait gagner du temps.

Exemple j'essaye d'installer apache en tant que simple utilisateur:



Il suffit de lancer

$sudo !!

pour rééxécuter la derniere commande en la précédant de sudo.





non
Article intéressant ?
oui
54%
46%
199 vote(s)

vendredi, septembre 26 2008

SmsAlert 2 Compatible Ubuntu

Suite à mon précédent billet :

Sms Alert : Envoyer des sms gratuitement depuis vos serveurs

J'ai eu beaucoup de retours par e-mail et de commentaires au sujet d'un problème avec Ubuntu.

Les vacances passé, le travail repris je sors de ma moulitude et propose enfin une version qui fonctionne pour Ubuntu (merci beaucoup à Seza) et un petit bonus offert par un contributeur qui désire rester anonyme.

Pour ce qui est de l'installation et la configuration rien ne change il suffit de suivre scrupuleusement le premier billet.

Les modifications :

  • Le problème de temps (+1heure -1heures) est définitivement réglé.
  • Le fichier temporaire créé par MyCurl.php est supprimé après envoi.
  • SmsAlert fonctionne maintenant sur Ubuntu.
  • Suppression de sms_plan.php, pour planifier un message il suffit d'utiliser cron.

La nouvelle version est disponible ici

Bonus

J'ai donc reçu ce code source qui permet d'ajouter des messages en passant par une page web, je livre le code tel quel il est disponible ici.

Merci à lui. Amusez vous bien et n'abusez pas du système.

non
Article intéressant ?
oui
49%
51%
150 vote(s)

mardi, juillet 15 2008

OpenVPN dans un domU

Je n'ai pas d'interface tunX dans un domU debian, pour lancer openvpn j'ajoute dans /etc/init.d/openvpn

mkdir /dev/net

mknod /dev/net/tun c 10 200

Si vous connaissez mieux.

non
Article intéressant ?
oui
54%
46%
128 vote(s)

vendredi, juillet 11 2008

SmsAlert : Envoyer des sms gratuitement depuis ses serveurs

EDIT: La version est maintenant compatible Ubuntu lire ce billet

Je me permet de faire passer ce billet sur le planetlibre car je pense qu'il pourra servir à certains d'entre nous et je n'étais pas inscrit à l'époque, l'original date du 15-02-2008.


Il y a quelques jours je me demandais comment être alerté gratuitement par sms depuis mes serveurs en cas de soucis ou panne. Alors après avoir épluché google et parcouru une dizaine de sites gratuits mais payant (cherchez l'erreur) après avoir demandé à mes connaissances et ne trouvant pas de solution j'ai fini par pondre la solution suivante, alors oui ce n'est pas parfait, oui ce n'est pas 100% libres, oui c'est du bidouillage, mais bon ça fait ce que je veux, comme je le veux.


Alors pour cette recette j'ai besoin :


Premièrement je vais créer un compte sur google calendar.



Une fois le compte créé je vais surGoogle Calendar je clique sur la flèche à côté de mon agenda:


et je choisis notification.

Une fois sur la fenêtre des options de notification je clique sur : "Configurez votre mobile pour recevoir des notifications".



Dans la fenêtre de paramètre je saisis mon numéro de mobile, je clique sur "Envoyer le code de vérification".



Je reçois un texto du genre:

Votre code de vérification de Google Agenda est XXXXXX


Je saisi le code et "Terminer la configuration."

Maintenant dans la fenêtre de notification je choisis d'envoyer par défaut un rappel via SMS.



Voilà tout est bon, passons maintenant à smsalert.
J'ai créé deux fichiers d'envoi de sms (sms.php et sms_plan.php) qui utilisent les deux excellentes classes de Mr Alexander Skakunov.

cd ~
wget http://macsim.labolinux.net/upload/smsalert2.tar.gz
tar zxvf smsalert.tar.gz
cd smsalert


Quelques explications:

Dans le dossier il y a deux classes GoogleCalendarWrapper et MyCurl, j'ai légèrement retouché ces deux classes.
J'ai ajouté l'ajout de notification dans les nouveaux évènement et j'ai changé le chemin des logs curl.
Le principal soucis c'est que google calendar ne permet pas de notification inférieure à 5 minutes ce qui est normal pour utilisation classique de google calendar. J'ai donc rusé, sms.php ajoute l'évènement 5 minutes et 30 secondes après l'instant T.

Configuration:

Maintenant j'édite sms.php et sms_plan.php pour modifier la ligne:

$gc = new GoogleCalendarWrapper("VOTRE_MAIL", "VOTRE_PASS");

avec mon compte google.

Voila la configuration est terminée.
Il n'y a plus qu'à utiliser.


Utilisation de sms.php

Sms.php permet d'envoyer un sms en ajoutant l'évènement 5 minutes et 30 secondes après l'instant T.
Ce qui réalise un envoi presque immédiat.

Syntaxe:

$php sms.php "TITRE" "MESSAGE"

Exemple:

$php sms.php "Serveur Mail" "Reboot"


et dans les 30secondes qui suivent on reçoit le sms.
J'utilise sms.php pour mes scripts avec cron.

Utilisation de sms_plan.php

Sms_plan.php lui ajoute un évènement à une heure précise pour planifier quelque chose.
Syntaxe:

(L'heure doit être de la forme HH:MM).


$php sms_plan.php "TITRE" "MESSAGE" HEURE


Exemple:

$php sms_plan.php "Serveur Mail" "Reboot dans 1h" 16:00.


Voilà le système est près.
Alors, quels sont les avantages de cette méthode, premièrement elle permet d'être informé rapidement d'un incident sur un serveur par sms, deuxièmement l'agenda google gardera une trace de ces évènements et pour finir c'est gratuit ;).
Si vous connaissez un meilleur moyen de réaliser ça je suis preneur.
Si vous voulez ajouter les évènements sur un autre agenda que celui par défaut, l'explication est dans les fichiers sms.php et sms_plan.php.

non
Article intéressant ?
oui
38%
62%
152 vote(s)

mercredi, septembre 5 2007

DatabaseError: file is encrypted or is not a database avec trac

Aujourd'hui j'ai rencontré cette charmante erreur avec trac j'ai rien trouvé en français pour résoudre le problème alors si ça peut aider les anglophobes.

Traceback (most recent call last):
File "/usr/share/trac/cgi-bin/trac.cgi", line 20, in ?
cgi_frontend.run()
File "/var/lib/python-support/python2.4/trac/web/cgi_frontend.py", line 68, in run
gateway.run(dispatch_request)
File "/var/lib/python-support/python2.4/trac/web/wsgi.py", line 87, in run
response = application(self.environ, self._start_response)
File "/var/lib/python-support/python2.4/trac/web/main.py", line 377, in dispatch_request
env = _open_environment(env_path, run_once=run_once)
File "/var/lib/python-support/python2.4/trac/web/main.py", line 51, in _open_environment
return open_environment(env_path)
File "/var/lib/python-support/python2.4/trac/env.py", line 435, in open_environment
if env.needs_upgrade():
File "/var/lib/python-support/python2.4/trac/env.py", line 315, in needs_upgrade
if participant.environment_needs_upgrade(db):
File "/var/lib/python-support/python2.4/trac/env.py", line 369, in environment_needs_upgrade
dbver = self.env.get_version(db)
File "/var/lib/python-support/python2.4/trac/env.py", line 236, in get_version
cursor.execute("SELECT value FROM system WHERE name='database_version'")
File "/var/lib/python-support/python2.4/trac/db/util.py", line 51, in execute
return self.cursor.execute(sql)
File "/var/lib/python-support/python2.4/trac/db/sqlite_backend.py", line 56, in execute
args or [])
File "/var/lib/python-support/python2.4/trac/db/sqlite_backend.py", line 48, in _rollback_on_error
return function(self, *args, **kwargs)
DatabaseError: file is encrypted or is not a database

Pour résoudre le problème:

#aptitude install sqlite
#find CHEMIN_VERS_LES_INSTANCES_TRACS -iname "trac.db" | xargs -i bash -c "mv {} {}.2; sqlite {}.2 .dump | sqlite3 {};"
#chown www-data\: CHEMIN_VERS_LES_INSTANCES_TRACS/. -R

Et ça devrait rouler.

non
Article intéressant ?
oui
48%
52%
109 vote(s)

mardi, novembre 14 2006

Dunk-Tank, les bonnes questions, posées intelligemment


Le blog de Sukria, m'informe de ce mail, qui décrit de façon intelligente toute la problématique de Dunk-Tank.

non
Article intéressant ?
oui
49%
51%
90 vote(s)

dimanche, novembre 5 2006

Utiliser le système de suivit de bug (BTS) de debian.

J'ai réalisé la traduction d'un post sur http://www.debian-administration.org de jamesw.
Cet article est intitulé Using the Debian bug-tracking system.
Il représente une introduction à l'utilisation du système de suivit de bug de debian.


Au sommaire:
  1. Regarder un bug.
  2. Etat (States), Sévérité (Severities) et Etiquette (Tags).
  3. Reporter un bug.
  4. Ajouter à un bug.
  5. Manipuler les bugs.
  6. Fermer et réouvrir des bugs.
  7. Autres astuces.
Merci de me faire parvenir les coquilles.

Lire la suite

non
Article intéressant ?
oui
55%
45%
85 vote(s)

samedi, septembre 30 2006

[Archive] Debian

Archive de la section Debian de l'ancien blog.
Contenu:
  1. - Guide d'installation de la Debian Sarge en Français.
  2. - Enlightment 17 sous debian.
  3. - Prelink pour optimiser vos programmes.
  4. - Virer des vieux fichiers de configuration.
  5. - Erreur [ Waiting 2 sec for /sys/block/hda/dev ].

Lire la suite

non
Article intéressant ?
oui
57%
43%
101 vote(s)