Sauvegarder un fichier sous vim même si vous n’avez pas les droits

Problème

Vous êtes en user et vous éditez un fichier dans /etc/ sans passer par sudo.

vi /etc/apache2/apache2.conf

Une fois vos modifications terminées vous sauvegardez:

:w

E45: L’option ‘readonly’ est activée (ajoutez ! pour passer outre)

La sauvegarde des modifications n’est pas possible car le fichier n’est pas accessible en écriture pour votre user.

Solution

:w !sudo tee %

Tester le débit maximum (in) d’un serveur

wget http://test-debit.free.fr/16384.rnd -O /dev/null

Envoyer des emails en ligne de commande sous Linux

Email simple

echo "Corps du message." | mail -s "Sujet de l'email" contact@domaine.com

Email avec fichier de log dans le corps du message

mail -s "Sujet de l'email" contact@domaine.com < /var/log/apache2/error.log

Email avec copie et copie cachée

echo "Salut tout le monde" | mail -s "Sujet de l'email" contact@domaine.com -c contact_cc@domaine.com -b contact_bi@domaine.com

Email avec pièce jointe

echo "Envoi d'une pièce jointe." | mutt -a backup.zip -s "Sujet de l'email" contact@domaine.com

Gthumb – Imprimer plusieurs images sur une même page

sudo apt-get install gthumb
gthumb &

App

Geekbench

Geekbench provides a comprehensive set of benchmarks engineered to quickly and accurately measure processor and memory performance. Designed to make benchmarks easy to run and easy to understand, Geekbench takes the guesswork out of producing robust and reliable benchmark results.

Works on Mac OS X, Linux, Solaris, Windows

App

Mettre à jour Flash Player sous Linux

Télécharger l’archive

http://get.adobe.com/fr/flashplayer/

Choisissez .tar.gz comme suit:

Décompresser l’archive

tar xvzf install_flash_player_10_linux.tar.gz

Mise à jour de la librairie flash

sudo cp libflashplayer.so /usr/lib/flashplugin-nonfree/libflashplayer.so

Redémarrer Firefox, (Chrome ?)

App

Linux – Les filtres

cut

cat list

1,un,one,ein
2,deux,two,zwei
3,trois,three,drei
4,quatre,four,vier
5,cinq,five,funf
6,six,six,sechs
7,sept,seven,sieben
8,huit,eight,acht
9,neuf,nine,neun
10,dix,ten,zen

cut –f1,3 –d','

1,one
2,two
3,three
4,four
5,five
6,six
7,seven
8,eight
9,nine
10,ten

cat villes

75000PARIS
59000LILLE
71000MACON
63000CLERMONT-FERRAND

cut –c1-5 villes

75000
59000
71000
63000

cut –c6- villes

PARIS
LILLE
MACON
CLERMONT-FERRAND

sort

cat list

1,un,one,ein
2,deux,two,zwei
3,trois,three,drei
4,quatre,four,vier
5,cinq,five,funf
6,six,six,sechs
7,sept,seven,sieben
8,huit,eight,acht
9,neuf,nine,neun
10,dix,ten,zen

sort +3 –t','  (trie sur la 4ème colonne)

8,huit,eight,acht
3,trois,three,drei
1,un,one,ein
5,cinq,five,funf
9,neuf,nine,neun
6,six,six,sechs
7,sept,seven,sieben
4,quatre,four,vier
10,dix,ten,zen
2,deux,two,zwei

Mettre en veille un disque USB sous Linux

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.

App

App

Une plateforme de micro-blogging Open Source

identi-ca utilise le logiciel Open Source laconi

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

Tracer une Application LAMP avec les logs Apache Blackbox

Logger avec Apache 2.0

C’est grâce au module Apache mod_logio.c (Logging of input and output bytes per request) que nous allons réaliser des logs de type blackbox.

Liste des modules compilés statiquement:
apache2 -l

Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c

Configuration Apache 2.0

# Blackbox log format
<IfModule mod_logio.c>
LogFormat "%a/%S %X %t \"%r\" %s/%>s %{pid}P/%{tid}P %T/%D %I/%O/%B" blackbox
</IfModule>
<IfModule !mod_logio.c>
LogFormat "%a/%S %X %t \"%r\" %s/%>s %{pid}P/%{tid}P %T/%D 0/0/%B" blackbox
</IfModule>
CustomLog /var/opt/apache2/logs/blackbox blackbox

Si le port source du client ne vous intéresse pas, remplacer %S par 0

Attention!

Pour utiliser pleinement les logs de type BlackBox if va falloir patcher le code source mod_log_config.c ou en créant un module de log dédié. Dans les deux cas, un nouveau format permettra à la directive d’enregistrer le port source de la connexion initiée par le client.

Si vous souhaitez logger le port source du client voici les modifications à opérer.  Pour Apache 2.0 cela se trouve dans les sources modules/loggers/mod_log_config.c

Trouver la fonction définit pour log_remote_address. Ajouter la fonction suivante après elle:

/*
 * log_remote_port patch
 */

static const char *log_remote_port(request_rec *r, char *a)
{
        apr_port_t rport;
        apr_sockaddr_port_get(&rport, r->connection->remote_addr);
        return apr_itoa(r->pool, rport);
}

Trouver une fonction initulée log_pre_config à la fin du fichier et ajouter ce qui suit :

static int log_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp)
{
        .....
        log_pfn_register(p, "s", log_status, 1);
        /* log_remote_port patch */
        log_pfn_register(p, "S", log_remote_port, 0);
    }
    return OK
}

Sauvegarder les modifications, puis recompiler Apache.

Grapher avec Munin

Source: http://www.oreillynet.com/pub/a/apache/2004/04/22/blackbox_logs.html


App

Entrainez votre cerveau avec Gbrainy

3 types de jeux sont disponible dans Gbrainy:

  • Puzzle de Logique: conçu pour tester vos capacités de réflexion et de raisonnement.
  • Calcul mental: basé sur des opérations arithmétiques visant à démontrer vos aptitudes au calcul mental.
  • Jeu de Mémoire: conçu pour tester votre mémoire à court terme.
gbrainy_memory

Puzzle de logique

gbrainy offre suffisamment de flexibilité dans le paramétrage du nombre de jeux et de la difficulté des niveaux, le rendant accessible aux enfants, adultes ou seniors.

Il est conçu pour Gnome et tourne sous Linux et Unix. Il existe une version pour Microsoft Windows.

App

Recent Tweets

Catégories