cd ..

Memo pour l'administration
d'un système
linux

 

Sommaire

- Les disques dur

- Le réseau

- Le partage de fichier avec Samba

- Les services

- Les packages

- Les archives

 



SSH :     [menu]


Création d'une paires de cléees SSH :
	mkdir $HOME'/.ssh'
        
	cd $HOME'/.ssh'
	ssh-keygen -t dsa
     

On y trouve 2 fichiers : id_dsa et id_dsa.pub


Mise en place de la clée publique sur le serveur distant


Le contenu de la clée publique id_dsa.pub est ensuite copiée à la suite des autres clées sur le serveur distant auquel on souhaite accéder :

cat id_dsa.pub >> login/.ssh/authorized_keys


Création d'un tunnel

- Tunnel d'un port
	
[Machine 1 ou on lance la commande]-----------[Machine 2: serveurssh]
    Port TCP : 5050 en localhost		Port TCP 6060

ssh -N -L 5050:serveurssh:6060 root@serveurssh

Chargement d'une clée

Dans certains cas on peux utiliser l'authentification sur le serveur SSH, dans ce cas il faut charger une clée à l'aide de l'agent.
- Sous Windows avec l'agent Putty (pagent.exe)
- Sous Linux :
	eval `ssh-agent`
  	ssh-add .ssh/id_dsa

Openssl     [menu]



Etant ammené à utiliser certaines commandes openssl voilà qques commandes bien pratiques :

Test HTTPS : 
openssl s_client -connect serverhttps:443 -tls1 -bugs  -state -debug


Convertion format x509 => der : 
openssl x509 -inform PEM -outform DER -in server.crt -out server.der


Conversion vers le format pkcs12 : 
openssl pkcs12 -export -in server.crt -inkey server.key -out fichierp12.p12

Les archives      [menu]

Créer une archive

tar -czf "destination.tar.gz" source/

Dezipper une archive

tar xvfz mon_archive.tar.gz -C /chemin_destination

 

Les backup's     [menu]

Exemple de b ackup avec le binaire smbclient :

	 #!/bin/sh
#
#       Backup & Copy squid log to smb shared directory
#       Bastien Barbe 
#    	See also user_backup.conf for samba shared conf.
SERVER_NAME='MYSERVER'
SERVER_WINDOWS='10.10.10.10'
SERVER_SHARE_FOLDER='bck$'
BACKUP_LOG_FILE='/var/log/squid/access.log.0'
BACKUP_FILE_NAME='acces.log.'.$(date +%Y-%m-%d).'.gz'
TMP_FILE="/tmp/"$BACKUP_FILE_NAME

#Start squid log rotation 
#It'll create access.log.0 inside squid log directory
/usr/sbin/squid -k rotate && /bin/sleep 5
#Create log and backup it :
/bin/gzip -c $BACKUP_LOG_FILE > $TMP_FILE

echo "====================================";
echo "Create backup file : $TMP_FILE ";
echo "====================================";

#SAMBA Command :
smbclient \\\\$SERVER_WINDOWS\\$SERVER_SHARE_FOLDER -A user_backup.conf \<\<\EOF
prompt
put $TMP_FILE $BACKUP_FILE_NAME
quit
EOF
rm $TMP_FILE
	 
	
	 

Le fichier user_backup.conf contient les paramètres d'authentification sur le partage WINDOWS :

username=usrtest
password=mypwd
domain=MYENTERPRISE

Même chose avec FTP :

Même script mais avec ceci à la place de smbclient et en ajoutant 2 variables pour login & mot de passe du compte de service :


ftp -v -n $SERVER_WINDOWS<	 
	 

Les disques dur      [menu]

Info sur les disques montés dans fstab :

