Renommer des fichiers de .php en .php5
Les deux commandes suivantes permettent de renommer les scripts .php en .php5
find . -name "*" -type f | rename 's/\.php/\.php5/'
ou autre méthode:
for i in `find . -name "*.php"`; do mv $i ${i}5; done
Maintenant pour remplacer dans les scripts les lignes contenant .php par .php5
for i in `find . -name "*.php5" -type f `; \
do sed "s/\.php/\.php5/g" $i > $i.temp; \
cp -f $i.temp $i; rm -f $i.temp; done
Rediriger dans un sous-répertoire un nom de domaine avec .htaccess
Ceci est un exemple de redirection dans un répertoire en fonction du
nom de domaine avec l'url rewriting par l'intermédiaire d'un fichier
.htaccess.
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^((www)\.)?domaine1.tld$ [NC]
RewriteRule ^$ /rep1/ [L,R=301]
RewriteCond %{HTTP_HOST} ^((www)\.)?domaine2.tld$ [NC]
RewriteRule ^$ /rep2/ [L,R=301]
Il faudra bien sûr remplacer domaine1.tld et domaine2.tld par les vrais noms de domaine.
L'exemple tient compte du nom de domaine avec ou sans les www.
Quelques montages sous linux
Monter une partition FAT sous linux sans les droits root.
Dans l'exemple, ll s'agit de monter un disque dur usb qui pourra être monté par un utilisateur "non root".
- dans le /etc/fstab
/dev/sda1 /mnt/dd_usb/ vfat user,auto,gid=100,umask=022 0 0
Options:
/dev/sda1 : nom de la partition à monter.
/mnt/dd_usb : point de montage de la partition.
vfat : type de montage, ici c'est de la FAT (du windows).
user : permet à un utilisateur non root de monter la partition.
Pour l'utilisateur il suffit de taper:
mount /dev/sda1
Monter une image iso.
il peut être intéressant de monter une image iso afin de vérifier son contenu sans avoir à graver le CD.
mount -t iso9660 <chemin_image_iso> <point_de_montage> -o loop
Décalage de 2 heures entre windows et linux
Si comme moi vous avez un double boot, Windows, Linux et que lors de l'installation de Linux, au moment du réglage de la date/heure vous avez répondu GMT (Yes), vous remarquerez que votre Windows est en retard de 1 à 2 heures selon la période de l'année hiver ou été.
Pas de panique, il y a un moyen de s'en sortir, il suffit de mettre "UTC=no" au lieu de "yes" dans le fichier /etc/default/rcS
Quant on vous dit que Windows est en retard, c'est pas une blague 
Fait sous distrib Debian.
Commandes sur fichiers et répertoires
Des commandes bien utiles sur les fichiers et répertoires:
Pour mettre tous les répertoires avec les droits 755, et ce récursivement à partir de l’endroit où vous vous situez:
find . -type d -exec chmod 755 {} \;
Pour mettre tous les fichiers avec les droits 644, et ce récursivement à partir de l’endroit où vous vous situez:
find . -type f -exec chmod 644 {} \;
ou encore, une autre façon avec xargs
find . -type f | xargs chmod 644
Accès distant SSH très long
Se connecter en SSH sur une machine distante linux reste la solution la plus sûr, les possibilités sont multiples, celà va de la simple administration à distance d'une machine,web, messagerie, mysql, etc... à la connexion via tunnel SSH pour consulter un serveur de messagerie sans que le port 110 ou 143 soit ouvert sur le routeur.
Avec la dernière version Debian ETCH presque stable, je rencontrais un problème de lenteur. Un simple ssh exemple@exemple.com mettait plus de 10s avant de demander le mot de passe. En effet le protocole SSH essaie de faire une résolution inverse de l'addresse IP interne. Ceci échoue, et il faut attendre la fin de la tempo pour avoir la demande de password.
La solution pour éviter ceci consiste à modifier la valeur du paramètre "Host" du fichier /etc/ssh/ssh_config.
Par défaut : * à remplacer par l'adresse IP de la machine.
Host *
à remplacer par
Host 192.168.x.x
Le résultat est immédiat, maxi 2 secondes pour une connexion distante, immédiat pour une machine locale.
Version de SSH.
ssh -V
OpenSSH_4.3p2 Debian-8, OpenSSL 0.9.8c 05 Sep 2006
Se connecter à plesk via tunnel SSH
Plesk est une interface de gestion et d'administration de serveur web, existe sous linux, windows. Cette interface se retrouve chez la plupart des hébergeurs. La gestion se fait via interface web, elle est multi-niveau. Par défaut plesk utilise le port 8443, si celui-ci est fermé ou que par mesure de sécurite vous ne souhaitez pas l'ouvrir, vous pouvez utiliser le principe du tunel ssh.
ex:
ssh -L 18443:127.0.0.1:8443 -l login xxx.xxx.xxx.xxx
xxx.xxxx.xxx.xxx: représente l'adresse IP publique du serveur
18443 : port local (sans importance, on aurait pû en prendre un autre, au dela de 1024)
-l login : il faut posséder un accès ssh au server distant
127.0.0.1 adresse IP locale du serveur distant
Pour se connecter à plesk, avec votre navigateur préféré : https://localhost:18443
Une copie d'écran:

