Bilgisayarınız Sizin için Hız Testi Yapsın, Log Tutsun - Speedtest Otomasyonu

OIP



Speedtest komut satırı üzerinden arkaplanda bizim yerimize hız testi yapacak ve kaydedecek basit bir otomasyon hazırladım.

Belirlediğimiz zaman aralığında arkaplanda otomatik çalışarak hız testi yapıyor ve aynı klasör içinde kendi oluşturduğu “speedtest_results.log” dosyasına log tutuyor.

Şimdilik sadece Windows için yaptım. İlerleyen zamanlarda Linux için ve Entware yüklü Keenetic cihazlar için de yapabilirim.


Hazır Dosya


Dilerseniz direkt bu linkten zip dosyasını indirebilir ve zip'i istediğiniz yere açabilirsiniz:

Döngü süresini belirlemek için speedtest_logger.bat dosyasına sağ tıklayıp Düzenle’yi seçin. Açılan Not Defteri penceresinde dongu_suresi değerini saniye cinsinden istediğiniz gibi ayarlayın. Varsayılan olarak bu değeri 1 saate denk gelecek şekilde 3600 olarak ayarladım.

Sadece tek sefer çalışmasını istiyor, döngü olmasını istemiyorsanız dongu değerini 0 olarak ayarlayın.

Bilgisayarı her açtığınızda bu işlemin otomatik olarak başlamasını istiyorsanız speedtest_görevi.vbs dosyasına sağ tıklayıp kısayol oluşturun. Bu kısayolu ise %appdata%\Microsoft\Windows\Start Menu\Programs\Startup klasörüne taşıyın.


Kendisi Hazırlamak İsteyenler için


Öncelikle istediğiniz bir konumda istediğiniz isimde bir klasör oluşturun.

Ardından Speedtest CLI uygulamasını şu sayfadan indirin:

İndirdiğiniz zip dosyasının içindekileri, oluşturduğunuz klasöre atın.

Not Defteri’ni açın. Şu kodu yapıştırın:

@echo off
setlocal enabledelayedexpansion

set "dongu_suresi=3600"  // Saniye cinsinden. Örneğin, 1 saat için 3600 olarak ayarlayın.
set "dongu=1" // 1 iken belirlenen aralıkta hız testi tekrarlanır, 0 iken döngü olmaz.


REM UTF-8
set OLDCP=
for /f "tokens=2 delims=:" %%A in ('chcp') do set "OLDCP=%%~A"
for /f %%A in ("%OLDCP%") do set "OLDCP=%%~A"
echo "%OLDCP%"| findstr /r "^\"[0123456789][0123456789]*\"$" 1>NUL 2>&1
if %ERRORLEVEL% NEQ 0 echo Fatal: Failed parsing code page id. & exit /b 1
chcp 65001 1>NUL
if %ERRORLEVEL% NEQ 0 echo Fatal: Failed changing code page id. & exit /b 1


:loop
if !dongu! equ 0 (
    exit /b
)

echo Hız testi gerçekleştiriliyor...

rem Run the speedtest.exe command and capture its output
set "output="  // Her döngü başında output değişkenini sıfırla
for /f "delims=" %%i in ('%~dp0\speedtest.exe --progress=no 2^>^&1') do (
    set "output=!output! %%i"
)

rem Geçerli tarih ve zamanı çek: "YYYY-MM-DD HH:MM:ss" format
for /f "tokens=1-3 delims= " %%a in ('echo %date% %time%') do (
    set "current_date_time=%%a %%b %%c"
)

rem Create a timestamp
set "timestamp=!current_date! !current_time!"

echo !current_date_time!
echo !output!
echo.
echo ######################

rem Geçerli tarih ve zamanı, speedtest çıktısını log dosyasına ekle
echo !current_date_time! >> %~dp0\speedtest_results.log
echo !output! >> %~dp0\speedtest_results.log
echo. >> %~dp0\speedtest_results.log
echo ###################### >> %~dp0\speedtest_results.log

rem Belirtilen döngü süresi için bekle
timeout /t !dongu_suresi! /nobreak >nul
goto loop

:end
endlocal

Döngü süresini belirlemek için dongu_suresi değerini saniye cinsinden istediğiniz gibi ayarlayın. Varsayılan olarak bu değeri 1 saate denk gelecek şekilde 3600 olarak ayarladım.

Sadece tek sefer çalışmasını istiyor, döngü olmasını istemiyorsanız dongu değerini 0 olarak ayarlayın.

Dosyayı daha önce oluşturduğunuz klasöre speedtest_logger.bat ismiyle kaydedin.

image

Yine bir Not Defteri açın ve şu kodu yapıştırın:

CreateObject("Wscript.Shell").Run "speedtest_logger.bat", 0, True

Bu dosyayı yine aynı klasöre speedtest_görevi.vbs ismiyle kaydedin.

image

Bilgisayarı her açtığınızda bu işlemin otomatik olarak başlamasını istiyorsanız speedtest_görevi.vbs dosyasına sağ tıklayıp kısayol oluşturun. Bu kısayolu ise %appdata%\Microsoft\Windows\Start Menu\Programs\Startup klasörüne taşıyın.

2 Beğeni

Docker kullananlar için şöyle bir şey de var, daha güzel gelebilir

1 Beğeni