Archives pour la catégorie Administration

Commandes linux sympa

Bijour à tous …

Aujourd’hui, un tout pitit article sur les commandes systèmes qui peuvent être utile.

Mais pourquoi?? :p

Bé voilà, je me suis rendu compte que ben s’amuser à faire un top, c’était pas top (^.^) pour avoir des info précises sur tel processus, ou bien, connaître l’état des disques quand on a pas accès à nautilus ou baobab …

Donc voilà, quelques commandes et enchevêtrement de commande qui rappelleront bien des souvenirs (des heures de joie de TP qui défile devant les yeux :p) aux DUTs info qui passe par là (bien sûr, y’en a d’autre, pour faire la même chose, mais celle-là ) :

  • Récupération des processus en affichant seulement : l’utilisateur, le pid, la commande, la conso CPU et RAM, le temps CPU :
    • ps aux|tr -s [:space:]|cut -d »  » -f1-4,8,9,11|sort -k3
    • Explication : le tr permet de supprimer les espaces en trop, pour permettre à cut le découpage des colonnes et sort -k3 pour le trie sur la conso CPU
    • On peut aussi réduire un peu l’affichage sur les dix derniers/premiers via un head -10 ou un tail -10
  • Utilisation du randomisateur : (inutile, mais …) (vu sur korben ^^)
    • cat /dev/urandom | tr -dc 0-9 | head -c6 (récupération de 8 chiffres aléatoires)
    • cat /dev/urandom | tr -dc a-zA-Z | head -c5 (récupération de 8 lettres aléatoires)
    • et … vous aurez compris le principe, ça peut être utile dans des scripts ou pour générer des pass.
  • Affichage de la consommation memoire et swap
    • cat /proc/meminfo | egrep ‘^(Swap[TF]|Mem).*’
    • Utilisation d’une regex pour s’arrêter au Swap et à la mémoire …
  • Récupérer les fichiers .conf modifiés il y a moins de deux jours dans le dossier /etc
    • find /etc -maxdepth 3 -name *.conf -mtime -2

Autant les premiers on s’en fout un peu … autant le dernier peut être très utile 😉

Système d’alerte via SMS sur vos serveurs grace à google calendar.

Bijour à tous …

Aujourd’hui, juste un lien vers le blog de macsim, (pour ceux qui ne l’aurait pas dans leurs RSS), qui à pondu un superbe script (PHP) pour utiliser le système d’évenement de Google Calendar, pour envoyer des SMS (et ajouter l’évenement dans Google Calendar), lors de diverses actions sur vos serveurs …

Pour l’installer il vous faut PHP-Cli, ainsi que l’extension Curl de PHP. (J’ai fait le tour du code … ça à l’air sérieux …, sauf peut-être l’utilisation de Curl … utiliser des Sockets, aurait permit de sauter cette extension, qui n’est pas installé chez tous les hébergeurs …).

J’vais peut être tenter d’améliorer le truc en faisant un plugins pour WordPress pour recevoir des SMS lorsque des commentaires sont postés ^^. (J’ai plus de commentaire indésirable que de réelle commentaire … donc ça ne sera surement pas utile ^^, mais pour le fun …).

Utiliser Google App pour gérer son Domaine

Bijour à vous …

Alors voilà … jusqu’à maintenant, j’hébergeais pas mal de chose moi même (serveur http,mail et …), et pis bon ben les temps change … après avoir hébergé pendant 3 ans mes serveurs, j’ai du changer de méthode car maintenant je suis chez estvideo connu pour ses quotas, donc il n’était plus question d’héberger moi-même mon contenu (1 à 2 Go d’up par jours de donnée http seulement, sans compter les serveurs de jeu à ~3GO d’up par jour et les mails … 100Mo ^^), en 1 semaine j’aurais déjà explosé mes quotas (20Go).

Et je suis tombé par hasard sur le message « Gérer votre domaine avec google » sur gmail et je suis tombé sur ça, ça permet d’utiliser les services (gmail, agenda, site, talk, document) de google gratuitement sur son propre domaine … (un grand mot … une redirection en vrai).

Mais bon … le service de mail de google étant très performant, j’ai donc configuré mon serveur DNS pour utiliser les MX de google pour les mails :

Préférence : Domaine : TTL :
5 ALT1.ASPMX.L.GOOGLE.COM. par défaut
1 ASPMX.L.GOOGLE.COM. par défaut
5 ALT2.ASPMX.L.GOOGLE.COM. par défaut
10 ASPMX2.GOOGLEMAIL.COM. par défaut
10 ASPMX3.GOOGLEMAIL.COM. par défaut
10 ASPMX4.GOOGLEMAIL.COM. par défaut
10 ASPMX5.GOOGLEMAIL.COM. par défaut

