Catégorie : Mémo

11 août 2018 /
1. Méthode Bash pure avec /dev/tcp (la plus légère)
timeout 1 bash -c '</dev/tcp/216.58.207.46/443 && echo Le port est ouvert || echo Le port est fermé' || echo Timeout

Explication :

  • Bash (sur la plupart des distros) supporte nativement les pseudo-fichiers /dev/tcp/hôte/port.
  • </dev/tcp/… tente d’ouvrir une connexion TCP sortante.
  • Si ça réussit → « Le port est ouvert ».
  • Si ça échoue → « Le port est fermé ».
  • timeout 1 limite à 1 seconde pour éviter d’attendre indéfiniment.
  • Le || echo Timeout gère le cas où la connexion timed out (port filtré ou très lent).

À adapter : remplace 216.58.207.46 par l’IP cible et 443 par le port voulu.

2. Avec curl en mode telnet
curl telnet://192.168.0.50:22

Explication :

  • Curl supporte le protocole telnet://hôte:port.
  • Si le port est ouvert → curl se connecte et attend (tu peux taper Ctrl+C pour quitter).
  • Si fermé → message d’erreur immédiat « Connection refused » ou « Couldn’t connect to server ».

Avantage : très visuel, tu vois directement si la connexion passe.

3. Avec curl silencieux + test de code retour
curl -s 192.168.0.50:22 >/dev/null && echo Le port est ouvert || echo Le port est fermé

 

Explication :

  • -s : mode silencieux (pas de barre de progression).
  • >/dev/null : jette toute sortie.
  • && / || teste le code retour de curl :
    • 0 → connexion réussie → port ouvert.
    • Autre → connexion refusée/timeout → port fermé.

Pour ajouter un timeout (recommandé) :

curl -s --connect-timeout 2 192.168.0.50:22 >/dev/null && echo Le port est ouvert || echo Le port est fermé

 

 

 

11 août 2018 /
1. Créer un fichier de 10 Mo (instantané)
dd if=/dev/zero of=10M.bin bs=1024 count=0 seek=$[1024*10]
2. Créer un fichier de 100 Mo (instantané)
dd if=/dev/zero of=100M.bin bs=1024 count=0 seek=$[1024*100]
3. Créer un fichier de 1 Go (instantané)
dd if=/dev/zero of=1G.bin bs=1024 count=0 seek=$[1024*1024]
Explication du principe :

  • count=0 → on n’écrit aucun bloc réel.
  • seek=… → on avance le pointeur de fichier à la taille souhaitée.
  • Résultat : le fichier apparaît comme ayant la taille demandée (ls -lh), mais il n’occupe presque aucun espace physique sur le disque tant qu’on n’y écrit pas vraiment de données (c’est un sparse file).
  • Instantané, même pour des dizaines de Go.

Vérification :

ls -lh *.bin          # Taille affichée
ls -lhS *.bin         # Taille réelle occupée sur disque (très petite)
du -h *.bin           # Espace réellement utilisé
Depuis bash 4+ et dd récent, tu peux utiliser des suffixes directs (plus clair, pas de calcul manuel) :

# 10 Mo
dd if=/dev/zero of=10M.bin bs=1 count=0 seek=10M

# 100 Mo
dd if=/dev/zero of=100M.bin bs=1 count=0 seek=100M

# 1 Go
dd if=/dev/zero of=1G.bin bs=1 count=0 seek=1G

# 10 Go en une ligne
dd if=/dev/zero of=10G.bin bs=1 count=0 seek=10G
Alternative avec truncate (encore plus simple et portable) :
truncate -s 10M 10M.bin
truncate -s 100M 100M.bin
truncate -s 1G 1G.bin
truncate -s 10G 10G.bin
truncate est souvent plus direct et disponible partout.

 

30 juillet 2018 /
1. Sur Linux : afficher le Service Tag / numéro de série
sudo dmidecode -s system-serial-number
Explication :

  • dmidecode lit les informations du BIOS/UEFI (DMI/SMBIOS).
  • -s system-serial-number affiche uniquement le champ du numéro de série (c’est exactement le Service Tag sur les machines Dell).
  • Nécessite sudo car l’accès aux données SMBIOS est restreint.

Alternative si dmidecode n’est pas installé :

cat /sys/class/dmi/id/product_serial
2. Sur Windows : afficher le Service Tag / numéro de série
wmic bios get serialnumber
Explication :

  • wmic (Windows Management Instrumentation Command-line) interroge le BIOS.
  • bios get serialnumber renvoie le numéro de série, qui est bien le Service Tag Dell.
Version PowerShell:
Get-WmiObject win32_bios | Select-Object SerialNumber

ou

(Get-CimInstance win32_bios).SerialNumber
21 juin 2018 /

On peut transformer une chaîne de caractère en majuscule ou en minuscule, sans passer par la commande « tr », en passant par une variable.

1. Déclarer la variable avec la chaîne
nom="Linux c'est TROP bien"
2. Afficher la variable en majuscules
echo ${nom^^}
3. Afficher la variable en minuscules
echo ${nom,,}
Explications et variantes utiles

  • ^^ : transforme toute la chaîne en majuscules.
  • ,, : transforme toute la chaîne en minuscules.
  • ^ : ne met en majuscule que le premier caractère.
  • , : ne met en minuscule que le premier caractère.

 

4 juin 2018 /
1. Sauvegarder les fichiers de plus de 180 jours dans une archive compressée
find . -mtime +180 -print0 | xargs -0 tar -zcf ../backup_04-06-2018.tar.gz
ou
find . -mtime +180 -print0 | xargs -0 tar -zcf "../backup_$(date +%d-%m-%Y).tar.gz"
Explication :

  • find . -mtime +180 : trouve les fichiers modifiés il y a plus de 180 jours.
  • -print0 + xargs -0 : gère correctement les noms de fichiers avec espaces, apostrophes, caractères spéciaux (très sûr).
  • tar -zcf ../backup_…tar.gz : crée l’archive gzip directement à partir de la liste fournie par xargs (sans passer par un fichier temporaire).
2. Compter le nombre de fichiers sauvegardés
find . -mtime +180 -exec ls -1 {} + | wc -l
Explication :

  • Liste les fichiers concernés (un par ligne avec ls -1).
  • wc -l compte les lignes → nombre de fichiers.

Variante plus précise (sans ls) :

find . -mtime +180 -print | wc -l
3. Supprimer les fichiers après sauvegarde
find . -mtime +180 -exec rm {} +
Explication :

  • -exec rm {} + : supprime les fichiers trouvés de façon efficace (regroupe les arguments autant que possible).

Attention maximale : cette commande est irréversible. Toujours tester d’abord avec -ls ou -print avant de passer à -exec rm.

Séquence complète:
# 1. Création de l'archive (adapte le chemin et le nom)
find . -mtime +180 -print0 | xargs -0 tar -zcf "../backup_$(date +%d-%m-%Y).tar.gz"

# 2. Vérification du nombre de fichiers concernés
find . -mtime +180 -print | wc -l

# 3. Suppression (À EXÉCUTER UNIQUEMENT APRÈS VÉRIFICATION !)
find . -mtime +180 -exec rm {} +