To use PuTTY’s PSFTP:

Accédez à la page de téléchargement PuTTY, téléchargez le programme d’installation MSI et exécutez-le pour installer et configurer leurs utilitaires. Vous pouvez également télécharger psftp.exe et puttygen.exe dans un répertoire de votre PATH.

Téléchargez une clé privée sur votre système Windows ou générez une nouvelle clé à l’aide de puttygen. Enregistrez-le dans un répertoire de votre choix, par exemple :

C:\putty\id_rsa.ppk.

Si nécessaire, ajoutez votre clé publique à ~ / .ssh / authorized_keys sur le serveur distant.
Testez la connexion à partir de la ligne de commande en utilisant les lignes suivantes :

drive:\> psftp -v -i "[drive]:\putty\id_rsa.ppk" [user]@[remote]  
Using username "[user]"  
The server's host key is not cached in the registry 
...
Store key in cache? (y/n) y  
Remote working directory is /home/user  
psftp> ls 
psftp> quit  

where:
[drive] Is the drive on which the private key is saved.

[user] Is your user ID.

[remote] Is the name of your remote server.

Vous ne devriez pas être invité à entrer un mot de passe ou une phrase secrète. Cependant, si vous ne vous êtes pas déjà connecté au serveur, vous serez invité à stocker la clé dans le cache. Répondez y et vous ne serez plus invité à le faire. Vous devez le faire pour que le serveur DataMigrator ne reçoive pas cette invite.

Dans votre PATH, créez un fichier appelé sftp.bat avec les lignes suivantes:

@echo off 
psftp -i "[drive]:\putty\id_rsa.ppk" %1 %4 %5 %6 –batch

where:
[drive] Is the drive on which the private key is saved.

Transfert de fichier via SSH

Dans ce chapitre, nous allons étudier différentes méthodes pour transférer des fichiers d’une machine à une autre via le protocole SSH. Il existe en effet plusieurs manières de faire pour échanger des fichiers en utilisant SSH :

  • SCP
  • SFTP
  • SSHFS

Le plus souvent, SCP est SFTP sont utilisés, SSHFS correspond à des besoins plus précis et spécifiques. Mais nous allons voir tout cela ensemble. C’est partie ! 🙂

I. SCP : Secure Copy

SCP est le nom d’une commande fournis par le paquet « opensshclient« . La commande permet de façon très simple d’échanger des fichiers et des dossiers entre un client SSH et un serveur SSH.

L’utilisation de la commande SCP permet de rapidement prendre et envoyer des fichiers en ligne de commande entre machines Linux.

Nous allons ici utiliser la même structure de commande que la commande « cp » sous Linux qui permet de copier un fichier. SCP prend en effet le modèle de « cp » pour son utilisation basique.

Prenons le schéma suivant, il est souvent plus facile de visualiser les flux réseau ainsi :

ssh-scp-linux-01

On dispose donc de deux machines sous Linux, avec chacune leur arborescence.

Envoi d’un fichier via SSH en utilisant SCP

Si je suis sur la Machine mickael et que je souhaite envoyer le fichier /home/mickael/data/Fichier2 dans le répertoire /var/www du serveur Linux, je vais utiliser la commande suivante :

scp /home/mickael/data/Ficher2 root@192.168.10.131:/var/www/

Quelques explications, vous allez voir, ce n’est pas si complexe que cela 

Ici, on retrouve la structure de la commande « cp » dans laquelle on spécifie la source, puis la destination. Entre les deux, on peut voir « root@192.168.10.131 :« .

En effet, étant donné que l’on souhaite envoyer le fichier en question sur une autre machine, il faut bien spécifier son IP, de plus, si l’on passe par SSH, il faut s’authentifier. On va donc se logguer en root sur notre machine distante pour y déposer notre fichier. Le « : » permet de spécifier le chemin dans la machine distante. S’il n’est pas spécifié, les fichiers atteriront dans le dossier par défaut de l’utilisateur : la home. (/root pour l’utilisateur root, /home/user pour l’utilisateur « user« , etc.).

Note : Il faut bien sûr être certain que le chemin de destination existe sur la machine de destination. Dans le cas contraire, nous obtiendrons une erreur de la part de SSH.

Téléchargement d’un fichier via SSH en utilisant SCP

Si l’on souhaite effectuer l’opération inverse, c’est-à-dire télécharger un fichier du serveur Linux vers la Machine mickael alors que l’on se trouve sur cette même Machine Mickael, c’est aussi possible. Il faut pour cela connaître à l’avance le chemin et le nom du fichier à télécharger puis utiliser scp de cette façon :

scp root@192.168.10.131:/var/www/Fichier2 /home/mickael/data/

Ici, on retrouve exactement la même construction que notre précédente commande mais nous avons inversé l’ordre des chemins. Cela parce que la source doit toujours se trouver avant la destination. On spécifie à nouveau l’utilisateur avec lequel se connecter en SSH sur l’IP distante et le chemin sur le serveur distant. On précise ensuite le dossier local dans lequel nous souhaitons entreposer les fichiers téléchargés.

Transfert de dossier : utilisation de la récursivité

Ici, nous n’avons pour l’instant téléchargé et envoyé qu’un fichier unique. Cela est pratique mais peut devenir long si l’on souhaite envoyer tout un dossier avec plusieurs fichiers à l’intérieur. La commande SCP nous offre en fait la possibilité de faire une copie distante avec de la récursivité.

Le fait qu’une action soit récursive veut simplement dire que si des sous-éléments de l’élément visé sont présents, l’action s’effectuera également sur eux.

Autrement dit si on décide de copier un répertoire via SCP, les fichiers de ce répertoire seront également copiés et réorganisés de la même façon chez la machine cible. Il faut pour cela ajouter l’option « -r » juste après « scp« , exemple :

scp -r /home/mickael/data/ root@192.168.10.131:/var/www/

En suivant notre schéma initial, les fichiers « Ficher1« , « Fichier2 » et « Fichier3 » vont tous trois être transférés, et cela à l’aide d’une seule commande, pratique n’est-ce pas ?

D’ailleurs lors d’un transfert, nous pouvons voir la liste des fichiers transférés :

ssh-scp-linux-02

Une petite précision concernant la situation dans laquelle le port du serveur SSH n’est plus le port par défaut (22), c’est une configuration que nous avons étudié lors de la configuration d’OpenSSH. Quand le SSH est changé, l’application ne peut naturellement pas le devenir car elle vise par défaut le port 22. Il faut donc spécifier à SCP le port sur lequel aller discuter, cela se fait via l’option « -P« , à spécifier avant la source et la destination :

scp -r -P 7256 /home/mickael/data/ root@192.168.10.131:/var/www/

Utilisation d’un client Windows

Si votre client est un Windows, vous pouvez utiliser le logiciel WinSCP qui se chargera de faire le même type de transfert avec une interface graphique.

Vous pouvez trouver WinSCP, qui porte d’ailleurs bien son nom, sur son site officiel : http://winscp.net/eng/download.php .

Après avoir démarré le logiciel (et l’avoir installé s’il s’agit de la version non portable) vous verrez apparaître cette fenêtre :

ssh-scp-linux-03
Fenêtre de connexion WinSCP

Ici, on retrouve une configuration un peu comme celle de Putty sous Windows, on peut y spécifier l’IP ou le nom de notre serveur cible, son port, le nom d’utilisateur et son mot de passe. Vous retrouverez également en haut le champ » Protocole de fichier ». En effet, WinSCP permet de gérer les transferts en SCP, mais également en SFTP (que nous verrons juste après) et en FTP, dans cette liste de sélection, choisissez donc « SCP » :

ssh-scp-linux-04

On pourra ensuite cliquer sur « Connexion » pour lancer la connexion. On se retrouvera alors avec une fenêtre comme celle-ci :