Debian Etch is out !!!! 8 avril 2007
Poisson d'avril est passé, etch est sortie. La nouvelle version de Debian vient de sortir en version stable. Nom de code : ETCH, Version référencée : 4.0.
Beaucoup de bonnes choses: un noyau en 2.6.18, gnome 2.14, côté services, c'est pas mal non plus, apache 2, php 4.4....
L'essayer c'est l'adopter, elle constitue désormais ma station de travail principale, fini Windows, uniquement dans une VmWare.
Montage NFS sous noyau openVZ
Cet article décrit le montage de partitions NFS dans des serveurs virtuels (VE) avec un noyau openvz.
La configuration est la suivante:
- 1 Serveur sous centos 4.4 (HN) avec noyau 2.6.18-8.el5.028stab027.1
- 2 serveurs web (2 VE) avec une partition nfs montée pour les fichiers web
- 1 serveur FTP (VE) avec 2 montages NFS pour les fichiers.
Nota: L'authentification FTP se fait via un serveur MySQL qui se trouve lui aussi sur un autre serveur virtuel (VE)
Sur le serveur (HN)
Le nouveau noyau 2.6.18-8.el5.028stab027.1 permet de monter des partitions nfs dans les serveurs virtuels (VE).
Prépration du HN.
Montage du module NFS:
modprobe nfs
Les fichiers web se trouvent sur une partition du HN soit /nfs_mount/web/web01/ et /nfs_mount/web/web03.
Pour pouvoir monter le nfs sur le VE:
vzctl set 101 --features "nfs:on" --save
vzctl set 113 --features "nfs:on" --save
vzctl set 114 --features "nfs:on" --save
Vérification
vzctl exec 101 cat /proc/filesystems
ext2
ext3
nodev rpc_pipefs
nodev autofs
nodev proc
nodev sysfs
nodev tmpfs
nodev devpts
nodev nfs
Sur le (HN) il faudra mettre à 1 le fichier suivant, sinon pas de montage nfs possible dans les VE.
echo 1 > /proc/sys/kernel/ve_allow_kthreads
Configuration des fichiers du HN.
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0
lockd: 192.168.0.0/255.255.255.0
rquotad: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0
statd: 192.168.0.0/255.255.255.0
/etc/hosts.deny
portmap:ALL
/etc/exports
/nfs_mount/web/web03 192.168.0.0/255.255.255.0(rw,async,no_root_squash)
/nfs_mount/web/web01 192.168.0.0/255.255.255.0(rw,async,no_root_squash)
Nota: exportfs pour lister les montages NFS et exportfs -ra pour valider une modification du fichier.
Démarrage de NFS sur le (HN)
/etc/init.d/portmap start
/etc/init.d/nfs start
Sur le serveur virtuel (VE)
apt-get install portmap
Montage du NFS sur le (VE)
mount -t nfs 192.168.0.253:/nfs_mount/web/web03 /var/www/vhosts
exemple, montage du serveur FTP:
vzctl exec 114 df -hT
Filesystem Type Size Used Avail Use% Mounted on
simfs simfs 1.0G 152M 873M 15% /
tmpfs tmpfs 188M 0 188M 0% /dev/shm
nfs nfs 4.9G 1.8G 2.9G 39% /home/ftp/web03
nfs nfs 4.9G 1.8G 2.9G 39% /home/ftp/web01
Il est possible de faire le montage à partir du (HN)
vzctl exec 113 mount -t nfs 192.168.0.253:/nfs_mount/web/web03 /var/www/vhosts
Les possibilités sont gigantesques, un grand bravo à l'équipe openVZ. http://openvz.org/
Montage CIFS FC7
J'avais un problème d'écriture sur ma Fedora Core 7 avec le montage CIFS.
J'ai un serveur samba sous Debian Etch 4.0, sous Windows le montage de la partition ne posait aucun souci, par contre sur la FC7 impossible d'écrire, de créer des répertoires ou des fichiers.
Après pas mal de recherche, j'ai trouvé qu'il suffisait d'ajouter "noperm" dans le /etc/fstab au niveau du montage.
La ligne est la suivante:
//192.168.0.133/mba /media/samba cifs \
user,users,rw,noperm,credentials=/root/.credentials,uid=500,gid=500, \
dir_mode=0755,file_mode=0644,iocharset=iso8859-1 0 0
Pour redémarrer le CIFS : /etc/init.d/netfs restart
Celà ne s'invente pas !
Upgrade plesk 8.2.0 failed - solved -
Un upgrade de plesk version 8.1.1 en 8.2.0 qui se passe mal, impossible de redémarrer l'interface d'administration. J'utilise la licence plsk.00000000.0000.
Au redémarrage:
The key is for version 8.1.x, but the product version is 8.2.0
PHP Fatal error: Unable to start psakey module in Unknown on line 0
The key is for version 8.1.x, but the product version is 8.2.0
PHP Fatal error: Unable to start psakey module in Unknown on line 0
La solution : revalider la clé, après un peu de recherche.
/usr/local/psa/admin/bin/keymng --install --source-file=/usr/local/psa/tmp/psa.key
Bingo, ça marche.
TimeOut SSH client
Pour rester connecté en SSH, à ajouter dans le fichier /etc/ssh/ssh_config
ServerAliveInterval 60
Cela permet de dire au serveur distant que l'on est toujours là toute des 60s.
Ouvrir une session ssh par échange de clé
Lorsque l'on possède de nombreuses machines linux, il est parfois fastidieux de devoir saisir le mot de passe à chaque fois pour se connecter en SSH. Pour éviter celà il suffit d'installer la clé SSH publique du client sur le serveur. Cela est encore plus vrai, s'il s'agit de connexion automatique par une machine de backup qui va récupérer les données d'un serveur pour les copier sur un serveur de backup.
La procédure:
Génération de la clé ssh sur le client
backuppc@backuppc:~$ ssh-keygen -t rsa
Transfert de la clé SSH sur le serveur
backuppc@backuppc:~$ ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.143
Nota: Sous ubuntu, il suffit de taper: ssh-copy-id root@192.168.0.143
Le serveur demande le mot de passe et installe la clé ssh dans le fichier .ssh/authorized_keys2
Pour vérifier que tout s'est bien passé, il suffit de taper ssh -l root 192.168.0.143, si le système demande le mot de passe c'est pas bon.
Il est possible de raccourcir encore la connexion en créant un alias dans le .bashrc
ex: alias srv1='ssh -l root 192.168.0.143'
Il suffira après avoir valider la modif par ". .bashrc" de taper srv1 c'est tout.
Remplacer une chaine de caractères en Perl
Quoi de plus simple de remplacer en Perl une chaine de caractères dans un fichier, le tout est de s'en souvenir.
Fichier d'origine:
chaine1
chaine2
chaine3
>> On veut changer chaine1 en mot1 directement dans le fichier, sans sauvegarde.
perl -pi -e 's/chaine1/mot1/g' fic.txt
>> Pour garder une sauvegarde du fichier d'origine.
perl -pi.back -e 's/chaine2/mot2/g' fic.txt
cat fic.txt.back (fichier sauvegardé avant modif)
mot1
chaine2
chaine3
cat fic.txt (fichier modifié)
mot1
mot2
chaine3
Envoyer un mail avec pièce jointe
Pour envoyer un mail en ligne de commande avec une pièce jointe, pas de souci lorsqu'il s'agit d'un fichier texte.
ex: cat fichier.txt | mail -s "Mon fichier" adresse@mail
Pour envoyer un fichier binaire type photo, archive, c'est plus compliqué, il faut encoder le fichier pour l'envoyer.
Pour cela on utilise uuencode qui provient du paquet sharutils
dpkg -S /usr/bin/uuencode
sharutils: /usr/bin/uuencode
et pour envoyer:
uuencode document_a_envoyer nom_du_document | mail -s Document adresse@mail
document_a_envoyer: à renseigner avec le chemin complet
nom_du_document: on donne un nom
Afficher un fichier sans les lignes de commentaires
Quelques lignes de commandes pour retirer des commentaires (lignes commençant par de #) ou des lignes commençant par des « ; » ou encore plusieurs espaces avec un « # » ensuite:
Avec la commande « grep »
grep -E -v '^(#|;|$|[ ]*#)' /etc/dovecot/dovecot.conf
Avec « sed »
sed -e '/^[ ]*#/d’ -e ‘/^[ ]*;/d’ -e ‘/^$/d' /etc/dovecot/dovecot.conf
un petit mémo trouvé sur www.commentcamarche.net
Installer SystemRescueCD sur clé USB
SystemRescueCD est un cdrom de sauvegarde et restauration sous linux. Il permet d'effectuer des sauvegardes avant de lancer des opérations sur un systeme en production.
Il s'agit d'une image iso pouvant être gravée sur un CDROM ou une clé USB.
La manip décrite sur le site pour l'installation sur clé USB passe sans problème.
Dans un premier temps, il faut télécharger l'iso CD sur le site http://www.sysresccd.org/Download
Ensuite, j'ai réalisé la création de la clé USB en bootant avec l'mage ISO dans une machine virtuelle sous VirtualBOX http://www.virtualbox.org/
Au boot de l'image ISO, je prends le premier choix et je choisis la langue (16 pour le clavier Français). Ensuite j'insère la cle USB (512 Mo) vide mais formatée de base en FAT. La clé est reconnue.
Voici les commandes à lancer:
root@sysresccd /root % sysresccd-usbstick listdev
Device [/dev/sda] detected as [USB2.0 Flash Disk ] is removable and size=491MB
Device [/dev/sda] is not mounted
Device [/dev/sda] has one partition: /dev/sda1
root@sysresccd /root % sysresccd-usbstick writembr /dev/sda
The device [/dev/sda] seems to be big enough: 491 MB.
--> install-mbr /dev/sda --force
--> parted -s /dev/sda mklabel msdos
--> parted -s /dev/sda mkpartfs primary fat32 0 100%
Warning: The resulting partition is not properly aligned for best performance.
--> parted -s /dev/sda set 1 boot on
root@sysresccd /root % sysresccd-usbstick format /dev/sda1
The device [/dev/sda1] seems to be big enough: 490 MB.
mkfs.vfat 3.0.2 (28 Feb 2009)
Partition /dev/sda1 has been successfully formatted
root@sysresccd /root % sysresccd-usbstick copyfiles /dev/sda1
The device [/dev/sda1] seems to be big enough: 490 MB.
/dev/sda1 successfully mounted on /mnt/usbstick
Free space on /mnt/usbstick is 491MB
Files have been successfully copied to /dev/sda1
root@sysresccd /root % sysresccd-usbstick syslinux /dev/sda1
syslinux has successfully prepared /dev/sda1
Il ne reste plus qu'à booter avec la clé ainsi formatée et de réaliser les opérations de sauvegarde, restauration, réparation.
Connaître les UUID sous Ubuntu
Un moyen simple de lister les UUID sous UBUNTU.
sudo blkid
.....
Visualiser les statistiques systèmes
saidar is a curses-based tool for viewing the system statistics available through libstatgrab. Statistics include
: CPU, processes, load, memory, swap, network I/O, disk I/O, and file system information.
sudo apt-get install saidar
Pour lancer : saidar