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:
- Création du fichier de profile si il n’existe pas
- puis configuration
- 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 !