ssh-scp-linux-05

Ici, on peut apercevoir l’arborescence de mon client Windows à gauche, et l’arborescence de mon serveur Linux à droite, avec la possibilité de simplement glisser/coller des fichiers entre les deux, le tout de manière sécurisée grâce au SSH !

Comme vous le voyez, WinSCP vous propose de nombreuses options comme des raccourcis, des enregistrements de session, etc. Mais ce n’est pas l’objet de ce cours, il fait néanmoins partie de la boite à outils d’un bon administrateur système. 😉

II. SFTP : Secure FTP

SFTP (Secure FTP), qui comme son nom l’indique est un dérivé du protocole « FTP » (File Transfert Protocol), permet lui aussi de transférer des fichiers d’une machine Linux à une autre de façon très simple.

SFTP est une extension du protocole SSH, plus techniquement un « subsystem« , on peut le voir rapidement dans le fichier de configuration d’OpenSSH :

subsystem sftp /usr/lib/openssh/sftp-server

On peut décrire le SFTP comme l’encapsulation du protocole FTP dans une « couche » sécurisée qu’est SSH. Autrement dit, en SFTP, client et serveur dialoguent en FTP mais utilisent SSH pour faire transiter les paquets, ce qui permet de sécuriser l’utilisation du FTP.

En effet, le FTP est un protocole ancien qui n’a pas été conçue à la base avec une pensée pour la sécurité. Il fait passer les informations (identifiants et fichier) en clair sur le réseau ! SSH permet alors de sécuriser l’utilisation du FTP en chiffrant les échanges entre les machines.

En l’état, il existe peu de différence entre utiliser SCP ou SFTP. Avec un client comme WinSCP sous Windows, l’effet sera exactement le même et l’utilisation aussi. Vous n’aurez qu’à choisir « SFTP » au lieu de « SCP » lors du remplissage des informations de connexion.

Sous Linux, en tant que client, la commande « sftp » s’utilise exactement comme la commande « scp« , celle que nous avons vu plus haut.

III. SSHFS : SSH FileSystem

SSHFS signifie « SSH File System« , il s’agit ici d’une notion un peu plus avancée que du simple transfert de fichier comme SCP ou SFTP puisque SSHFS va nous permettre de monter un répertoire d’une machine Linux sur une autre, de la même manière que l’on peut monter un répertoire SMB entre deux machines.

Quelle différence entre monter un répertoire et copier un fichier ?

Monter un répertoire va permettre à la machine cliente de voir un répertoire en temps réel alors que celui-ci se situe sur la machine distante. Si une modification est effectuée sur ce répertoire, le client le verra instantanément et il pourra agir dessus comme s’il s’agissait d’un répertoire local. Dans le cas de SSHFS, l’échange qui permet la lecture et l’écriture sur le répertoire est fait sur le réseau en utilisant le protocole SSH.

Cela peut être encore un peu flou pour le moment, dans ce cas-là, rien ne vaut la pratique ! Reprenons notre schéma :

ssh-scp-linux-01

Ici, en me situant sur le « Serveur Linux« , je voudrais avoir accès en permanence au dossier « /home/mickael/data » de « Machine mickael« . Je souhaite donc monter ce répertoire distant en local, admettons dans /mnt/data. Je dois commencer par installer SSHFS sur mes deux machines Linux, pour l’installer sous Debian 8 :

apt-get install sshfs

Pour l’installer sous CentOS 7 :

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum install fuse-sshfs

C’est ensuite très simple, si l’on souhaite monter le répertoire « /home/mickael/data » de la machine de Mickael sur le serveur, on va, depuis le serveur, exécuter les commandes suivantes :

mkdir /mnt/data
sshfs mickael@192.168.10.1:/home/mickael/data /mnt/data

Plus clairement, je demande à monter le répertoire /home/mickael/data de la machine 192.168.10.1 dans mon répertoire local /mnt/data, le tout en m’authentifiant en tant que « mickael » sur la machine distante. Attention, il ne s’agit pas d’une copie, si je démonte le répertoire /mnt/data, les données ne seront plus présentes.

Dès lors, quand on se rend sur le répertoire local /mnt/data, on pourra voir en direct le contenu du répertoire /home/mickael/data distant, et mieux encore, on pourra y ajouter, supprimer ou modifier des fichiers et dossiers à volonté étant donné que le répertoire est monté. Si vous avez du mal à saisir le concept, je vous recommande de tester cela entre deux machines Linux, cela devient tout de suite plus clair !

D’ailleurs, si vous utilisez la commande « mount » qui permet sous Linux de visualiser les points de montage présents, on pourra clairement voir notre montage SSHFS :

mickael@192.168.10.131:/home/mickael/data on /mnt/data type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

Une fois nos opérations terminées, il est recommandé de démonter le montage effectué. C’est-à-dire de couper la liaison SSHFS entre les deux machines. Pas d’inquiétude, cela ne changera rien aux modifications faites étant donné qu’elles sont faites en direct. Pour ce faire, utilisez la commande « umount » et précisez le répertoire de montage local :

umount /mnt/data

Nous avons vu dans ce chapitre les différentes façons dont SSH peut être utilisé pour effectuer des transferts de fichier, ce sont des techniques très souvent utilisées lors de l’administration d’un système contenant des serveurs Linux, notamment quand ceux-ci sont distants comme les serveurs hébergés chez des grands hébergeurs. Nous allons dans le prochain chapitre étudier les possibilités qu’offre SSH concernant le X11 Forwarding.

Clé d’authentification entre wctsrv0134 et wctsrv0135

Laisser les valeurs par défaut

Sur wctsrv0134

cd /root/.ssh/
 root@wctsrv0134:/exploit/scripts# ssh-keygen -t rsa
 Generating public/private rsa key pair.
 Enter file in which to save the key (/root/.ssh/id_rsa):  
[entrée]  LAISSER LA VALEUR PAR DEFAUT
 Enter passphrase (empty for no passphrase): [entrée] 
 Enter same passphrase again: [entrée] 
 Your identification has been saved in /root/.ssh/id_rsa_vtom_main.
 Your public key has been saved in /root/.ssh/id_rsa_vtom_main.pub.
 The key fingerprint is:
 SHA256:c29bbI+32cezIzf97+W75tGjinKSBOjpEW3W1rPRF68 root@wctsrv0011
 The key's randomart image is:
 +---[RSA 2048]----+
 |                 |
 |             .   |
 |    o . . .   o  |
 |   o = o + . . . |
 |  . = o S = . .  |
 |   +   . + . E  .|
 |  . . . .   o +++|
 |   .   + … =.X@|
 |        +. .o.*X^|
 +----[SHA256]-----+
