<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: divin komotir</title>
    <description>The latest articles on DEV Community by divin komotir (@divin_komotir).</description>
    <link>https://dev.to/divin_komotir</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3162583%2F62acc86a-ff56-4787-8122-dd8b082def20.jpg</url>
      <title>DEV Community: divin komotir</title>
      <link>https://dev.to/divin_komotir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/divin_komotir"/>
    <language>en</language>
    <item>
      <title>Monitoring Windows en 10 minutes avec un script PowerShell simple</title>
      <dc:creator>divin komotir</dc:creator>
      <pubDate>Sun, 18 May 2025 16:06:18 +0000</pubDate>
      <link>https://dev.to/divin_komotir/monitoring-windows-en-10-minutes-avec-un-script-powershell-simple-4pf</link>
      <guid>https://dev.to/divin_komotir/monitoring-windows-en-10-minutes-avec-un-script-powershell-simple-4pf</guid>
      <description>&lt;p&gt;Vous avez besoin d’un moyen rapide pour surveiller les performances de votre machine Windows ? Plutôt que d’installer des outils complexes, voici un script PowerShell léger et efficace que vous pouvez écrire et exécuter en 10 minutes max !&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pourquoi ce script ?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parfois, on a juste besoin de vérifier rapidement :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si le CPU est surchargé&lt;/li&gt;
&lt;li&gt;Combien il reste de mémoire disponible&lt;/li&gt;
&lt;li&gt;L’espace disque libre sur C:&lt;/li&gt;
&lt;li&gt;Quels sont les processus les plus gourmands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce script répond à ces besoins sans installation, en utilisant uniquement PowerShell.&lt;/p&gt;

&lt;p&gt;C'est parti !&lt;/p&gt;

&lt;p&gt;Pour commencer, on va écrire notre script dans un éditeur de texte.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# monitoring_simple.ps1
$logFile = "C:\monitoring\log_system_$(Get-Date -Format 'yyyyMMdd').log"
$monitoringDuration = 600 # 10 minutes
$interval = 5 # Toutes les 5 secondes

if (-not (Test-Path -Path (Split-Path $logFile -Parent))) {
    New-Item -ItemType Directory -Path (Split-Path $logFile -Parent) | Out-Null
}

Add-Content -Path $logFile -Value "=== Début du monitoring $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ==="
Add-Content -Path $logFile -Value "Timestamp,CPU(%),Mémoire Libre(Mo),Disque Libre(Go),Processus"