[root@srv1 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
4483148 1896508 2358904 45% /
/dev/sda1 101086 12709 83158 14% /boot
none 127932 0 127932 0% /dev/shm

Info sur les fichiers d'une arborescence donnée (nom et taille) :

[root@srv1 test]# du / | wc -l > nb_files_inside_fs
[root@srv1 test]# ll
total 4
-rw-r--r-- 1 root root 5 Feb 22 18:00 nb_files_inside_fs
-rw-r--r-- 1 root root 0 Feb 22 17:59 test
[root@srv1 test]# cat nb_files_inside_fs
6920
[root@srv1 test]#

 

Le réseau     [menu]

Partager des données avec NFS

Exemple ici avec 2 machines srv1 et srv2, je veut partager un répertoire qui est sur le serveur 1.

Sur le 1er serveur j'utilise la commande exportfs :

[root@srv1 ~]# exportfs -o sync srv2:/tmp/share/
Sur le deuxième serveur :

[root@srv2 ~]# mkdir /tmp/share
[root@srv2 ~]# mount srv1:/tmp/share /tmp/share/

Bien sur j'ai démaré le service RPC sur les deux machines ainsi que le service NFS.

Pour tester le tout je créé un fichier sur le premier serveur
et je vais voir dans le deuxième ce qu'il se passe :

[root@srv1 init.d]# touch /tmp/share/toto

[root@srv2 share]# ll
total 0
-rw-r--r-- 1 root root 0 Feb 22 2007 toto
[root@srv2 share]#

Syncroniser une arborescence avec RSYNC

- Pour commencer je créé une arborence à syncroniser sur SRV1

- Ensuite je lance la syncro vers le serveur 2 depuis SRV1 !

[root@srv1 mirror]# rsync -avuz /tmp/mirror/ root@srv2:/tmp/mirror/
The authenticity of host 'srv2 (192.168.0.135)' can't be established.
RSA key fingerprint is e9:9b:c2:cc:a8:0c:a5:0a:ef:ce:3b:1b:21:e8:28:75.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'srv2,192.168.0.135' (RSA) to the list of known hosts.
building file list ... done
./
.ICE-unix/
toto.txt

Ici une "bench" avec un peu plus de données ;)

[root@srv1 mirror]# dd bs=1M count=300 if=/dev/zero > 300M
300+0 records in
300+0 records out
[root@srv1 mirror]# clear
[root@srv1 mirror]# rsync -avuz /tmp/mirror/ root@srv2:/tmp/mirror/
building file list ... done
./
300M
toto.txt
sent 306080 bytes received 60 bytes 11132.36 bytes/sec
total size is 314572800 speedup is 1027.55
[root@srv1 mirror]#

L'avantage ici par rapport à une copie "brute" c'est que RSYNC ne va recopier par la suite que
les fichiers modifiés, cela permet une optimisation des sauvegardes par la suite et surtout un
gain de temps.

Partager des données avec SAMBA

Liste des partages d'une machine distance :

smbclient -L 192.168.0.10
Monter une ressource distante :

mount -t smbfs \\\\machine\\partage /repertoire_local/smbdir

 

Les services      [menu]

1) Gérer (CHKCONFIG )

Lister les services : CHKCONFIG

chkconfig --list

Ajouter un service

chkconfig --level 345 [nom] on

Supprimer un service

chkconfig --level 345 [nom] off

2) Planifier (CRON)

La configuration de CRON se fait avec le fichier /etc/crontab et c'est le service crond qui gère le tout :

Structure du fichier crond :

La syntaxe est la suivante

- Un commentaire commance par #

- Une ligne = Une tâche planifiée

[ A quel moment ] [ utilisateur ] [ /chemin/de/lexecutable]

Le format de la data d'execution est le suivant :

Minute 0 à 59
Heure 0 à 23
Jour du mois 1 à 31
mois 1 à 12
Jour de la semaine 0 à 6 (0 ;) => correspond au dimanche)

Les packages      [menu]

- YUM

yum clean packages

yum clean headers

Ou

yum clean all

[root@vsrv1 ~]# yum clean all
Cleaning up Everything
520 headers removed
493 packages removed

27 metadata files removed
0 cache files removed
13 cache files removed

- APT

-> Configuration de d'APT et de DAG pour Red Hat Entreprise 4 ou Centos 4.x :

[root@tuxhome ~]# cat /etc/apt/sources.list.d/dag.list
rpm http://apt.sw.be redhat/el4/en/i386 dag


[root@tuxhome ~]# apt-get update
Get:1 http://apt.sw.be redhat/el4/en/i386 release [476B]
Get:2 http://mirror.centos.org centos/4/apt/i386 release [2687B]
Fetched 3163B in 0s (3767B/s)
Get:1 http://apt.sw.be redhat/el4/en/i386/dag pkglist [2150kB]
Hit http://mirror.centos.org centos/4/apt/i386/os pkglist
Get:2 http://mirror.centos.org centos/4/apt/i386/os release [157B]
Hit http://mirror.centos.org centos/4/apt/i386/addons pkglist
Get:3 http://mirror.centos.org centos/4/apt/i386/addons release [156B]
Hit http://mirror.centos.org centos/4/apt/i386/updates pkglist
Get:4 http://mirror.centos.org centos/4/apt/i386/updates release [160B]
Hit http://mirror.centos.org centos/4/apt/i386/extras pkglist
Get:5 http://mirror.centos.org centos/4/apt/i386/extras release [159B]
Get:6 http://apt.sw.be redhat/el4/en/i386/dag release [159B]
Fetched 2151kB in 19s (113kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
[root@tuxhome ~]#

 

© Bastien Barbe 2008