root@wctsrv0134:/exploit/scripts# cd /root/.ssh/
root@wctsrv0134:~/.ssh# ll
total 32
drwx------ 2 root root 4096 Oct  4 14:00 ./
drwx------ 8 root root 4096 Oct  4 11:33 ../
-rw------- 1 root root    0 Feb 12  2019 authorized_keys
-rw------- 1 root root  668 Oct  4 11:39 id_dsa
-rw------- 1 root root  605 Oct  4 11:39 id_dsa.pub
-rw------- 1 root root 1675 Oct  4 14:00 id_rsa
-rw-r----- 1 root root  397 Oct  4 14:00 id_rsa.pub
-rw-r--r-- 1 root root 5096 May 15 13:31 known_hosts
root@wctsrv0134:~/.ssh# cp id_rsa.pub /home/vtom/.ssh/
root@wctsrv0134:~/.ssh# cd /home/vtom/.ssh/
root@wctsrv0134:/home/vtom/.ssh# ll
total 32
drwx------  2 vtom vtom 4096 Oct  4 14:19 ./
drwxr-x--x 11 vtom vtom 4096 Sep 10 16:47 ../
rw-------  1 vtom vtom  397 May 15 16:08 authorized_keys
-rw-------  1 vtom vtom  668 Oct  4 14:02 id_dsa
-rw-------  1 vtom vtom 1679 May 15 16:01 id_rsa
-rw-r-----  1 vtom vtom  397 May 15 16:01 id_rsa.pub
-rw-r-----  1 root root  397 Oct  4 14:19 id_rsa.pub
-rw-r--r--  1 vtom vtom 3540 May 17 07:53 known_hosts
root@wctsrv0134:/home/vtom/.ssh# chown vtom:vtom id_rsa.pub
root@wctsrv0134:/home/vtom/.ssh# chmod 600 id_rsa.pub
root@wctsrv0134:/home/vtom/.ssh# ll
total 32
drwx------  2 vtom vtom 4096 Oct  4 14:19 ./
drwxr-x--x 11 vtom vtom 4096 Sep 10 16:47 ../
-rw-------  1 vtom vtom  397 May 15 16:08 authorized_keys
-rw-------  1 vtom vtom  668 Oct  4 14:02 id_dsa
-rw-------  1 vtom vtom 1679 May 15 16:01 id_rsa
-rw-r-----  1 vtom vtom  397 May 15 16:01 id_rsa.pub
-rw-------  1 vtom vtom  397 Oct  4 14:19 id_rsa.pub
-rw-r--r--  1 vtom vtom 3540 May 17 07:53 known_hosts
root@wctsrv0134:~/.ssh# su - vtom
vtom@wctsrv0134:~/.ssh# cd /home/vtom/.ssh/
vtom@wctsrv0134~$ ssh-copy-id -f -i id_rsa.pub wctsrv0135
 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
WARNING:  Unauthorized access to this system is forbidden and will be
prosecuted by law. By accessing this system, you agree that your actions
may be monitored if unauthorized usage is suspected.
 Ubuntu 18.04.1 LTS


Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'wctsrv0135'"
and check to make sure that only the key(s) you wanted were added.

vtom@wctsrv0134:~$ ssh wctsrv0135

WARNING: Unauthorized access to this system is forbidden and will be
prosecuted by law. By accessing this system, you agree that your actions
may be monitored if unauthorized usage is suspected.
Ubuntu 18.04.1 LTS

vtom@wctsrv0135:~$


—–> OK

sources :  https://www.microlinux.fr/cle-ssh/ 

Copier le fichier id_rsa.pub sur les autres serveurs pour une authentification sans pwd.

cd /home/vtom/.ssh
ssh-copy-id -f -i id_rsa.pub wctsrv0055
ssh-copy-id -f -i id_rsa.pub wctsrv0056
ssh-copy-id -f -i id_rsa.pub wctsrv0060

… etc…

systemctl start vtom_bdaemon.service

vim /etc/init.d/boot_start_vtom.sh

su -l vtom -c /opt/vtom/admin/boot_start_client

chmod 755 /etc/init.d/boot_start_vtom.sh

cd /etc/systemd/system/
vim vtom_bdaemon.service

#Allows systemd control of the Backup Service
[Unit]
Description=Agent Vtom

[Service]
Type=forking
ExecStart=/bin/bash -c /etc/init.d/boot_start_vtom.sh
StandardOutput=tty
RemainAfterExit=yes
KillMode=process

[Install]
WantedBy=multi-user.target

chmod 755 vtom_bdaemon.service

cd /etc/systemd/system/multi-user.target.wants
ln -s /etc/systemd/system/vtom_bdaemon.service vtom_bdaemon.service

systemctl start vtom_bdaemon.service
systemctl enable vtom_bdaemon.service
systemctl status vtom_bdaemon.service

Pour connaitre la liste des services démarrés au boot :

systemctl list-unit-files

chage

useradd -m -g sudo admse_efougere
passwd admse_efougere

Voir les parametres du compte
chage -l admse_efougere

Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

Mot de passe permanent :
chage -m 0 -M 99999 -I -1 -E -1 admse_efougere

Last password change : Jun 24, 2019
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

Principales commandes Linux

Information Système

Commande Description
# arch affiche l’architecture de la machine(1)   [man]
# cal 2007 affiche le calendrier de 2007   [man]
# cat /proc/cpuinfo affiche les informations CPU   [man]
# cat /proc/interrupts affiche les interruptions   [man]
# cat /proc/meminfo affiche la mémoire utilisée   [man]
# cat /proc/swaps affiche le(s) fichier(s) swap   [man]
# cat /proc/version affiche la version du kernel   [man]
# cat /proc/net/dev affiche les périphériques réseau et leurs statistiques   [man]
# cat /proc/mounts affiche le(s) système(s) de fichiers monté(s)   [man]
# clock -w sauvegarde la date et la change dans le BIOS   [man]
# date affiche la date système   [man]
# date 041217002007.00 fixe la date et l’heure – moisjourheuresminutesannée.secondes   [man]
# dmidecode -q affiche les composants hardware – (SMBIOS / DMI)   [man]
# hdparm -i /dev/hda affiche les caractéristiques du disque dur   [man]
# hdparm -tT /dev/sda lance un test de lecture sur le disque dur   [man]
# lspci -tv affiche les périphériques PCI   [man]
# lsusb -tv affiche les périphériques usb   [man]
# uname -m affiche l’architecture de la machine (2)   [man]
# uname -r affiche la version du kernel   [man]
 « SOMMET «

Arrêt, Redémarrage et Déconnexion du système

Commande Description
# init 0 arrêter le système (2)   [man]
# logout libérer la session   [man]
# reboot redémarrer (2)   [man]
# shutdown -h now redémarrer maintenant   [man]
# shutdown -h 16:30 & planifier l’arrêt du système à 16h30   [man]
# shutdown -c annuler la planification d’un arrêt du système   [man]
# shutdown -r now redémarrer maintenant (1)   [man]
# telinit 0 arrêter le système (3)   [man]
 « SOMMET «

Fichiers et Répertoires

Commande Description
# cd /home entrer dans le répertoire ‘/home’   [man]
# cd .. descendre d’un niveau dans l’arborescence   [man]
# cd ../.. descendre de deux niveaux dans l’arborescence   [man]
# cd aller dans le répertoire home   [man]
# cd ~user1 entrer de le répertoire home de l’utilisateur user1   [man]
# cd – aller dans le répertoire précédent   [man]
# cp file1 file2 copier le file1 en file2   [man]
# cp dir/* . copier tous les fichiers d’un répertoire dans le répertoire de travail en cours   [man]
# cp -a /tmp/dir1 . copier un répertoire dans le répertoire de travail en cours   [man]
# cp -a dir1 dir2 copier le répertoire dir1 en un autre dir2   [man]
# cp file file1 extrait le type mime du fichier file comme texte   [man]
# iconv -l liste les encodages connus   [man]
# iconv -f fromEncoding -t toEncoding inputFile > outputFile crée un nouveau fichier par ce qui donné par le fichier d’entrée en supposant qu’il est encodé en fromEncoding et le converti à toEncoding   [man]
# find . -maxdepth 1 -name *.jpg -print -exec convert traitement qui redimensionne des fichiers dans le répertoire courant et les envoie dans un répertoire thumbnails (requière convert de Imagemagick)   [man]
# ln -s file1 lnk1 crée un lien symbolique à un fichier ou répertoire   [man]
# ln file1 lnk1 crée un lien physique à un fichier ou répertoire   [man]
# ls visualise les fichiers d’un répertoire   [man]
# ls -F visualise les fichiers d’un répertoire   [man]
# ls -l affiche les détails des fichiers et des répertoires   [man]
# ls -a affiche les fichiers cachés   [man]
# ls *[0-9]* affiche les fichiers et les répertoires qui contiennent des nombres   [man]
# lstree affiche les fichiers et les répertoires dans une arborescence qui commence par la racine (2)   [man]
# mkdir dir1 crée un répertoire appelé ‘dir1’   [man]
# mkdir dir1 dir2 crée deux répertoires simultanément   [man]
# mkdir -p /tmp/dir1/dir2 crée un répertoire en arborescence   [man]
# mv dir1 new_dir renomme / déplace un fichier ou un répertoire   [man]
# pwd affiche le chemin du répertoire courant   [man]
# rm -f file1 supprime le fichier nommé ‘file1’   [man]
# rm -rf dir1 supprime le répertoire nommé ‘dir1’ et son contenu récursivement   [man]
# rm -rf dir1 dir2 supprime deux répertoires et leurs contenus récursivement   [man]
# rmdir dir1 supprime le répertoire appelé ‘dir1’   [man]
# touch -t 0712250000 file1 modifie la date d’un fichier ou d’un répertoire (AAMMJJhhmm)   [man]
# tree affiche les fichiers et les répertoires dans une arborescence qui commence par la racine (1)   [man]
 « SOMMET «