function Get-CPUUsage { (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue | Round 2 }
function Get-FreeMemory { (Get-CimInstance Win32_OperatingSystem).FreePhysicalMemory / 1MB | Round 2 }
function Get-FreeDiskSpace { (Get-CimInstance Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace / 1GB | Round 2 }
function Get-TopProcesses { (Get-Process | Sort-Object CPU -Descending | Select-Object -First 3 | ForEach-Object { "$($_.Name)($($_.CPU.ToString('N1'))%)" }) -join ", " }

$endTime = (Get-Date).AddSeconds($monitoringDuration)
while ((Get-Date) -lt $endTime) {
    $logEntry = "$(Get-Date -Format 'HH:mm:ss'),$(Get-CPUUsage),$(Get-FreeMemory),$(Get-FreeDiskSpace),$(Get-TopProcesses)"
    Add-Content -Path $logFile -Value $logEntry
    Write-Host "[$(Get-Date -Format 'HH:mm:ss')] CPU: $(Get-CPUUsage)%, Mémoire libre: $(Get-FreeMemory) Mo"
    Start-Sleep -Seconds $interval
}

Add-Content -Path $logFile -Value "=== Fin du monitoring $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ==="
Write-Host "✅ Monitoring terminé. Logs dans $logFile"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensuite, il faudra enregistrer le code dans un fichier avec l'extension &lt;code&gt;.ps1&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Comment l’utiliser ?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ouvrez PowerShell en admin (Win + X → Terminal Admin).&lt;/li&gt;
&lt;li&gt;Exécutez le fichier (par exemple avec .\monitoring_simple.ps1).&lt;/li&gt;
&lt;li&gt;Consultez les logs dans C:\monitoring\log_system_*.log&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vous aurez un exemple de sortie comme suit :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=== Début du monitoring 2024-05-18 14:30:00 ===
Timestamp,CPU(%),Mémoire Libre(Mo),Disque Libre(Go),Processus
14:30:05,12.5,4237.21,125.8,chrome(7.5%),Teams(3.1%),explorer(1.2%)
14:30:10,8.2,4210.54,125.8,chrome(5.1%),vscode(2.3%),svchost(0.8%)
=== Fin du monitoring 2024-05-18 14:40:00 ===
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;Quoi d'autre ?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vous pouvez personnaliser ce script avec :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Changer la durée : Modifiez &lt;code&gt;$monitoringDuration&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Surveiller un autre disque : Remplacez &lt;code&gt;DeviceID='C:'&lt;/code&gt; par &lt;code&gt;'D:'&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ajouter d’autres métriques : Utilisez &lt;code&gt;Get-Counter&lt;/code&gt; pour surveiller le réseau, les disques, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et vous ? Vous utilisez quoi pour du monitoring simple sur Windows ? Dites-le en commentaires ! 👇&lt;/p&gt;

&lt;h1&gt;
  
  
  PowerShell #Windows #DevOps #Monitoring #Scripting
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Automatiser l'arrêt et le démarrage des EC2 avec un Cron Job</title>
      <dc:creator>divin komotir</dc:creator>
      <pubDate>Thu, 15 May 2025 03:48:40 +0000</pubDate>
      <link>https://dev.to/divin_komotir/automatiser-larret-et-le-demarrage-des-ec2-avec-un-cron-job-4n23</link>
      <guid>https://dev.to/divin_komotir/automatiser-larret-et-le-demarrage-des-ec2-avec-un-cron-job-4n23</guid>
      <description>&lt;p&gt;Dans cet article, nous allons voir comment créer un script Bash qui arrête et redémarre automatiquement nos instances EC2 à l'aide d'un cron job. Ce processus est idéal pour optimiser les coûts en arrêtant les instances hors des heures de travail et en les redémarrant lorsque c'est nécessaire.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prérequis :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Une instance EC2 sous Linux (Amazon Linux, Ubuntu, etc.)&lt;/li&gt;
&lt;li&gt;AWS CLI installé et configuré&lt;/li&gt;
&lt;li&gt;Accès SSH à l'instance (Nous utiliserons MobaXterm)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. Se connecter à son instance&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nous commençons par nous connecter à notre EC2 à distance avec MobaXterm via une paire de clé.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjbz6ijb79f22k2d6ofx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjbz6ijb79f22k2d6ofx.png" alt="Connexion à distance" width="800" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. Créer son script&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Une fois connecté, créez le fichier shutdown_restart_ec2.sh et ajoutez le code suivant via nano avec la commande &lt;code&gt;nano /home/ec2-user/shutdown_restart_ec2.sh&lt;/code&gt; :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31sldkdq1kcy0g060ncu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31sldkdq1kcy0g060ncu.png" alt="Code du script" width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;3. Rendre le script exécutable&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Une fois le script créé, on lui donne les droits d'exécution avec :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod +x /home/ec2-user/shutdown_restart_ec2.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;4. Ajouter notre script dans un cron job&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Une fois les droits d'exécution accordées, nous allons ouvrir crontab pour y placer notre cron job avec la commande &lt;code&gt;crontab -e&lt;/code&gt; . Cela ouvrira directement un éditeur de text vi/vim dans lequel nous ajouterons notre script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx57jvrf95e3twt0sgg15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx57jvrf95e3twt0sgg15.png" alt="Editeur vi/vim pour depot du script" width="800" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pour écrire dans vi/vim, appuyez sur &lt;em&gt;i&lt;/em&gt; pour entrer en mode --insertion. Cela fait, appuyer sur échappe pour passer en mode commande puis &lt;em&gt;:wq&lt;/em&gt; pour sauvegarder et quitter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1pls51bqsiepcgk78xk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1pls51bqsiepcgk78xk.png" alt="Résultat après vi/vim" width="800" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Après être sorti de l'éditeur, nous trouverons un message similaire qui confirme la creation de notre cron job. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;5. Lister nos cron&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maintenant que notre cron job a été crée, nous allons pouvoir vérifier si le service crond est actif avec &lt;code&gt;systemctl status crond&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fin25s760qcx8q5p0gv8b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fin25s760qcx8q5p0gv8b.png" alt="Vérification statut cron" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ensuite, nous allons pouvoir lister nos cron jobs avec &lt;code&gt;crontab -l&lt;/code&gt; :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7guun2rydy8zfc7s9ipe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7guun2rydy8zfc7s9ipe.png" alt="Vérification de nos cron jobs" width="800" height="38"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ça y est ! Nous avons fini notre tâche.&lt;br&gt;
Merci et à bientôt.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>ec2</category>
      <category>devops</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