et fait les CNAME pour rediriger mon domaine vers ghs.google.com :

Sous-Domaine :
Domaine : TTL :
mail ghs.google.com. par défaut
docs ghs.google.com. par défaut
agenda ghs.google.com. par défaut

Donc maintenant, je peux accéder au webmail de google en passant par mail.gaetan-grigis.eu, mon « google calendar » par agenda.gaetan-grigis.eu et docs.gaetan-grigis.eu pour les « google documents ».

Il vous faut bien entendu activer votre domaine auprès de google (simple vérification, pour prouver qu’on est bien le proprio du domaine …).

Alors bon, comme dit, si vous allez sur ces adresses, vous serez en vrai redirigé, ce que je trouve bof bof, mais bon … faire style : lorsqu’on vous demande votre adresse gmail pour partager des docs ou autre et donner une adresse genre loup-zeur[\at/]gaetan-grigis.eu et dire que c’est rattaché au domaine de google on passe tout de suite pour un boss des réseaux ^.^ moi, geek?! meuh non 😉

Sinon, niveau service fournit, c’est pas mal du tout … on peut créer des mailing-list, des alias, des groupes, et possibilité de partage entre les groupes et …

Donc voilà … vous avez peur de monter un serveur mail, vous avez un ndd mais pas d’adresse mail lié au domaine, ou vous voulez tous simplement aider google à contrôler votre vie ? essayé Google App !! 🙂

gérer des sous-domaines à la volés via de l’url rewriting

Bijour à tous …

Ce soir … une astuce des plus inutile (et oui … je commence à les aligner).

J’explique quand même un peu l’idée :

Je travail sur un projet de site web un peu spécial (encore à l’état de concept pour le moment). Et l’idée du site était de fournir une url assez simple pour chaque membre du site (dans le genre www.site.fr/pseudo), pour afficher des informations sur le membre …

Voulant pousser l’application un peu plus loin, je me suis dit que transformer ce www.site.fr/pseudo en pseudo.site.fr ça ferait un peu mieux.

Voici donc l’astuce utilisée :

Tout d’abord, la page du membre ce récupère ainsi : www.site.fr/?i=membre&n=pseudo

Donc en Rewrite Url ça nous donne un truc dans ce genre pour avoir l’url en www.site.fr/pseudo

RewriteRule ^([A-Za-z_/0-9]+)$ ?i=membre&n=$1 [L]

Pour avoir une url en pseudo.site.fr, il faut recourir à cette astuce

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-_]+)\.site.fr
#on interdit l’utilisation de cette technique pour le www
RewriteCond %{HTTP_HOST} !^www\.site.fr
RewriteRule (.*) /var/www/index.php?i=membre&n=%1 [L]

Donc voilà … si vous vous demandiez comment les gars qui ont fait le site labrute.fr pouvait avoir un sous-domaine par joueur … vous avez la réponse 😉

Bon sinon, avouez que c’est vraiment pas très utile …

Sinon, on pourrait très bien imaginer un système qui pourrait remplacer le mod_vhost_alias en faisant un truc du genre :

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-_]+)\.site.fr [NC]
RewriteRule (.*) /var/www/%1/$1 [L]

Ce qui aurait pour effet de chercher les fichiers dans le dossier du sous domaine,(si on accède a moi.site.fr, le serveur chercherait les fichier situé dans /var/www/moi/…).

Bon j’arrête là …

Réduire la consommation de bande passante (Apache mod_deflate)

Rapide mémo sur la configuration du mod_deflate de apache qui permet de réduite pas mal la consommation de bande passante en compressant les données à la volée avec gzip avant de l’envoyer au client :

Tous d’abord, on charge le module dans la config :

Debian : a2enmod deflate

Ubuntu : sudo a2enmod deflate

Ensuite :

on ouvre le fichier apache2.conf ou httpd.conf, et l’on met l’une de ces lignes :

Si l’on veut seulement compresser les fichiers html, xml, et texte plein …

AddOutputFilterByType DEFLATE text/html text/plain text/xml

ou si l’on veut tous compresser par défaut

SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \
\.(?:exe|t?gz|zip|bz2|sit|rar)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

ou pour compresser suivant le navigateur :

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Pour avoir des logs :

DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat ‘ »%r » %{output_info}n/%{input_info}n (%{ratio_info}n%%)’ deflate
CustomLog /var/log/apache2/deflate_log deflate