Recherche de fichier

Commande Description
# find / -name file1 cherche un fichier ou un répertoire à l’intérieur du système depuis ‘/’   [man]
# find / -user user1 cherche des fichiers ou des répertoires appartenant à ‘user1’   [man]
# find /home/user1 -name \*.bin cherche des fichiers ou des répertoires avec l’extension ‘.bin’ à l’intérieur du répertoire ‘/home/user1’   [man]
# find /usr/bin -type f -atime +100 cherche des fichiers binaires qui ne sont pas utilisés depuis plus de 100 jours   [man]
# find /usr/bin -type f -mtime -10 cherche des fichiers créés ou changés depuis 10 jours   [man]
# find / -name *.rpm -exec chmod 755 ‘{}’ \; cherche des fichiers avec l’extension ‘.rpm’ et modifie leurs permissions   [man]
# find / -xdev -name \*.rpm cherche des fichiers avec l’extension ‘.rpm’ en ignorant les partitions amovibles comme les cd-rom, clé, etc…   [man]
# locate \*.ps trouve des fichiers avec l’extension ‘.ps’ – en premier lancer la commande ‘updatedb’   [man]
# whereis halt affiche l’emplacement des fichiers binaires, source ou man   [man]
# which halt affiche le chemin complet des binaires / exécutables   [man]
 « SOMMET «

Montage de système de fichiers

Commande Description
# fuser -km /mnt/hda2 force le démontage quand le périphérique est occupé   [man]
# mount /dev/hda2 /mnt/hda2 monte un disque nommé hda2 – vérifie l’existence du répertoire ‘/mnt/hda2’   [man]
# mount /dev/fd0 /mnt/floppy monte un lecteur de disquettes   [man]
# mount /dev/cdrom /mnt/cdrom monte un cdrom / dvdrom   [man]
# mount /dev/hdc /mnt/cdrecorder monte un cdrw / dvdrom   [man]
# mount /dev/hdb /mnt/cdrecorder monte un cdrw / dvdrom   [man]
# mount -o loop file.iso /mnt/cdrom monte une image d’un fichier iso   [man]
# mount -t vfat /dev/hda5 /mnt/hda5 monte un système de fichiers Windows FAT32   [man]
# mount /dev/sda1 /mnt/usbdisk monte une clé usb ou un lecteur mémoire flash   [man]
# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share monte un partage réseau Windows   [man]
# umount /dev/hda2 démonte un disque appelé hda2 – d’abord sortie du point de montage ‘/mnt/hda2’   [man]
# umount -n /mnt/hda2 lance le démontage sans l’écriture du fichier /etc/mtab – Utile quand le fichier est en lecture seule ou que le disque dur est plein   [man]
 « SOMMET «

Espace Disque

Commande Description
# df -h affiche la liste des partitions montées et leur espace libre   [man]
# dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n affiche l’espace utilisé par le paquets deb installés, triés par taille (debian, ubuntu, et autres)   [man]
# du -sh dir1 estime l’espace disque utilisé par le répertoire ‘dir1’   [man]
# du -sk * | sort -rn affiche la taille des fichiers et des répertoires triés par taille   [man]
# ls -lSr |more affiche la taille des fichiers et des répertoires ordonnés par taille   [man]
# rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n affiche l’espace utilisé par les paquets rpm installés triés par taille (fedor, redhat, et identiques)   [man]
 « SOMMET «

Utilisateurs et Groupes

Commande Description
# chage -E 2005-12-31 user1 fixe une date limite du mot de passe de l’utilisateur ‘user1’   [man]
# groupadd [group] crée un nouveau groupe   [man]
# groupdel [group] supprime un groupe   [man]
# groupmod -n moon sun renomme le groupe moon en groupe sun   [man]
# grpck teste la syntaxe correcte et le format du fichier ‘/etc/group’ et l’existence des groupes   [man]
# newgrp – [group] connexion à un nouveau groupe pour changer le groupe par défaut des fichiers récemment créés   [man]
# passwd change le mot de passe   [man]
# passwd user1 change le mot de passe d’un utilisateur ‘user1’ (seulement par root)   [man]
# pwck teste la syntaxe correcte et le format du fichier ‘/etc/passwd’ et l’existence des utilisateurs   [man]
# useradd -c crée un nouvel utilisateur « user1 » appartenant au groupe « admin »   [man]
# useradd user1 crée un nouvel utilisateur   [man]
# userdel -r user1 supprime un utilisateur (‘-r’ élimine son répertoire home)   [man]
# usermod -c change les attributs d’un utilisateur   [man]
 « SOMMET «

Permissions sur les Fichiers

Commande Description
# chgrp group1 file1 change le groupe du fichier ‘file1’   [man]
# chmod ugo+rwx directory1 fixe sur le répertoire ‘directory1’ les permissions de lecture (r), écriture (w) et d’accès (x) aux utilisateurs propriétaires (u) groupe (g) et autres (o)   [man]
# chmod go-rwx directory1 enlève sur le répertoire ‘directory1’ les permissions de lecture (r), écriture (w) et d’accès (x) aux utilisateurs groupe (g) et autres (o)   [man]
# chmod u+s /bin/file1 fixe l’octet SUID sur un fichier binaire – l’utilisateur qui lance ce fichier prend les mêmes privilèges que le propriétaire   [man]
# chmod u-s /bin/file1 ôte l’octet SUID sur un fichier binaire   [man]
# chmod g+s /home/public fixe l’octet SGID sur un répertoire – similaire à un SUID mais pour un répertoire   [man]
# chmod g-s /home/public désactive l’octet SGID sur un répertoire   [man]
# chmod o+t /home/public fixe l’octet STIKY sur un répertoire – permet la suppression de fichiers seulement aux propriétaires légitimes   [man]
# chmod o-t /home/public désactive l’octet STIKY sur un répertoire   [man]
# chown user1 file1 change le propriétaire d’un ficher   [man]
# chown -R user1 directory1 change l’utilisateur propriétaire d’un répertoire et de tous les fichiers et répertoires qui y sont contenus   [man]
# chown user1:group1 file1 change l’utilisateur et le groupe de la propriété d’un fichier   [man]
# find / -perm -u+s voir tous les fichiers sur le système avec le SUID configuré   [man]
# ls -lh affiche les permissions des fichiers   [man]
# ls /tmp | pr -T5 -W$COLUMNS divise le terminal en 5 colonnes   [man]
 « SOMMET «

Attributs Spéciaux sur les Fichies

