
nohup
Petit zoom sur une commande peu connue mais qui peut être très utile (surtout lorsqu'on administre un serveur) : nohup.
Pour la partie technique, nohup exécute un processus en ignorant au préalable le signal hup child. Signal qui est envoyé aux processus fils lorsque le processus père meurt et, comme tout le monde le sait, lorsqu'un processus reçoit un signal auquel il n'est pas préparé, il meurt (à ce niveau c'est un génocide !!). La principale utilité est donc de ne pas tuer un processus après fermeture du terminal, ce qui se révèle particulièrement utile lorsqu'on accède à une machine par SSH.
Petite subtilité : nohup redirige le flux de sortie standard dans le fichier "nohup.out", mais pas le flux d'erreur. Donc si l'on veut conserver l'affichage sur la sortie standard on lancera un autre terminal avec un "tail -f nohup.out". C'est un inconvénient, mais surtout un avantage lorsque l'on veut accéder à posteriori au log du processus (que l'on peut toujours rediriger, si on le souhaite, dans un fichier).
Script AWStats 2
Il y a presque 5 mois, j'avais mis à disposition un script permettant de voir les dernières phrases clé d'Awstats en les comparant à la fois précédente, ce qui est plus pratique que de voir tout d'un bloc. Le petit problème du script était qu'on ne pouvait pas rafraîchir deux fois dans la journée sinon la différence se faisait sur des données serveur à jour.
Voilà donc une version légèrement améliorée qui n'écrase plus les données si elles ont été rafraîchies dans la journée.
Enlever les droits d'exécution d'un fichier PHP
Depuis quelque temps on trouve dans le fichier mods-enabled/php5.conf la mention :
<FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php </FilesMatch>
Résultat, même un fichier n'ayant pas les droits d'exécution (mode 444) se retrouve exécuté... Pour parer à ce problème la seule solution que j'ai trouvé est de rajouter dans la configuration du répertoire cible (sites-enabled/default) :
<Directory "xxx"> <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php-source </FilesMatch> </Directory>
Agrandisseur/Décodeur/Encodeur d'URL
Nouveau service "web" sur le serveur : un agrandisseur/décodeur/encodeur d'URL. Concrètement, à quoi ça sert ?
Décodeur/Encodeur d'URL
Il permet de transformer une URL (adresse internet du type http://www.soutade.fr) au format valide pour une requête HTTP. C'est à dire qu'il va, par exemple, transformer les espaces en %20 et inversement pour le décodage. Ça ne sert pas forcément tous les jours, mais c'est gratuit en php (rawurlencode/rawurldecode).
Agrandisseur d'URL
C'était la fonction première de la page. Personnellement je ne supporte pas les URL du style http://goo.gl/QzE9b C'est très utile pour des services comme twitter où le nombre de caractères est limité, mais dans la vie courante et avec les moyens informatique actuels c'est inutile. Inutile et potentiellement dangereux car l'internaute ne sait pas vers quoi l'URL redirige, on peut donc très bien tomber sur un site malveillant.
La page est simple (pas que ça à faire) et surtout ça évite de chercher des mots compliqués (unshortener, url decoder) quand on a besoin de ces services !
Pour éviter l'utilisation malveillante, le nombre de requêtes est limité à 10 par session.