JDK et CentOS

Cet article s'inspire du wiki suivant: http://wiki.centos.org/HowTos/JavaOnCentOS

Lorsque l'on installe le jdk de SUN il se peut que toutes les commandes java ne soient pas prises en compte par le système
La commande alternative permet de configurer JAVA sur CentOS:
#alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 100
#alternatives --install /usr/bin/javadoc javadoc /usr/java/latest/bin/javadoc 100
#alternatives --install /usr/bin/javah javah /usr/java/latest/bin/javah 100
#alternatives --install /usr/bin/java java /usr/java/latest/bin/java 100
#alternatives --install /usr/bin/javap javap /usr/java/latest/bin/javap 100
--
Y.Pournin
Site: http://www.pournin.com

Ksar, traitement de l'analyse SAR

Ksar (http://ksar.atomique.net/linux.html) permet de grapher les sorties de la commande SAR (venant avec le RPM sysstat)
Cet outil est développé en java
#yum install sysstat
Télécharger la dernière version de Ksar et exécutez la commande
#java -jar Ksar.XXX.jar
Les commandes "sar" peuvent être exécutées localement ou à distance via ssh.
--
Y.Pournin
Site: http://www.pournin.com

Java, CentOS 5 et libstdc++.so.5

Sur ma CentOS 5 l'installation du jre (et donc du plugin pour firefox) ne fonctionnait pas.
En y regardant d'un peu plus près:
jcontrol me retourne l'erreur "libstdc++.so.5 manquante" et ne se lance pas
Cette librairie est installée par le package compat-libstdc++-33

Pour résumer:
- installation du jre :
#rpm -Uvh jre-6u1-linux-i586.rpm
- lien symbolique dans le répertoire plugin de firefox
#ln -s /usr/java/jre1.6.0_01/plugin/i386/ns7/libjavaplugin_oji.so \ /usr/lib/firefox-1.5.0.12/plugins/libjavaplugin_oji.so
- Echec au chargement d'applet java
- Installation du rpm "compat-libstdc++-33"
#yum install compat-libstdc++-33
- Redémarrage de Firefox et tout est OK
--
Y.Pournin
Site: http://www.pournin.com

Nareto

Projet: Nareto
Site: http://www.nareto.org/
Descriptif: "NaReTo est une interface de haut niveau à Nagios permettant d'oganiser l'ensemble des éléments supervisés sous une forme arborescente. Elle est composée de trois modules :
- un module de « Suivi Temps-Réel » : qui permet un affichage de l'état générale de tous les services supervisés;
- un module de « Suivi des alarmes » : qui trace le temps moyen de prise en charge et de résolution d'un incident;
- un module de « Reporting » : qui affiche la disponibilité des éléments supervisés.
La forme arborescente de NaReTo permet de construire une vue fonctionnelle correspondant exactement au Système d'Information supervisé."
--
Y.Pournin
Site: http://www.pournin.com

Remplacer une chaine dans des fichiers

Une petite astuce perl (il y a aussi sed en bash)
#perl -pi -e 's/ARG-A/ARG-B/' /le/fichier
on remplace l'ARG-A par l'ARG-B dans le fichier
Ca s'avère très utile pour un remplacement en masse d'une expression dans plusieurs fichiers
--
Y.Pournin
Site: http://www.pournin.com

rpmforge

RPMFORGE contient de nombreux packages pouvant simplifier l'installation d'applications.
Pour activer ce canal d'installation via yum on exécute la commande:

Sous CentOS 4:
#rpm -Uvh http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.4-1.el4.rf.i386.rpm

Sous CentOS 5:
#rpm -Uvh http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Par défaut je ne souhaite pas activer ce canal, je le désactive en éditant le fichier
/etc/yum.repos.d/rpmforge.repo pour modifier la ligne:
enable=0

Chaque installation notée « rpmforge » se fait en exécutant la commande:
#yum install package –enablerepo=rpmforge

--
Y.Pournin
Site: http://www.pournin.com

Framasoft ou le prix à payer d'un certain succès - Framablog

Framasoft ou le prix à payer d'un certain succès - Framablog

--
Y.Pournin
Site: http://www.pournin.com

libXaw.so.7 et CentOS 5 (rhel5)

Petite info pouvant faire gagner du temps:
- sous CentOS 4 la librairie libXaw.so.7 était fournie par le package xorg-x11-libs (et anciennement XFree86-libs)
- sous CentOS 5 elle est donnée par le package libXaw

--
Y.Pournin
Site: http://www.pournin.com

ssh -X et CentOS Base

Pour permettre le X11 dans un tunnel SSH (ssh -X) sur les CentOS 4 et 5 installées dans des versions minimales, il est nécessaire d'installer le package: xorg-x11-xauth
Nb: entre CentOS 4 et 5 la librairie libXp.so.6 est donnée par un package différent:
CentOS 4: xorg-x11-deprecated-libs
CentOS 5: libXp
--
Y.Pournin
Site: http://www.pournin.com

Comprendre prstat sous Solaris

Histoire de comprendre ce que l'on voit, voici un article qui explique la commande PRSTAT sous Solaris:
Explication PRSTAT sous Solaris

CentOS 5

ENFIN! la CentOS 5 est sortie:
http://lists.centos.org/pipermail/centos-announce/2007-April/013660.html
Mon portable et moi sommes dessus depuis Lundi

--
Y.Pournin
Site: http://www.pournin.com

Hyper Terminal et CentOS

Besoin de configurer un switch cisco (2960 dans mon cas) sous Linux ?
La solution se nomme minicom et est disponible dans le canal Base de Centos.
En tant que root:
#yum install minicom
Deux possibilités: configurer minicom (#minicom -s) ou éditer un fichier réponse
Sur mon portable (lattitude D420) le port COM (grâce à un DOCK) est /dev/ttyS0
Pour ma part je préfère éditer un fichier /etc/minirc.cisco
############################
pr port /dev/ttyS0
pu baudrate 9600
pu bits 8
pu parity N
pu stopbits 1
############################
Pour me connecter à l'équipement cisco via la console il me suffit de taper
#minicom cisco
--
Y.Pournin
Site: http://www.pournin.com

Mapserver + php_mapscript.so

Voici une procédure d'installation de Mapserver avec Proj, GEOS, OGDI et PostGIS. Mapserver contiendra également le module php_mapscript.so

Les versions sont:
PGSQL: 8.1.8
PHP: 5.1.6
Postgis: 1.1.3G
GEOS: 2.2.8
GDAL:1.1.3
OGDI:3.1.1
PROJ:4.4.9

Le système accueillant la plateforme est une centos 4.4

Postgres et PHP:

On active le canal CentosPlus dans le fichier /etc/yum.repos.d/Centos-Base.repo et on inclut seulement les packages qui nous intéressent
##################################
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
includepkgs=php* postgresql-*
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
##################################

On lance l'installation avec la commande "yum install PKGNAME"
Voici la liste des packages installés:
PHP:
php-common-5.1.6-3.el4s1.5
php-5.1.6-3.el4s1.5
php-pgsql-5.1.6-3.el4s1.5
php-cli-5.1.6-3.el4s1.5
php-pdo-5.1.6-3.el4s1.5
php-devel-5.1.6-3.el4s1.5
php-gd-5.1.6-3.el4s1.5
Postgres:
postgresql-libs-8.1.8-1.el4s1.1
postgresql-server-8.1.8-1.el4s1.1
postgresql-devel-8.1.8-1.el4s1.1
postgresql-tcl-8.1.8-1.el4s1.1
postgresql-odbc-08.01.0200-2.el4s1.3
postgresql-contrib-8.1.8-1.el4s1.1
postgresql-test-8.1.8-1.el4s1.1
postgresql-8.1.8-1.el4s1.1
postgresql-python-8.1.8-1.el4s1.1
postgresql-jdbc-8.1.4-1.centos.1
postgresql-docs-8.1.8-1.el4s1.1
postgresql-pl-8.1.8-1.el4s1.1
postgresqlclient7-7.4.14-1.el4s1.1.el4.centos

Je ne détaillerai pas la configuration de Postgres ni celle d'apache, de nombreux sites le font très bien.

POSTGIS:

Je souhaite que POSTGIS prenne en compte PROJ, GEOS, GDAL et OGDI
Je télécharge ces packages sur le site « Mammoth PostgreSQL »:
http://www.mammothpostgresql.org/browser/mammothpostgresql/RHEL4/RPMS/8.1.5-mapserver

GEOS:
J'installe le package "rpm-build"
Je recompille GEOS pour utiliser la dernière version (2.2.3)
Je télécharge le fichier SPEC geos-CMD.spec sur http://www.mammothpostgresql.org/browser/mammothpostgresql/RHEL4/SPECS
et le fichier geos-2.2.3.tar.bz2 sur le site http://geos.refractions.net
Je modifie le fichier specs pour bien prendre en compte la nouvelle version (2.2.3)
Je place le fichier geos-2.2.3.tar.bz2 dans le répertoire /usr/src/redhat/SOURCES et le fichier geos-CMD.spec dans /usr/src/redhat/SPECS/ et je lance:

# rpmbuild -ba /usr/src/redhat/SPECS/geos-CMD.spec

PROJ, GDAL, OGDI:
Je les installe directement depuis les RPMS téléchargés du site Mammoth

Postgis:
Je recréé le RPM à partir du srpm disponible sur Mammoth après l'avoir placé dans le dossier /usr/src/redhat/SRPMS.Ce package fonctionnera avec la version 8.1.8 de PG
#rpmbuild --rebuild postgis-1.1.3-1CMD.src.rpm
J'installe ensuite le nouveau package


MAPSERVER:

Prérequis:
La version utilisée est celle disponible sur le site: http://mapserver.gis.umn.edu/download/current?set_language=en, la version source 4.10.1
Je télécharge le fichier mapserver-4.10.1.tar.gz

Afin d'avoir le maximum d'options à la compillation j'installe les RPMS suivant permettant de gérer un grand nombre de formats d'image. Ces installations se font par YUM dans les canaux Base ou rpmforge
freetype: Base
Libjpeg: Base
PDFLib: rpmforge
php-devel: Base
libungif-devel: Base

Compillation:

#./configure --with-php=/usr/include/php/ --with-gdal=/usr/bin/gdal-config --with-ogr=/usr/bin/gdal-config --with-postgis=yes –with-proj=/usr

Les formats d'images sont reconnus par défaut au moment du ./configure
#make
#make install

J'obtiens le binaire mapserv et le fichier php_mapscript.so (dans mapscript/php3/)

Compillation du RPM:

Je place les fichiers créés dans /var/www/cgi-bin/ pour mapserv et dans /usr/lib/php/modules/ pour php_mapscript.so

Dans le dossier /usr/redhat/SPECS/ je créé un fichier mapserver.spec
J'exécute la commande rpmbuild -ba mapserver.spec
J'obtiens le package mapserver.rpm dans /usr/src/redhat/RPMS/i386


MAPSERVER.SPEC:

Summary: mapserver
Name: mapserver
Version: 4.10.1
Release: 1
Group: Applications
License: GPL
Source: mapserver.tar.gz
URL: http://www.pournin.com

BuildArch: i386
Requires: geos-devel gdal-devel proj libjpeg pdflib postgis
%description
Package contenant php_mapscript.so et mapserv
%prep
%setup -c mapserver
%install
%__cp -a . "${RPM_BUILD_ROOT-/}"
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%defattr(-,root,root,0755)
/usr/lib/php/modules/php_mapscript.so
/var/www/cgi-bin/mapserv
%changelog
* Fri Apr 06 2007 pournin <yves@pournin.com>
- Creation du package

Copie de contenu de dossiers avec TAR

On est parfois amener à deplacer les données d'un dossier vers un autre, cette opération peut être faite avec la commande TAR:
ex: cd ACOPIER; tar cf - .| (cd CIBLE; tar xvf -)
explication: on va dans le dossier ACOPIER, on l'archive avec TAR (faire attention au "." de la commande). On "pipe" ensuite une série de commandes qui permettront d'aller dans le dossier CIBLE et d'extraire l'archive TAR.
--
Y.Pournin
Site: http://www.pournin.com

Comprendre et bien choisir son ELEVATOR

Il est possible sous RHEL d'optimiser son système en préférant un type de contrôleur d'I/O.
Sous les noyaux 2.6 il se configure en rajoutant elevator=XXX* dans son fichier grub.conf
Je vous renvoie sur cet article qui aborde ces différents elevator afin de choisir le plus efficace.
http://www.redhat.com/magazine/008jun05/features/schedulers/


*où XXX est un elevator (exemple pour l'elevator NOOP on ajoutera elevator=noop dans grub.conf)
--
Y.Pournin
Site: http://www.pournin.com

Bash et incrémentation

Une astuce donnée lors de ma formation RH442
On est parfois amené à gérer des fichier issus de rotations de logs
(logrotate). On se voit donc gérer des fichiers de la forme: xxx.log.1,
xxx.log.2, etc.
Lorsque je scriptais ou que j'avais à gérer ces fichiers j'utilisais la
commande seq en bash
#for i in $(seq 1 5); do echo $i ; done
Avec la version 3 de bash on peut maintenant simplifier cette commande en:
#for i in {1..5}; do echo $i ; done
Je la trouve plus simple à mémoriser.
exemple d'application directe: for i in {1..5}; do gzip access_log.$i; done
-> On compressera tous les fichiers logs de 1 à 5
--
Y.Pournin
Site: http://www.pournin.com

OREON

Projet: Oreon
Site: http://www.oreon-project.org/
Descriptif: "Oreon est un logiciel de surveillance et de supervision
réseau basé sur le moteur de récupération d'information Open Source le
plus performant : Nagios."
--
Y.Pournin
Site: http://www.pournin.com

Enfin.....la RHEL5!

Avec un peu de retard la voici enfin sortie: la RHEL 5.
J'en profite pour rajouter un nouveau thème à mon blog que j'appellerai "news" mais revenons-en à la RHEL 5:
un aperçu des applications fournies est disponible sur (l'excellent) site de RedHat Magazine:
http://www.redhatmagazine.com/2007/03/14/red-hat-enterprise-linux-5-application-overview/
Clairement Red Hat affiche sa volonté de répondre à SUSE avec de nombreuses applications tiers.
Avis aux RHCE: les examens RHEL5 seront accessibles en France à partir du 16/04/07 (Red Hat France me l'a confirmé). Il ne reste plus qu'à attendre la Centos 5, une très bonne distribution clone des RHEL ( http://www.centos.org)

NB: RHEL = Red Hat Enterprise Linux

--
Y.Pournin
Site: http://www.pournin.com

Ruby on Rails sur centos

Un très bon wiki qui m'a permis d'installer Rails pour un projet scientifique:
http://wiki.rubyonrails.org/rails/pages/Rails+on+CentOS+4.3+with+Apache+and+FastCGI+Simply
Il a évolué depuis les dernières modifications que j' ai apportées.
--
Y.Pournin
Site: http://www.pournin.com

NPH PROXY

Description de l'outil

Toutes les informations ont été trouvées sur le site: http://www.jmarshall.com/tools/cgiproxy/

Installation

Une fois le script téléchargé nous le déployons sur notre serveur WEB.

Pour son fonctionnement il faut: mod_perl d'installé et modifier le chemin d'exécution du perl.

Nous souhaitons utiliser ce script pour des connexions classiques et des connexions chiffrées supportant SSL. Pour cela nous installons auparavant le module Perl Net::SSLeay avec l'outil CPAN.

Notre serveur de référence sera le serveur Example.com, voici les étapes de l'installation:

  1. Créer le répertoire d'accueil:

    #mkdir /data/www/www.example.com/Web_proxy

  2. Vérifier que les droits d'exécution soient bien positionnés

  3. Configurer le serveur Apache pour exécuter ce script (nous limitons son utilisation aux utilisateurs de l'intranet:

#######################################################
Alias /proxy "/data/www/www.example.com/Web_proxy"
<Directory "/data/www/www.example.com/Web_proxy">
Options +Includes +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
AllowOverride None
Order deny,allow
Deny from all
Allow from .example.com
AuthType Basic
AuthName "l'Intranet EXAMPLE.COM"
AuthUserFile /etc/httpd/conf/htpasswd/intranet/.htpasswd
require valid-user
satisfy any
</Directory>
#######################################################

  1. Nous forçons aussi la navigation en https:
    Redirect /proxy https://www.example.com/proxy

  2. le service apache est relancé pour prendre en compte les changements, nous pouvons utiliser le script à l'URL:
    https://www.example.com/proxy/nph-proxy.cgi

Configuration

Nous allons maintenant décrire la configuration du proxy. Toutes les options sont disponibles sur:
http://www.jmarshall.com/tools/cgiproxy/#options

Le comportement que nous souhaitons:

  • Imposer une configuration standard pour les utilisateurs

  • Limiter les sites avec lesquels l'outil peut être exécuté

Pour cela nous modifions les options suivantes:

  • nous limitons l'affichage du script: $INSERT_ENTRY_FORM= 0

  • nous désactivons la configuration utilisateur: $ALLOW_USER_CONFIG= 0

  • nous précisons le mode SSL: $RUNNING_ON_SSL_SERVER= '1'

  • pas d'option "restart": $NO_LINK_TO_START= 1

  • nous limitons les sites avec lesquels l'outil doit être utilisé:
    @ALLOWED_SERVERS=('\.yahoo\.com$','\.redhat\.com$') ;

Utilisation

Nous prendrons comm exemple l'accès au site WWW.SCIENCEDIRECT.COM
Le lien à créer est:
https://www.example.com/proxy/nph-proxy.cgi/111110A/http/www.sciencedirect.com/

Les options 111110A indiquent des choix sur le comportement du proxy qui sont:

  • Remove all cookies (except certain proxy cookies)

  • Remove all scripts (recommended for anonymity)

  • Remove ads

  • Hide referrer information

  • Show URL entry form

A prévoir

  1. Vérifier les ressources prises par le script dans le cadre d'une utilisation à grande échelle

  2. Tester la rapidité d'exécution des requêtes web


--
Y.Pournin
http://www.pournin.com

Aide mémoire Solaris

Pour (re)découvrir les commandes sous Solaris
Cet article est issu du site http://www.e-atlantide.com/securite/sun.htm

INFORMATIONS Système

Architecture matérielle

hostid
donne le numéro de série de la machine. utile pour certains produits dont les licences sont fournies pour un numéro de série donnée

uname -nra
n: affiche le nom d'hôte de la machine
v: affiche la version du systèmes d'exploitation
a: affiche toutes les informations liées au système

prtdiag
donne le type de serveur (par exemple Ultra 143 ou 170 ...), la capacité mémoire RAM ainsi que le nombre de processeurs installés

Informations d'exploitation

dmesg
donne les derniers messages affichés lors du démarrage de la machine (/var/messages)
last reboot
pour afficher la date et heure des derniers reboot de la machine

df -k

donne le taux d'occupation des partitions et disques durs de la machine

Installation de patchs et packages


showrev -p
donne les numéros de série des différents patchs installés sur la machine

pkginfo
donne la liste des packages logiciels installés sur la machine

pkgadd -d
permet d'installer proprement des packages pour Solaris

pkgrm
permet de désinstaller proprement des packages pour Solaris

Répertoires ET FICHIERS

Renseignements

ls -alrtR
a: affiche tous les fichiers y compris les fichiers cachés
l: affichage des fichiers en formats long
t: affichage des fichiers triés par date
r: affichage inverse des fichiers triés (couplés à l'option -t)
R: affichage récursif

du -s
s: affiche la taille en blocs de 512 octets du répertoire

Copies et Déplacements

cp -rip
r: copie récursive des sous-répertoires
i: copie en mode intéractif (demande de confirmation)
p: préserver les date de modification et droits d'accès

mv -if
i: mode intéractif (demande de confirmation)
f: forcer même si le fichier destination existe

ln -s
s: création d'un lien symbolique

rm -ifr
i: mode intéractif (demande de confirmation)
f: forcer la suppression sans confirmation explicite
r: suppression récursive des sous-répertoires

rmdir
suppression d'un répertoire vide

Comparaison

diff
cmp
Droits d'accès

chmod nnn
chmod ugoa+rwx
u: l'utilisateur détenteur de l'objet est concerné (user)
g: le groupe dont appartient l'utilisateur (group)
o: les autres (other)
a: tous les utilisateurs (all)
r: accès autorisé en lecture (read)
w: accès autorisé en écriture (write)
x: accès autorisé en exécution (execute)

chown -R uid.gid
chgrp gid
R: récursif
uid: User ID
gid: Group ID

Compression et Packaging

tar tcxvf [
t: lister le contenu d'un fichier tar
c: créer un fichier tar
x: extraire un fichier tar

compress/uncompress
gzip/gunzip ( freeware GNU pour Solaris )
unzip ( freeware pour Solaris )
zcat

Divers

touch -acm
a: mise à jour de la date d'accès
c: ne pas créer un fichier s'il n'existe pas auparavant
m: mise à jour de la date de modification

strings
affichage des chaînes de caractères ASCII dans un fichier binaire

PROCESSUS

Renseignements

ps -eaf
a: affiche tous les processus sauf ceux non rattachés à un terminal
e: affiche tous les processus
f: affichage listing complet (full)

/usr/ucb/ps -aux
commande équivalent à la commande ci-dessus. Toutefois, elle permet d'afficher le taux d'occupation CPU et RAM par chacun des processus listés. C'est une commande SunOS préservée dans Solaris

top (freeware)
affiche en temps réel tous les processus triés par taux d'occupation CPU; non disponible en standard sous Solaris; plutôt un freeware utile - /usr/ucb/ps -aux donne ceci mais pas de rafraîchissement automatique

fuser
donne le PID (process ID) du processus utilisant le fichier , utile pour savoir si le fichier est libre ou pas avant de faire le ménage dans un dossier temporaire par exemple /tmp

Arrêt (ou envoi d'un signal système)

kill -9 pid
arrêt d'un processus; à effectuer seulement en dernier recours car c'est un arrêt brutal ne permettant pas au service de s'arrêter proprement
kill -1 pid
forcer le chargement des fichiers de configuration d'un processus - par exemple, le démon des services Internet inetd

Renseignements système

ipcs -mqs

m: affiche les mémoires partagées actives utilisées par un processus
q: idem mais pour les queues de messages
s: idem mais pour les sémaphores

ipcrm
pour libérer les mémoires partagées, les queues de message ainsi que les sémaphores utilisées par un processus; permet un nettoyage système après un arrêt brutal d'un processus applicatif

lsof (list of open files: freeware très utile pour Solaris)
affiche toutes les ressources utilisées par tous les processus en cours d'exécution - par exemple, quel est le processus qui écoute sur le port TCP 1037 ? il suffit d'exécuter lsof | grep TCP

lsof -g pid (list of open files: freeware très utile pour Solaris)
affiche toutes les ressources utilisées par un processus donné pid, y compris les ressources réseau

TRAITEMENT FICHIERS TEXTES

Recherche de chaîne de caractères et fichiers

grep -i
recherche la chaîne de caractères dans le fichier précisé
i: ne pas tenir compte de la casse (majuscule ou minuscule)

find / -print | xargs grep -i
recherche tous les fichiers contenant la chaîne de caractères en partant du répertoire racine, on peut bien entendu restreindre cette recherche à un répertoire précis

find / -type f -name -print
recherche tous les fichiers dont le noms est à partir du répertoire racine, on peut bien entendu restreindre cette recherche à un répertoire précis

awk

awk -f
traitement de fichiers structurés afin de reformater la présentation, idéal pour traiter des fichiers CSV - par exemple, pour extraire le premier champ d'un fichier CSV et modifier l'affichage:
cat | awk -F\; ' { print "premier champ="$1} '

sed

sed -f
traitement de fichiers afin de reformater la présentation, idéal pour substituer une chaîne de caractères par une autre - par exemple, pour remplacer partout dans un fichier la chaîne "entreprise.fr" par "entreprise.com":
cat | sed 's/entreprise.fr/entreprise.com/g'
Divers

cat | wc -lw
l: donne le nombre de lignes du fichier
w: donne le nombre de mots du fichier

cat | head -15
donne les 15 premières lignes du fichier

cat | tail -15
donne les 15 dernières lignes du fichier

tail -f
donne les dernières lignes du fichier avec rafraîchissement dynamique

| tee -a out
affiche le résultat de la commande à l'écran (stdout) et en même temps redirige le résultat dans le fichier out en mode append (rajout)

sort -u
affiche les lignes triées d'un fichier
u: les entrées identiques sont affichées une seule fois (unique)

cut -df
d: caractère délimiteur
f: liste des champs à extraire
par exemple: cut -d: -f 1,5 /etc/passwd

paste -d ...
d: caractère délimiteur

--
Y.Pournin
http://www.pournin.com

Apache et certificat SSL

Voici un petit rappel pour générer des certificats SSL:

Dans le répertoire /etc/httpd/conf on exécute les commandes suivantes

1/openssl genrsa -out ssl.key/server.key 1024 (sans passphrase)
2/openssl req -new -key ssl.key/server.key -out ssl.crt/server.csr
3/openssl req -x509 -days 10000 -key ssl.key/server.key \ -in ssl.crt/server.csr -out ssl.crt/server.cr

NB: "server" peut être remplacé par le nom du virtualhost
--
Y.Pournin
http://www.pournin.com

Include et apache

Le fichier httpd.conf est long et je trouve plus simple de travailler avec des inclusions de fichiers de parties régulièrement modifiées (comme la déclaration des sites).

Dans le httpd.conf :
############################################################################################

# apache repond sur les port 80 (HTTP) de toutes les adresses IP du serveur (dans notre cas)
NameVirtualHost *:80
# apache repond sur le port 443 (HTTPS) de toutes les adresses IP du serveur (dans notre cas)
NameVirtualHost *:443
Include conf/httpd.virtualhost.conf

############################################################################################

On inclue un fichier conf/httpd.virtualhost.conf qui contiendra:

############################################################################################

<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /data/www/html/
ServerName servername.example.com
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
include conf/sites.conf
include conf/proxy-http.conf
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin webmaster@mpl.ird.fr
    DocumentRoot /data/www/html/
    ServerName servname.example.com:443
    ErrorLog /var/log/httpd/error_log
    CustomLog /var/log/httpd/access_log combined
    SSLEngine on
    #SLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
    SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
    SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
    SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
    include conf/sites.conf
    Include conf/proxy-https.conf
</VirtualHost>
############################################################################################

On inclue ensuite les fichiers proxy-https.conf site.conf et proxy-http.conf en fonction du virtualhost.
De cette manière les sites du fichier sites.conf sont accessibles indifférement en http et en https.
Les fichiers proxy servent à rediriger les site d'http en https par exemple (pour le proxy-http.conf avec la fonction Redirect) ou à déclarer un site dans un seul virtualhost.

--
Y.Pournin
http://www.pournin.com

rpm --aid et gestion des dépendances

Dans un souci de simplification d'installation des futurs RPMS
l'ensemble du contenu des CDROM est copié dans un répertoire
/data/nobkp/RedHat/RPMS

Afin d'utiliser pleinement la gestion des dépendances de ces RPMS (gérée
par l'option « --aid ») un fichier .rpmmacros doit être créé dans le
répertoire /root

Ce fichier contient les lignes suivantes :

%_solve_pkgsdir /data/nobkp/RedHat/RPMS/

%_solve_name_fmt %{?_solve_pkgsdir}%%{NAME}-%%{VERSION}-\
%%{RELEASE}.%%{ARCH}.rpm

La gestion des dépendances est prise en compte une fois que le compte
root s'est reconnecté.

Exemple de configuration Logwatch

Logwatch est un utilitaire qui envoie des mails quotidiens pour indiquer l'état du système.

Dans le fichier /etc/log.d/logwatch.conf on modifie les lignes suivantes :

Service=all est commenté pour spécifier les services auxquels on s'intéresse :

exemple:

Service = mountd

Service = sshd

Service = sshd2

Service = syslogd

Service = up2date

Service = zz-disk_space

Service = cron

Service = sudo

Service = ftpd-xferlog

Service = ftpd-messages

La liste des services surveillés par Logwatch se trouvent dans le répertoire : /etc/log.d/scripts/services
--
Y.Pournin
http://www.pournin.com

Autorisation X Forwarding

Par défaut le serveur X des distributions Fedora tourne en mode nolisten (si l'on execute un ps -edf | grep X on retrouve cette option "nolisten")
Pour autoriser la récupération d'affichage X il faut:
  1. exécuter gdmsetup
  2. dans l'onglet sécurité décocher "Refuser les connexions TCP au serveur X"
  3. relancer le serveur X
--
Y.Pournin
http://www.pournin.com