Commande Description
# chattr +a file1 permet d’ouvrir un fichier en écriture seulement en mode ajout   [man]
# chattr +c file1 permet que ce fichier soit compressé / décompressé automatiquement par le noyau   [man]
# chattr +d file1 assure que le programme ignore les fichiers Dump pendant la sauvegarde   [man]
# chattr +i file1 assure que le fichier est immuable, lequel ne peut être supprimé, altéré, renommé ou lié   [man]
# chattr +s file1 permet au fichier d’être supprimé en toute sécurité   [man]
# chattr +S file1 assure que si le fichier est modifié les changements sont écrits en mode asynchrone avec sync   [man]
# chattr +u file1 vous permet de récupérer les contenus d’un fichier même s’il a été supprimé   [man]
# lsattr affiche les attributs spéciaux   [man]
 « SOMMET «

Archives et fichiers compressés

Commande Description
# bunzip2 file1.bz2 décompresse un fichier nommé ‘file1.bz2’   [man]
# bzip2 file1 compresse un fichier nommé ‘file1’   [man]
# gunzip file1.gz décompresse un fichier nommé ‘file1.gz’   [man]
# gzip file1 compresse un fichier nommé ‘file1’   [man]
# gzip -9 file1 compresse avec un maximum de compression   [man]
# rar a file1.rar test_file crée une archive rar nommée ‘file1.rar du fichier test_file   [man]
# rar a file1.rar file1 file2 dir1 compresse ‘file1’, ‘file2’ et ‘dir1’ simultanément   [man]
# rar x file1.rar décompresse une archive rar   [man]
# tar -cvf archive.tar file1 crée un tarball non compressé   [man]
# tar -cvf archive.tar file1 file2 dir1 crée une archive contenant ‘file1’, ‘file2’ et ‘dir1’   [man]
# tar -tf archive.tar affiche le contenu d’une archive   [man]
# tar -xvf archive.tar extrait un tarball   [man]
# tar -xvf archive.tar -C /tmp extrait un tarball dans /tmp   [man]
# tar -cvfj archive.tar.bz2 dir1 crée un tarball compressé dans bzip2   [man]
# tar -xvfj archive.tar.bz2 décompresse une archive tar dans bzip2   [man]
# tar -cvfz archive.tar.gz dir1 crée un tarball compressé dans gzip   [man]
# tar -xvfz archive.tar.gz décompresse une archive compressée tar dans gzip   [man]
# unrar x file1.rar décompresse une archive rar   [man]
# unzip file1.zip décompresse une archive zip   [man]
# zip file1.zip file1 crée une archive compressée en zip   [man]
# zip -r file1.zip file1 file2 dir1 compresse en zip plusieurs fichiers et répertoires simultanément   [man]
 « SOMMET «

Paquets RPM ( Fedora, Red Hat et autres)

Commande Description
# rpm -ivh [package.rpm] installe un paquet rpm   [man]
# rpm -ivh –nodeeps [package.rpm] installe un paquet rpm en ignorant les requêtes de dépendance   [man]
# rpm -U [package.rpm] met à jour un paquet rpm sans changer les fichiers de configuration   [man]
# rpm -F [package.rpm] met à jour un paquet rpm seulement s’il est déjà installé   [man]
# rpm -e [package] supprime un paquet rpm   [man]
# rpm -qa affiche tous les paquets rpm installés sur le système   [man]
# rpm -qa | grep httpd affiche tous les paquets avec le nom contenant « httpd »   [man]
# rpm -qi [package] obtient les informations d’un paquet spécifique installé   [man]
# rpm -qg affiche les paquets rpm d’un groupe de programme   [man]
# rpm -ql [package] affiche la liste des fichiers produits par un paquet installé   [man]
# rpm -qc [package] affiche la liste des fichiers de configuration produits par un paquet rpm installé   [man]
# rpm -q [package] –whatrequires affiche la liste des dépendances requises pour un paquet rpm   [man]
# rpm -q [package] –whatprovides affiche les possibilités fournies par un paquet rpm   [man]
# rpm -q [package] –scripts affiche les scripts lancés pendant l’installation et la suppression   [man]
# rpm -q [package] –changelog affiche l’historique des révisions d’un paquet rpm   [man]
# rpm -qf /etc/httpd/conf/httpd.conf vérifie à quel paquet rpm appartient un fichier donné   [man]
# rpm -qp [package.rpm] -l affiche la liste produite par un paquet rpm non installé   [man]
# rpm –import /media/cdrom/RPM-GPG-KEY importe la signature digitale clé-publique   [man]
# rpm –checksig [package.rpm] vérifie l’intégrité d’un paquet rpm   [man]
# rpm -qa gpg-pubkey vérifie l’intégrité de tous les paquets rpm installés   [man]
# rpm -V [package] teste la taille du fichier, les permissions, le type, le propriétaire, le groupe, la somme de contrôle MD5 et la dernière modification   [man]
# rpm -Va teste tous les paquets rpm installés sur le système – à utiliser avec précaution   [man]
# rpm -Vp [package.rpm] vérifie un paquet rpm non encore installé   [man]
# rpm -ivh /usr/src/redhat/RPMS/`arch`/[package.rpm] installe un paquet construit à partir de la source du rpm   [man]
# rpm2cpio [package.rpm] | cpio –extract –make-directories *bin* extrait le fichier exécutable d’un paquet rpm   [man]
# rpmbuild –rebuild [package.src.rpm] construit un paquet rpm depuis la source rpm   [man]
 « SOMMET «

utilitaire de paquets YUM (Fedora, RedHat et autres)

Commande Description
# yum -y install [package] télécharge et installe un paquet rpm   [man]
# yum localinstall [package.rpm] cela installera un RPM, et tentera de résoudre toutes les dépendance pour vous en utilisant votre dépôt   [man]
# yum -y update met à jour tous les paquets rpm installés sur le système   [man]
# yum update [package] met à jour un paquet rpm   [man]
# yum remove [package] enlève un paquet rpm   [man]
# yum list liste tous les paquets installés sur le système   [man]
# yum search [package] trouve le paquet sur le dépôt rpm   [man]
# yum clean [package] nettoie le cache rpm et supprimant les paquets téléchargés   [man]
# yum clean headers supprime toutes les entêtes des fichiers que le système utilise pour résoudre les dépendances   [man]
# yum clean all supprime le cache des paquets et les entêtes des fichiers   [man]
 « SOMMET «

Paquets DEB (Debian, Ubuntu et autres)

Commande Description
# dpkg -i [package.deb] installe / met à jour un paquet deb   [man]
# dpkg -r [package] supprime un paquet deb du système   [man]
# dpkg -l affiche tous les paquets deb installés sur le système   [man]
# dpkg -l | grep httpd affiche tous les paquets deb contenant le mot « httpd »   [man]
# dpkg -s [package] obtient l’information d’un paquet spécifique installé sur le système   [man]
# dpkg -L [package] affiche la liste des fichiers fournis par un paquet installé sur le système   [man]
# dpkg –contents [package.deb] affiche la liste des fichiers fournis par un paquet non encore installé   [man]
# dpkg -S /bin/ping vérifie à quel paquet appartient un fichier donné   [man]
 « SOMMET «

Utilitaire Paquets APT (Debian, Ubuntu et autres)

Commande Description
# apt-cache search [package] retourne la liste de paquets qui correspond à la chaîne de caractères « package »   [man]
# apt-cdrom install [package] installe / met à jour un paquet deb depuis un cd-rom   [man]
# apt-get install [package] installe / met à jour un paquet deb   [man]
# apt-get update met à jour la liste des paquets   [man]
# apt-get upgrade met à jour tous les paquets installés   [man]
# apt-get remove [package] supprime un paquet deb du système   [man]
# apt-get check vérifie que la résolution des dépendances soit correcte   [man]
# apt-get clean nettoie le cache des paquets téléchargés   [man]
 « SOMMET «

