Jeux de données
Nous allons utiliser un jeux de fichier pour illustrer les différents type de merge.
cat produits.txt ID_PRD NOM DESCRIPTION ID_PRD1 Prd1 Desc prd1 ID_PRD2 Prd2 Desc prd2 ID_PRD3 Prd3 Desc prd3 ID_PRD4 Prd4 Desc prd4 ID_PRD5 Prd5 Desc prd5
cat stocks.txt ID_PRD QUANTITE ID_PRD1 10 ID_PRD2 20 ID_PRD3 30 ID_PRD4 40 ID_PRD5 50
cat commandes.txt ID_CMD ID_PRD ID_CMD1 4 ID_CMD2 4 ID_CMD3 4 ID_CMD4 2 ID_CMD5 3
Fusion simple
La commande "join" fusionne les fichiers, avec comme critère par défaut la première colonne, dans notre cas le ID_PRD. Seuls les lignes avec le ID_PRD présent dans les deux fichiers sont affichées.
join produits.txt stocks.txt ID_PRD NOM_PRD DESCRIPTION QUANTITE ID_PRD1 Prd1 Desc prd1 10 ID_PRD2 Prd2 Desc prd2 20 ID_PRD3 Prd3 Desc prd3 30 ID_PRD4 Prd4 Desc prd4 40 ID_PRD5 Prd5 Desc prd5 50
Précisons à la commande join les colonnes à afficher : du fichier premier fichier, uniquement la colonne numéro 1, du deuxième fichier uniquement la colonne numéro 2 :
join -o 1.1 2.2 produits.txt stocks.txt ID_PRD QUANTITE ID_PRD1 10 ID_PRD2 20 ID_PRD3 30 ID_PRD4 40 ID_PRD5 50
Précisons à la commande join les colonnes à afficher : du fichier premier fichier, uniquement les colonnes 1 et 2, du deuxième fichier uniquement la colonne numéro 2 :
join -o 1.1 1.2 2.2 produits.txt stocks.txt ID_PRD NOM_PRD QUANTITE ID_PRD1 Prd1 10 ID_PRD2 Prd2 20 ID_PRD3 Prd3 30 ID_PRD4 Prd4 40 ID_PRD5 Prd5 50
Autres exemples, chercher les lignes manquantes entre deux fichiers
$ cat file1.txt
ID;STATUS
1;EXPORTE
2;EXPORTE
3;EXPORTE
4;REVOQUE
6;EXPORTE
$ cat file2.txt
ID;STATUS
1;IMPORTE
3;EXPORTE
5;REVOQUE
6;EXPORTE
$ grep -F -v -x -f file1.txt file2.txt
1;IMPORTE
5;REVOQUE
$ grep -F -v -x -f file2.txt file1.txt
1;EXPORTE
2;EXPORTE
4;REVOQUE
$ grep -F -x -f file2.txt file1.txt
ID;STATUS
3;EXPORTE
6;EXPORTE
$ grep -F -x -f file1.txt file2.txt
ID;STATUS
3;EXPORTE
6;EXPORTE
Explication :
-v
(show non-matching lines), -x
(match whole lines) and -f
(read patterns from file) options
Without the -F
flag, grep
interprets PATTERN,
Biblio
https://bioinfo-fr.net/fusionner-des-fichiers-entre-eux-la-commande-join
- Détails
Mémo de commandes Linux
La commande hostnamectl
osboxes@ubuntu19-10PC1:~$ hostnamectl Static hostname: ubuntu19-10PC1 Pretty hostname: ubuntu19-10_PC1 Icon name: computer-vm Chassis: vm Machine ID: af44956437ff4d9fba77c6e656cf730a Boot ID: f5231de30a884590afcd8916ccbfda46 Virtualization: oracle Operating System: Ubuntu 19.10 Kernel: Linux 5.3.0-46-generic Architecture: x86-64 osboxes@ubuntu19-10PC1:~$
Grep récursif
grep -r -i xx /etc/ssh => on recherche le terme xx dans tous les fichiers du répertoire /etc/ssh
Changer le hostname
sudo hostnamectl set-hostname <new_name> => modifie le fichier /etc/hostname sudo vi /etc/hosts => mettre le nouveau nom sudo reboot -h now
- Détails
Sur ubuntu 19.10, le nouveau firewall est ufw, qui signifie Uncomplicated Firewall.
sudo ufw enable => active le firewall
sudo ufw disable => désactive le firewall
Ce statut est mémorisé dans le fichier /etc/ufw/ufw.conf.
De même, toute règle ajoutée en ligne de commande est sauvegardée dans le fichier /etc/ufw/user.rules.
Voir la configuration : ufw status
$sudo ufw status verbose Status: active Logging: on (low) Default: allow (incoming), allow (outgoing), deny (routed) New profiles: skip $
Dans cet exemple, tout les paquets entrants sont autorisés, ce qui n'est pas recommandé.
Désactivons les paquets entrants :
$sudo ufw default deny incoming Default incoming policy changed to 'deny' (be sure to update your rules accordingly) $sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip $
Si on veut ré-activer les paquets entrants:
$sudo ufw default allow incoming Default incoming policy changed to 'allow' (be sure to update your rules accordingly) $sudo ufw status verbose Status: active Logging: on (low) Default: allow (incoming), allow (outgoing), disabled (routed) New profiles: skip $
Pour activer le routage, il faut modifier le fichier /etc/ufw/sysctl.conf. Dans ce fichier, dé commenter la ligne net/ipv4/ip_forward=1. Rebooter la machine.
Suite au reboot, ufw status verbose montre toujours disabled routed.
A présent, "sudo ufw default allow routed" fait passer "routed" à "allow".
- Détails
Cet article explique comment configurer un PC en routeur avec deux pattes, ceci avec Ubuntu server 19.10. Créer un routeur nécessite plusieurs cartes réseau, ce que je n'ai pas sur mon PC. Nous utiliserons donc virtualbox.
Pour ce faire, notre VM aura 3 interfaces.
L'interface 1 sera dans le même réseau que le PC hôte. Ainsi, depuis le PC hôte, il sera possible de se connecter en ssh. Cette interface aura par exemple pour IP 192.168.1.101.
Les interfaces 2 et 3 seront les 2 pattes de notre routeur avec pour IP respective 1.0.0.254/24 et 2.0.0.254/24.
Nous aurons aussi 2 autres VMs (PC1 et PC2) pour simuler un PC, un de chaque côté des 2 interfaces de notre routeur.
Pour la VM en charge de simuler le routeur, la configuration au niveau de la GUI Virtualbox est la suivante :
- Interface 1 :
Mode d'accès réseau : Accès par pont
Nom : wlp2s0 (ma carte wifi de l'hôte)
- Interface 2:
Mode d'accès réseau : Réseau interne
Nom : intnet_1-0-0-0_masque24 (vous pouvez donner le nom de votre souhait)
- Interface 3:
Mode d'accès réseau : Réseau interne
Nom : intnet_2-0-0-0_masque24
Le mode d'accès de type Réseau interne permet de définir un sorte de switch interne.
Les deux autres VMs destinées à simuler un PC de chaque côté du routeur utiliseront le "réseau interne" correspondant.
- Configuration via netplan
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.1.101/24] gateway4: 192.168.1.254 nameservers: addresses: [8.8.8.8,8.8.4.4] enp0s8: dhcp4: no addresses: [1.0.0.254/24] routes: - to: 2.0.0.0/24 via : 2.0.0.254 enp0s9: dhcp4: no addresses: [2.0.0.254/24] routes: - to: 1.0.0.0/24 via : 1.0.0.254
On a donc défini pour enp0s8 et enp0s9 des routes pour passer du réseau 1.0.0.0/24 au réseau 2.0.0.0/24
Pour la VM en charge de simuler PC1, la configuration au niveau de la GUI Virtualbox est la suivante :
- Interface 1 :
Mode d'accès réseau : Accès par pont
Nom : wlp2s0 (ma carte wifi de l'hôte)
- Interface 2:
Mode d'accès réseau : Réseau interne
Nom : intnet_1-0-0-0_masque24 (vous pouvez donner le nom de votre souhait)
- Configuration via netplan
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager ethernets: enp0s3: dhcp4: no addresses: [192.168.1.102/24] gateway4: 192.168.1.254 nameservers: addresses: [8.8.8.8,8.8.4.4] enp0s8: dhcp4: no addresses: [1.0.0.1/24] routes: - to: 2.0.0.0/24 via: 1.0.0.254
La patte du côté du routeur a donc pour IP 1.0.0.1/24. On déclare la route 2.0.0.0/24 qui peut être atteinte en passant par 1.0.0.254.
- Détails
Sur les versions linux récente (c'est le cas de ubuntu server 19.10), la commande ifconfig n'est plus installée par défaut.
Il est conseillé d'utiliser netplan.
Exemples de commandes pour remplacer ifconfig
ip address show ou ip addr ou ip a : montre les adresses IP
ip link show => montre si le lien est up ou down
sudo ip addr add 192.168.1.101/24 dev enp0s3 => pour affecter une adresse IP
sudo ip link set dev enp0s3 up => pour monter le lien
sudo ip route add default via 192.168.1.254 => pour ajouter une route par défaut
Exemple de fichier de config pour ubuntu server 19.10
Fichier /etc/netplan/01-netcfg.yaml
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.1.101/24] gateway4: 192.168.1.254 nameservers: addresses: [8.8.8.8,8.8.4.4] enp0s8: dhcp4: no addresses: [1.0.0.254/24] routes: - to: 2.0.0.0/24 via : 2.0.0.254 enp0s9: dhcp4: no addresses: [2.0.0.254/24] routes: - to: 1.0.0.0/24 via : 1.0.0.254
Dans cet exemple, le serveur a trois cartes réseaux. Le serveur possède une route par défaut et un routage est défini entre les interfaces 1.0.0.254 et 2.0.0.254. Les DNS utilisés (8.8.8.8 et 8.8.4.4) sont ceux de Google.
sudo netplan try => pour tester la configuration
sudo netplan -d apply => pour debugger une configuration qui échoue
sudo netplan -d apply => pour faire appliquer la configuration
Exemple de fichier de config pour Ubuntu Desktop 19.10
Fichier /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager ethernets: enp0s3: dhcp4: no addresses: [192.168.1.102/24] gateway4: 192.168.1.254 nameservers: addresses: [8.8.8.8,8.8.4.4]
- Détails
Sous-catégories
Page 1 sur 2