Mercredi, Juin 1, 2022

Powershell - Trouver les fichiers les plus volumineux

Les 10 plus gros fichiers du dossier courant

gci  | sort -descending -property length | select -first 10 name, length, Directory
  • gci Get-ChildItem récupère les items et items enfants d’un ou plusieurs dossiers
  • sort -descending -property length tri descendant des résultats par la taille des fichiers
  • select -first 10 Name, Length, Directory affichage des noms, taille et dossier des 10 premiers résultats

Les 10 plus gros fichiers du dossier courant et des dossiers enfants

gci -r  | sort -descending -property length | select -first 10 name, length, Directory
  • gci Get-ChildItem récupère les items et items enfants d’un ou plusieurs dossiers
  • -r -Recurse itération récursive
  • sort -descending -property length tri descendant des résultats par la taille des fichiers
  • select -first 10 Name, Length, Directory affichage des noms, taille et dossier des 10 premiers résultats

Les 10 plus gros fichiers d’une extension données

gci -r -Include *.tar | sort -descending -property length | select -first 10 name, length, Directory
  • -include *.tar inclus uniquement les fichiers avec l’extension tar

Les 10 plus gros fichiers d’une extension données et d’une taille supérieure à 1 Mb

gci -r -Include *.tar | sort -descending -property length | select -first 10 name, length, Directory | Where-Object {$_.Length -gt 215562245}

Dimanche, Février 13, 2022

Commande ls

La commande “ls” signifie “list” (liste en anglais) et permet d’afficher les fichiers et les répertoires dans le répertoire actuel. Il existe de nombreuses options pour personnaliser la sortie de la commande, mais nous allons nous concentrer sur les options les plus courantes.

de base

Commande Description
ls affichage des dossiers et fichiers du répertoire actuel
ls -l affichage en format long avec le détail
ls -a affichage de tous (all) dossiers et fichiers cachés y compris le niveau actuel . et le niveau parent ..
ls -A presque pareil à ls -a mais sans les . et ..

Il est possible de combiner les options

Commande Description
ls -la affichage en format long des fichiers y compris cachés
ls -lh la commande ls affiche bien la taille mais ce n’est pas facilement lisible, l’option -h pour human readable rend plus accessible la lecture

options avancées

Commande Description
ls -R affichage Récursif, autrement dit on affiche aussi le contenu des répertoires du niveau actuel
ls -S tri selon taille (Size) des fichiers
ls -r tri inverse (reverse)
ls -X tri selon les eXtension des fichiers
ls -F ajoute un ‘/’ à la fin des dossiers et * à la fin des executables
ls -F grep -vE / | affiche uniquement les fichiers sur base de la commande précédente

Lundi, Janvier 24, 2022

tmux - Terminal MUltipleXer

Sous linux, pour pouvoir travailler plus facilement il est possible d’utiliser plusieurs fenêtres dans un même terminal.

Installation

Vérifier la version installée:

tmux -V
tmux 2.6

Si ce n’est pas déjà installé une simple commande permet d’installer tmux:

sudo dnf install tmux -y

Utilisation

tmux s’utilise au clavier, il y a donc quelques raccourcis à connaître.

Lancement de tmux par défaut avec la session par défaut: tmux

Lancement de tmux avec une session personnalisé: tmux new -s ma-session

Dans tmux on a donc la session, les fenêtres et les panneaux.

Raccourcis Fonction
Ctrl-b % split vertical de la fenêtre
Ctrl-b “ split horizontal de la fenêtre
Ctrl-b o naviguer dans la fenêtre vers le panneau suivant
Ctrl-b + o rotation des panneaux
Ctrl-b c Création d’une nouvelle fenêtre
Ctrl-b n Naviguer à la fenêtre suivante
Ctrl-b p Naviguer à la fenêtre précédente
Ctrl-b d détacher la session active pour revenir au terminal sans clore la session
Ctrl-b s lister les sessions tmux actives avec prévisualisation

Mardi, Décembre 21, 2021

Améliorer le prompt PowerShell

Script pour améliorer le prompt de PowerShell de Windows en 3 étapes:

  1. Création du fichier de profile si il n’existe pas
  2. puis configuration
  3. et enfin chargement du nouveau profile.
# Création du fichier si il n'est pas présent
if (Test-Path $PROFILE) {Write-Host "file present"} else {New-Item -Type File -path $PROFILE -Force}

# 
$content = '
function prompt
{
    # affichage de la version de PowerShell
    Write-Host ("PS " + $(($PSVersionTable).PSVersion)) -nonewline -foregroundcolor Magenta
    # affichage de la date et de l'heure
    Write-Host (" " + $(get-date) +" ") -nonewline -foregroundcolor Cyan
    # affichage de l'utilisateur
    Write-Host ($(whoami)) -nonewline -foregroundcolor Gray
    # affichage du caractere arobase @
    Write-Host ("@") -nonewline -foregroundcolor Red
    # affichage du hostname de la machine
    Write-Host ($(hostname) +" ") -nonewline -foregroundcolor Yellow
    # affichage du répertoire courant
    Write-Host ("$pwd`n>") -nonewline -foregroundcolor Green
    # retour à la ligne
    return " "
}
'

$content | Out-File $PROFILE

# on recharge le profile pour prendre en compte le nouveau profile

. $PROFILE

Jeudi, Décembre 9, 2021

Configurer les services en démarrage automatique

Récemment un service critique d’un de mes serveurs s’est arrêté. En voulant le redémarrer j’ai constaté que le service était en StartType à Disabled, autrement dit il n’y avait aucune chance pour que le service puisse être démarré même manuellement.

En investiguant 30 sec :) je me suis aperçu que plusieurs autres services essentiels, qui étaient encore démarrés, avaient potentiellement le même problème à savoir le StartType à Disabled.

Plutôt que de cliquer sur chaque service pour le reconfigurer via l’interface Services de Windows, j’ai préféré utiliser la ligne de commande. Et ça marche bien :)

Voici la commande utilisée pour reconfigurer tous les services impactés de mon serveur:

Get-Service | Where-Object {$_.DisplayName -like 'SolarWinds*' -and $_.StartType -like 'Disabled'} | Select Name | Set-Service -StartType Automatic

Ensuite pour confirmer que la manipulation a bien fonctionné

Get-Service | Where-Object {$_.DisplayName -like 'SolarWinds*' -and $_.StartType -like 'Disabled'} | Select Name

Et voilà maintenant les services sont configurés correctement !