utilitaire Paquets Pacman (Arch, Frugalware et autres)

Commande Description
# pacman -S name installe le paquet ‘name’ avec ses dépendances   [man]
# pacman -R name supprime le paquet ‘name’ et tous les fichiers qui vont avec   [man]
 « SOMMET «

Voir le contenu d’un fichier

Commande Description
# cat file1 voit le contenu d’un fichier depuis la première ligne   [man]
# head -2 file1 voit les deux premières lignes d’un fichier   [man]
# less file1 similaire à la commande ‘more’ mais permet les mouvements avancer et reculer dans le fichier   [man]
# more file1 voit le contenu d’un fichier page par page   [man]
# tac file1 voit le contenu d’un fichier en commençant par la dernière ligne   [man]
# tail -2 file1 voit les deux dernières lignes d’un fichier   [man]
# tail -f /var/log/messages vue en temps réel de ce qui est ajouté au fichier   [man]
 « SOMMET «

Manipulation de Texte

Commande Description
# cat example.txt | awk ‘NR%2==1’ enlève toutes les lignes identiques de example.txt   [man]
# echo a b c | awk ‘{print $1}’ voit la première colonne d’une ligne   [man]
# echo a b c | awk ‘{print $1,$3}’ voit la première et la troisième colonne d’une ligne   [man]
# cat -n file1 dénombre les lignes d’un fichier   [man]
# comm -1 file1 file2 compare les contenus de deux fichiers par suppression des lignes uniques du ‘file1’   [man]
# comm -2 file1 file2 compare les contenus de deux fichiers par suppression des lignes uniques du ‘file2’   [man]
# comm -3 file1 file2 compare les contenus de deux fichiers par suppression des lignes uniques des deux fichiers   [man]
# diff file1 file2 trouve les différences entre deux fichiers   [man]
# grep Aug /var/log/messages cherche le mot « Aug » dans le fichier ‘/var/log/messages’   [man]
# grep ^Aug /var/log/messages cherche les mots qui commencent par « Aug » dans le fichier ‘/var/log/messages’   [man]
# grep [0-9] /var/log/messages sélectionne dans le fichier ‘/var/log/messages’ toutes les lignes qui contiennent des nombres   [man]
# grep Aug -R /var/log/* cherche la chaîne de caractères « Aug » dans le répertoire ‘/var/log’ et en dessous   [man]
# paste file1 file2 fusionne les contenus des deux fichiers en colonnes   [man]
# paste -d ‘+’ file1 file2 fusionne les contenus des deux fichiers en deux colonnes avec le délimiteur ‘+’ au centre   [man]
# sdiff file1 file2 trouve les différences entre deux fichiers et ajoute interactivement de façon semblable à « diff »   [man]
# sed ‘s/string1/string2/g’ example.txt remplace « string1 » par « string2 » dans example.txt   [man]
# sed ‘/^$/d’ example.txt enlève toutes les lignes vides dans example.txt   [man]
# sed ‘/ *#/d; /^$/d’ example.txt enlève les commentaires et les lignes vides dans example.txt   [man]
# sed -e ‘1d’ exampe.txt élimine la première ligne du fichier example.txt   [man]
# sed -n ‘/string1/p’ vue seulement des lignes qui contiennent le mot « string1 »   [man]
# sed -e ‘s/ *$//’ example.txt supprime les caractères vides à la fin de chaque ligne   [man]
# sed -e ‘s/string1//g’ example.txt supprime seulement le mot « string1 » du texte et laisse le reste intact   [man]
# sed -n ‘1,5p’ example.txt imprime de la première à la cinquième ligne du fichier example.txt   [man]
# sed -n ‘5p;5q’ example.txt imprime la ligne numéro 5 du fichier example.txt   [man]
# sed -e ‘s/00*/0/g’ example.txt remplace les séries de 0 par un seul zéro   [man]
# sort file1 file2 classe les contenus des deux fichiers   [man]
# sort file1 file2 | uniq classe les contenus des deux fichiers en omettant les lignes répétées   [man]
# sort file1 file2 | uniq -u classe les contenus des deux fichiers par la vue seulement de ligne unique   [man]
# sort file1 file2 | uniq -d classe les contenus des deux fichiers par la vue seulement de ligne dupliquée   [man]
# echo ‘word’ | tr ‘[:lower:]’ ‘[:upper:]’ convertit la casse minuscule en casse majuscule   [man]
 « SOMMET «

Fixer les caractères et Format de conversion de fichier

Commande Description
# dos2unix filedos.txt fileunix.txt convertit un fichier texte au format MSDOS au format UNIX   [man]
# recode ..HTML < page.txt > page.html convertit un fichier texte en html   [man]
# recode -l | more affiche tous les formats disponibles de conversion   [man]
# unix2dos fileunix.txt filedos.txt convertit un fichier texte au format UNIX au format MSDOS   [man]
 « SOMMET «

Analyse de système de fichiers

Commande Description
# badblocks -v /dev/hda1 teste les mauvais blocs sur le disque hda1   [man]
# dosfsck /dev/hda1 répare / teste l’intégrité d’un système de fichiers dos sur le disque hda1   [man]
# e2fsck /dev/hda1 répare / teste l’intégrité d’un système de fichiers ext2 sur le disque hda1   [man]
# e2fsck -j /dev/hda1 répare / teste l’intégrité d’un système de fichiers ext3 sur le disque hda1   [man]
# fsck /dev/hda1 répare / teste l’intégrité d’un système de fichiers linux sur le disque hda1   [man]
# fsck.ext2 /dev/hda1 répare / teste l’intégrité d’un système de fichiers ext2 sur le disque hda1   [man]
# fsck.ext3 /dev/hda1 répare / teste l’intégrité d’un système de fichiers ext3 sur le disque hda1   [man]
# fsck.vfat /dev/hda1 répare / teste l’intégrité d’un système de fichiers fat sur le disque hda1   [man]
# fsck.msdos /dev/hda1 répare / teste l’intégrité d’un système de fichiers dos sur le disque hda1   [man]
 « SOMMET «

Formater un système de fichiers

Commande Description
# fdformat -n /dev/fd0 formate une disquette   [man]
# mke2fs /dev/hda1 crée un système de fichiers de type linux ext2 sur la partition hda1   [man]
# mke2fs -j /dev/hda1 crée un système de fichiers de type linux ext3 (journal) sur la partition hda1   [man]
# mkfs /dev/hda1 crée un système de fichiers de type linux sur la partition hda1   [man]
# mkfs -t vfat 32 -F /dev/hda1 crée un système de fichiers FAT32   [man]
# mkswap /dev/hda3 crée un système de fichiers swap   [man]
 « SOMMET «

système de fichiers SWAP

Commande Description
# mkswap /dev/hda3 crée un système de fichiers swap   [man]
# swapon /dev/hda3 activation d’une nouvelle partition swap   [man]
# swapon /dev/hda2 /dev/hdb3 active deux partitions swap   [man]
 « SOMMET «

Sauvegarde

Commande Description
# find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2 trouve tous les fichiers avec l’extension ‘.log’ et fabrique une archive en bzip   [man]
# find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents trouve et copie tous les fichiers avec l’extension ‘.txt’ d’un répertoire à un autre   [man]
# dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’ fabrique une sauvegarde d’un disque dur local sur un hôte distant via ssh   [man]
# dd if=/dev/sda of=/tmp/file1 sauvegarde le contenu d’un disque dur dans un fichier   [man]
# dd if=/dev/hda of=/dev/fd0 bs=512 count=1 crée une copie du MBR sur une disquette   [man]
# dd if=/dev/fd0 of=/dev/hda bs=512 count=1 restaure le MBR d’une copie de sauvegardée sur une disquette   [man]
# dump -0aj -f /tmp/home0.bak /home fabrique une sauvegarde complète du répertoire ‘/home’   [man]
# dump -1aj -f /tmp/home0.bak /home fabrique une sauvegarde incrémentielle (différentielle) du répertoire ‘/home’   [man]
# restore -if /tmp/home0.bak restaure une sauvegarde interactivement   [man]
# rsync -rogpav –delete /home /tmp synchronisation entre répertoires   [man]
# rsync -rogpav -e ssh –delete /home ip_address:/tmp synchronisation via un tunnel SSH   [man]
# rsync -az -e ssh –delete ip_addr:/home/public /home/local synchronise un répertoire local avec un répertoire distant via ssh et compression   [man]
# rsync -az -e ssh –delete /home/local ip_addr:/home/public synchronise un répertoire distant avec un répertoire local via ssh et compression   [man]
# tar -Puf backup.tar /home/user fabrique une sauvegarde incrémentielle du répertoire ‘/home/user’   [man]
# ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’ copie le contenu d’un répertoire sur un répertoire distant via ssh   [man]
# ( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’ copie un répertoire local sur un répertoire distant via ssh   [man]
# tar cf – . | (cd /tmp/backup ; tar xf – ) copie locale en préservant les permissions et les liens d’un répertoire vers un autre   [man]
 « SOMMET «

CDROM

Commande Description
# cd-paranoia -B ripe les pistes audio d’un CD en fichiers wav   [man]
# cd-paranoia — ripe les trois premières pistes audio d’un CD en fichiers wav   [man]
# cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force efface un cdrom ré-inscriptible   [man]
# cdrecord -v dev=/dev/cdrom cd.iso grave un cdrom à partir d’une image iso   [man]
# gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom – grave un cdrom à partir d’une image iso compressée   [man]
# cdrecord –scanbus scanne le bus pour identifier le canal scsi   [man]
# dd if=/dev/hdc | md5sum fabrique une somme de contrôle md5sum d’un périphérique, comme un CD   [man]
# mkisofs /dev/cdrom > cd.iso crée une image iso d’un cdrom sur un disque   [man]
# mkisofs /dev/cdrom | gzip > cd_iso.gz crée une image iso compressée d’un cdrom sur un disque   [man]
# mkisofs -J -allow-leading-dots -R -V crée une image iso d’un répertoire   [man]
# mount -o loop cd.iso /mnt/iso monte une image iso   [man]
 « SOMMET «

Réseau (LAN / WiFi)

Commande Description
# dhclient eth0 active l’interface réseau ‘eth0’ en mode dhcp   [man]
# ethtool eth0 affiche les statistiques réseau de eth0   [man]
# host www.example.com consulte le hostname pour résoudre le nom en adresse ip et vice versa   [man]
# hostname affiche le hostname du système   [man]
# ifconfig eth0 affiche la configuration Ethernet de la carte réseau eth0   [man]
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 configure l’adresse IP de eth0   [man]
# ifconfig eth0 promisc configure ‘eth0’ en mode confus pour rassembler des paquets (sniffing)   [man]
# ifdown eth0 désactive l’interface ‘eth0’   [man]
# ifup eth0 active l’interface ‘eth0’   [man]
# ip link show affiche le statut du lien de toutes les interfaces réseau   [man]
# iwconfig eth1 affiche les réseaux sans fil   [man]
# iwlist scan scanne le wifi pour afficher les connections sans fil disponibles   [man]
# mii-tool eth0 affiche les statuts des liens ‘eth0’   [man]
# netstat -tup affiche toutes les connections actives et leur PID   [man]
# netstat -tupl affiche tous les services réseau écoutés sur le système et leur PID   [man]
# netstat -rn montre la table de routage de façon semblable à « route -n »   [man]
# nslookup www.example.com consulte le hostname pour résoudre le nom en adresse ip et vice versa   [man]
# route -n affiche la table de routage   [man]
# route add -net 0/0 gw IP_Gateway configure la passerelle par défaut   [man]
# route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure la route statique pour l’étendue réseau ‘192.168.0.0/16’   [man]
# route del 0/0 gw IP_gateway enlève la route statique   [man]
# echo active le routage ip   [man]
# tcpdump tcp port 80 affiche tous les trafics http   [man]
# whois www.example.com consulte la base de donnée whois   [man]
 « SOMMET «

Réseau Microsoft Windows (samba)

Commande Description
# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share monte un partage réseau Windows   [man]
# nbtscan ip_addr résolution de nom netbios   [man]
# nmblookup -A ip_addr résolution de nom netbios   [man]
# smbclient -L ip_addr/hostname affiche les partages distants d’un hôte windows   [man]
# smbget -Rr smb://ip_addr/share comme wget peut télécharger des fichiers depuis un hôte windows via smb   [man]
 « SOMMET «

IPTABLES (firewall)

Commande Description
# iptables -t filter -L affiche toutes les chaînes de la table de filtrage   [man]
# iptables -t nat -L affiche toutes les chaînes de la table nat   [man]
# iptables -t filter -F efface toutes les règles de la table de filtrage   [man]
# iptables -t nat -F efface toutes les règles de la table nat   [man]
# iptables -t filter -X supprime toutes les chaînes crées par un utilisateur   [man]
# iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT autorise les connexions telnet en entrée   [man]
# iptables -t filter -A OUTPUT -p tcp –dport http -j DROP bloque les connexions http en sortie   [man]
# iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT autorise les connexions POP3 aux chaînes avancées   [man]
# iptables -t filter -A INPUT -j LOG –log-prefix connexion sur la chaîne d’entrée   [man]
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE configure un PAT (Port Address Translation) sur eth0 en masquant les paquets sortants   [man]
# iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22 redirige les paquets adressés d’un hôte à un autre hôte   [man]
 « SOMMET «

Surveillance et debugage

Commande Description
# free -m affiche les statuts de la RAM en mégaoctets   [man]
# kill -9 process_id force la fermeture d’un processus et le termine   [man]
# kill -1 process_id force un processus à recharger sa configuration   [man]
# last reboot affiche l’historique du redémarrage   [man]
# lsmod affiche le kernel chargé   [man]
# lsof -p process_id affiche la liste des fichiers ouverts par le processus   [man]
# lsof /home/user1 affiche la liste des fichiers ouverts sur un chemin donné   [man]
# ps -eafw affiche les tâches linux   [man]
# ps -e -o pid,args –forest affiche les tâches linux dans un mode hiérarchique   [man]
# pstree montre les processus du système sous forme d’arborescence   [man]
# smartctl -A /dev/hda surveille avec précision un disque dur à travers SMART   [man]
# smartctl -i /dev/hda teste si SMART est actif sur un disque dur   [man]
# strace -c ls >/dev/null affiche les appels système venant et reçus par un processus   [man]
# strace -f -e open ls >/dev/null affiche la bibliothèque des appels   [man]
# tail /var/log/dmesg affiche les évènements inhérents aux processus de démarrage du kernel   [man]
# tail /var/log/messages affiche les évènements système   [man]
# top affiche les tâches linux qui utilisent le plus le CPU   [man]
# watch -n1 ‘cat /proc/interrupts’ affiche les interruptions en temps réel   [man]
 « SOMMET «

Autres commandes utiles

Commande Description
# alias hh=’history’ fixe un alias pour la commande hh = history   [man]
# apropos …keyword affiche la liste des commandes qui contient le mot-clé d’un programme, utile quand vous savez ce que la programme doit faire, mais que vous n’en connaissez pas le nom de la commande   [man]
# chsh commande de changement de shell   [man]
# chsh –list-shells jolie commande pour savoir si vous avez une connexion distante dans une autre boite   [man]
# gpg -c file1 crypte un fichier avec GNU Privacy Guard   [man]
# gpg file1.gpg décrypte un fichier avec GNU Privacy Guard   [man]
# ldd /usr/bin/ssh affiche les librairies partagées requises par le programme ssh   [man]
# man ping affiche les pages d’aide en ligne par exemple la commande ping – utiliser l’option ‘-k’ pour trouver les commandes en relation   [man]
# mkbootdisk –device /dev/fd0 `uname -r` crée une disquette bootable   [man]
# wget -r www.example.com télécharge entièrement le site web   [man]
# wget -c www.example.com/file.iso télécharge un fichier avec la possibilité d’arrêter le téléchargement et le reprendre plus tard   [man]
# echo ‘wget -c www.example.com/files.iso’ | at 09:00 démarre un téléchargement à une heure donnée   [man]
# whatis …keyword affiche la description de ce que le programme fait   [man]
# who -a affiche qui est connecté, et imprime : l’heure du dernier redémarrage, les processus morts, les processus de connexion système, les Processus actifs générés par init, le runlevel courant, le dernier changement de l’horloge système   [man]

resolv.conf

tic, tac, hyde, arlequin, pong

cp /etc/resolv.conf /etc/resolv.conf.old
vim /etc/resolv.conf

domain ft.grp
search ft.grp faiveleytransport.local faiveley.com wabtec.com
nameserver 10.20.112.147
nameserver 10.20.112.64
nameserver 10.20.112.22
nameserver 10.1.1.224
nameserver 10.1.1.225

Création application vtom de création de snapshot vm base de données

29-09-2017 11:05:41 – Michael Valemberg
connexion ssh sur poste
ssh user:password@host

trouver l’id de la vm
vim-cmd vmsvc/getallvms

creer le snapshat de la vm :
vim-cmd vmsvc/snapshot.create ID NOM_SNAPSNOT

supprimer le snapshop aprés le backup
vim-cmd vmsvc/snapshot.removeall ID

29-09-2017 14:41:36 – Nicolas Lamotte
select v1.name
, v2.name
, v2.dns_name
, V2.IP_ADDRESS
from vcenter.VPXV_HOSTS v1
, vcenter.VPXV_VMS v2
where v1.HOSTID = v2.HOSTID

Réseau backup PDTB21

ifconfig

eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
      inet 10.153.15.50 netmask 255.255.192.0 broadcast 10.153.63.255
      inet6 fe80::9657:a5ff:fe54:710d prefixlen 64 scopeid 0x20<link>
      ether 94:57:a5:54:71:0d txqueuelen 1000 (Ethernet)
      RX packets 30331372 bytes 2055699599 (1.9 GiB)
      RX errors 0 dropped 100 overruns 0 frame 0
      TX packets 229490189 bytes 348363421184 (324.4 GiB)
      TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

rechercher la carte eno2
locate eno2
/etc/sysconfig/network-scripts/ifcfg-eno2
cd /etc/sysconfig/network-scripts/
vi ifcfg-eno2

 Modifier les lignes suivants :
 IPADDR=10.153.15.50 (voir IP_range)
 PREFIX=18

ifdown ifcfg-eno2
ifup ifcfg-eno2
ifconfig

Argument list too long

cd /exploit/logs/
grep -r « No data sent : Can not connect (ERR_NOCONN). » /exploit/logs/*.e |cut -d »: » -f1|cut -d ». » -f1|while read F; do ls -1 « $F.e »; done

/opt/vtom/admin/tom_submit.bash: eval: line 27: syntax error near unexpected token `(‘
/opt/vtom/admin/tom_submit.bash: eval: line 27: `echo No data sent : Can not connect (ERR_NOCONN).’
/exploit/scripts/vtom_del_non_vide.sh: line 9: /bin/grep: Argument list too long
/exploit/scripts/vtom_del_non_vide.sh: line 11: /bin/grep: Argument list too long

 

Il y a trop de fichier à analyser dans le répertoire.

Purger le répertoire

 

Restauration de la corbeille Nexus

Suite à suppression d’un dossier ou ficher dans Nexus (ex :releases)

Sur vlbid16x :

La corbeille est dans :
/soft/Talend-6.1.1/tac/Artifact-Repository-Nexus-V2.11.3-01/sonatype-work/nexus/trash

récupérer le fichier ou dossier à restaurer (copy ou move) dans :
/soft/Talend-6.1.1/tac/Artifact-Repository-Nexus-V2.11.3-01/sonatype-work/nexus/storage

Redonner les bons droits au fichier ou dossier (chown -R talenduser talendgroup).

Sur Nexus :

Il faut ajouter le dossier restauré (si c’est un fichier il faut juste l’indexer)

 

Les dossiers doivent porter le même nom :
sur le serveur :  

et via l’IHM :

Il faut ensuite reconstruire les index :

Et les Metadada :

espace dans les noms de fichiers

Remplacer les espaces par des _ dans les noms de fichier d’un dossier.

Sous Windows

cd mon_dossier
for /f "delims=" %%a in ('dir /b') do call :cmd "%%a"
exit
:cmd
set fichierbck=%~1
set fichier=%fichierbck: =_%
ren "%fichierbck%" "%fichier%"

Sous Linux

rename 's/[[:blank:]]/_/g' *

Remplacement temporaire

#IFS = field separator, so only accept end of line and not space as filename may contain space
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

for v_fic in `find ${w_rep_purge}/ -type f -mtime ${w_jour_purge} -name "*.${w_extension}" | grep ${w_grep}`
 do
    echo " - Suppression du fichier [${v_fic}] ..."
#    rm -f ${v_fic}
    ls -la ${v_fic}
 done
#IFS = restore old filed separator to not changed stand shell comportement
IFS=$SAVEIFS

nombre de process insuffisant

Pb Vtom : Error setuid(500), Resource temporarily unavailable

Le user Vtom passé dans le job n’est pas pris en compte.

PDTB9
root 9316 0.0 0.0 6808 1308 pts/3 S 10:59 0:00 /opt/vtom/abm/bin/bdaemon
root 14882 0.0 0.0 108248 1500 pts/3 S 13:17 0:00 \_ -bash /opt/vtom/admin/tom_submit.bash
root 14898 0.0 0.0 108248 620 pts/3 S 13:17 0:00 \_ -bash /opt/vtom/admin/tom_submit.bash
root 14899 0.0 0.0 100952 468 pts/3 S 13:17 0:00 \_ sleep 60

PDTB4
root 19864 0.0 0.0 6808 1320 ? S Jun09 0:21 /opt/vtom/abm/bin/bdaemon
ora112 62072 0.0 0.0 108356 1668 ? S 13:18 0:00 \_ -bash /opt/vtom/admin/tom_submit.bash
ora112 62092 0.0 0.0 108356 780 ? S 13:18 0:00 \_ -bash /opt/vtom/admin/tom_submit.bash
ora112 62093 0.0 0.0 100952 468 ? S 13:18 0:00 \_ sleep 120

Le nombre de process max sur la machine est insuffisant (nproc).

Modification du fichier /etc/security/limits.d/90-nproc.conf pour augmenter le nombre de process sur la machine pour tous les users

passage de 1024 à 2048

cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     2048

test dossier ou fichier exist

backup=/backups/${sid_oracle}/cold/

if [ ! -d ${backup} ]; then
mkdir ${backup}
else
rm -f ${backup}*
fi

FILE=/etc/resolv.conf
if test -f "$FILE"; then
    echo "$FILE exist"
fi
FILE=/etc/resolv.conf
if [ -f "$FILE" ]; then
    echo "$FILE exist"
fi
FILE=/etc/resolv.conf
if [[ -f "$FILE" ]]; then
    echo "$FILE exist"
fi
FILE=/etc/resolv.conf
if [ -f "$FILE" ]; then
    echo "$FILE exist"
else 
    echo "$FILE does not exist"
fi