دوستان زیادی درخواست آموزش تست سرعت اینترنت در لینوکس را خواسته بودند که در این پست خدمتتون یک آموزش کامل تقدیم خواهم کرد. در این پست با استفاده از speedtest-cli سرعت اینترنت را در یک کامپیوتر یا سرور لینوکسی تست میکنیم و هم سرعت آپلود و هم سرعت دانلود را بررسی خواهیم کرد.
سرعت اتصال به اینترنت چیزی است که ما همیشه در خانه و دفتر ما بررسی می کنیم. رایج ترین روش که ما استفاده می کنیم این است که با بازدید از وب سایت آزمون سرعت مانند speedtest.net. در آن سایت یک برنامه جاوا اسکریپت در مرورگر وب بارگذاری می شود که بهترین سرور (نزدیک) سرور را بر اساس زمان پینگ انتخاب می کند و سپس نتایج تست سرعت برای آن سرور نمایش داده می شود. Speedtest.net همچنین از فلش پلیر برای تولید گرافیکی استفاده می کند.
مشکل با استفاده از این تست های اینترنتی مبتنی بر وب این است که شما اجازه ندارید تست سرعت را در فواصل منظم برنامه ریزی کنید، مثلا به عنوان یک cronjob و شما می توانید آنها را در سرور های بی سر و صدا استفاده کنید. یک برنامه کاربردی که میتواند این مشکل را حل کند، “speedtest-cli” است. این برنامه به شما اجازه می دهد سرعت اینترنت خود را با استفاده از خط فرمان چک کنید.
Speedtest-cli یک اسکریپت نوشته شده در زبان برنامه نویسی پایتون است که سرعت اینترنت را دو طرفه اندازه گیری می کند. این نرم افزار به شما اجازه می دهد تا سرعت اینترنت خود را از فاصله در کیلومتر بررسی کنید، آن را می توانید در برابر سرورهای خاص آزمایش کنید و همچنین URL را فراهم می کند تا بتوانید نتیجه خود را در اینترنت به اشتراک بگذارید.
چطور speedtest-cli را نصب نماییم؟
برای نصب برنامه speedtest-cli، باید Python 2.4-3.4 یا یک نسخه به روز شده در سیستم خود نصب کنید.
شما می توانید ابزار speedtest-cli را با استفاده از دو روش نصب کنید. روش اول شامل استفاده از مدیر بسته بسته python-pip می باشد، روش دوم این است که اسکریپت پایتون را به صورت دستی دانلود کنید، آن را اجرایی کنید و سپس برنامه را اجرا کنید.
روش 1: نصب speedtest-cli با استفاده ازpython-pip
گام بعدی باید به عنوان کاربر ریشه اجرا شود، زیرا من نمی خواهم sudo را برای هر فرمان prepend کنم، ابتدا دستور زیر را در اوبونتو اجرا کنید تا کاربر ریشه شود منظور همان کاربر root میباشد
sudo su
1. اولین قدم این است که لیست بسته های شما از تمام مخازن اوبونتو و PPA را با اجرای دستور زیر به روز نگه دارید:
apt-get update
2. گام بعدی نصب پکیج مدیریت پیپ در سیستم شما است. همانطور که می بینید، فرمان بسیاری از وابستگی ها را نیز نصب می کند.
apt-get install python-pip
root@server1:/# apt-get install python-pip Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libexpat1-dev libpython-all-dev libpython-dev libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-crypto python-cryptography python-dbus python-dev python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2.7-dev Suggested packages: python-crypto-doc python-cryptography-doc python-cryptography-vectors python-dbus-dbg python-dbus-doc python-enum34-doc python-gi-cairo gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-fs python-gdata python-keyczar python-secretstorage-doc python-setuptools-doc The following NEW packages will be installed: libexpat1-dev libpython-all-dev libpython-dev libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-crypto python-cryptography python-dbus python-dev python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2.7-dev 0 upgraded, 27 newly installed, 0 to remove and 60 not upgraded. Need to get 32.1 MB of archives. After this operation, 53.6 MB of additional disk space will be used. Do you want to continue? [Y/n] y
دکمه Y را برای ادامه فشار دهید
3. پس از نصب بسته، شما می توانید برنامه را با استفاده از این دستور pip نصب کنید:
pip install speedtest-cli
Collecting speedtest-cli Downloading https://files.pythonhosted.org/packages/61/8b/58d1de9a7fff3e91c5ab956ab4ba72b49f42d9f73d5f3e248c740dfcc816/speedtest_cli-2.1.1-py2.py3-none-any.whl Installing collected packages: speedtest-cli Successfully installed speedtest-cli-2.1.1
4. اگر می خواهید برنامه آینده speedtest را در آینده ارتقا دهید، می توانید از این دستور استفاده کنید:
pip install speedtest-cli –-upgrade
Requirement already up-to-date: speedtest-cli in /usr/local/lib/python2.7/dist-packages Cleaning up...
روش 2: نصب آخرین نسخه از اسکریپت speedtest-cli از GitHub به صورت دستی
1. اول باید اسکریپت پایتون را از GitHub با استفاده از فرمان دانلود کنید
cd /tmpwget https://github.com/sivel/speedtest-cli/archive/master.zip
--2019-04-25 19:24:47-- https://github.com/sivel/speedtest-cli/archive/master.zip Resolving github.com (github.com)... 140.82.118.4, 140.82.118.3 Connecting to github.com (github.com)|140.82.118.4|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/sivel/speedtest-cli/zip/master [following] --2019-04-25 19:24:47-- https://codeload.github.com/sivel/speedtest-cli/zip/master Resolving codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120 Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/zip] Saving to: ‘master.zip’ master.zip [ <=> ] 27.55K 103KB/s in 0.3s 2019-04-25 19:24:48 (103 KB/s) - ‘master.zip’ saved [28215]
2. گام دوم این است که پرونده ای که شما دریافت کرده اید (master.zip) را باز کنید و آن را با استفاده از دستور unzip از حالت فشرده خارج کنید:
unzip master.zip
Archive: master.zip 681cdf20a5fe774ba3aefedd0cd88cbff5384439 creating: speedtest-cli-master/ inflating: speedtest-cli-master/.gitignore inflating: speedtest-cli-master/.travis.yml inflating: speedtest-cli-master/CONTRIBUTING.md inflating: speedtest-cli-master/LICENSE inflating: speedtest-cli-master/MANIFEST.in inflating: speedtest-cli-master/README.rst extracting: speedtest-cli-master/setup.cfg inflating: speedtest-cli-master/setup.py inflating: speedtest-cli-master/speedtest-cli.1 inflating: speedtest-cli-master/speedtest.py creating: speedtest-cli-master/tests/ creating: speedtest-cli-master/tests/scripts/ inflating: speedtest-cli-master/tests/scripts/source.py inflating: speedtest-cli-master/tox.ini
3. هنگامی که فایل را استخراج و از حالت فشرده خارج کردید، اسکریپت استخراج شده را اجرایی کنید، با رفتن به دایرکتوری استخراج شده و با استفاده از دستور chown بصورت زیر فایل قابلیت اجرایی پیدا میکند:
cd speedtest-cli-master/ chmod 755 speedtest.py
4. برای جلوگیری از تایپ کردن مسیر کامل در هر زمان، فایل اجرایی را به / usr / local / bin با استفاده از دستور زیر منتقل کنید:
sudo mv speedtest.py /usr/local/bin/speedtest-cli
چگونه سرعت اتصال به اینترنت با speedtest-cli را آزمایش کنیم؟
دستور speedtest-cli را اجرا کنید تا دانلود و سرعت اتصال اینترنت شما اندازی گیری و تست شود
speedtest-cli
Testing download speed........................................ Download: 916.39 Mbit/s Testing upload speed.................................................. Upload: 489.57 Mbit/s
اگر می خواهید نتیجه سرعت را بجای مگا بیت در حالت مگا بایت بررسی کنید از این دستور استفاده کنید:
speedtest-cli --bytes
Testing download speed........................................ Download: 114.15 Mbyte/s Testing upload speed.................................................. Upload: 49.61 Mbyte/s
اگر می خواهید نتیجه سرعت را با دوستان خود به اشتراک بگذارید، می توانید تصویر نتیجه را با URL ارائه شده پس از نتیجه دانلود کنید.
speedtest-cli --share
Retrieving speedtest.net configuration... Testing from Hetzner Online GmbH (..........)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by avrx (Limburg an der Lahn) [140.88 km]: 14.379 ms Testing download speed................................................................................ Download: 309.68 Mbit/s Testing upload speed................................................................................................ Upload: 316.33 Mbit/s Share results: http://www.speedtest.net/result/xxxxxxxxxxx.png
در زیر تصویر تست سرعت من از آزمون بالا است.
شما همچنین می توانید لیست سرورها تست را بر اساس فاصله بر اساس کیلومتر با استفاده از دستور زیر مشاهده کنید:
speedtest-cli --list
2628) Telstra (Adelaide, Australia) [17098.98 km] 4051) Vodafone Hutchison Australia (AE) (Adelaide, Australia) [17098.98 km] ........................................................................... 3254) Vodafone Hutchison Australia (PH) (Perth, Australia) [18700.26 km] 1931) IX Australia (Perth, Australia) [18700.26 km]
با جستجو در لیست از لحاظ فاصله، شما ممکن است یک لیست بزرگ از سرور ها ایجاد کنید. اگر می خواهید نتیجه را برای سرورهای یک منطقه خاص بررسی کنید، می توانید آن را با استفاده از دستور grep بدست بیاورید در این مثال کشور استرالیا مد نظر میباشد:
speedtest-cli --list | grep –i Australia
2604) Telstra (Brisbane, Australia) [15501.92 km] 1594) 'Yes' Optus (Brisbane, Australia) [15501.92 km] ............................................................................................... 3254) Vodafone Hutchison Australia (PH) (Perth, Australia) [18700.26 km] 1931) IX Australia (Perth, Australia) [18700.26 km]
ایجاد یک لاگ مربوط سرعت اینترنت با استفاده از speedtest-cli
Speedtest-cli می تواند به عنوان یک cronjob اجرا شود تا بتواند یک ورودی تست سرعت اینترنت داشته باشد. crontab را با این دستور باز کنید:
crontab -e
و این خط را اضافه کنید (فرض میکنم speedtest_cli.py در / usr / local / bin نصب شده است) به crontab:
30 00 * * * /usr/local/bin/speedtest-cli >> /tmp/speedlog.txt
تغییرات را ذخیره کنید و از ویرایشگر crontab خارج شوید. این تست سرعت در هر روز 0:30 انجام می شود و نتیجه را به فایل /tmp/speedlog.txt اضافه می کند.
امیدوارم این آموزش مورد استفاده شما عزیزان قرار گرفته باشد
با تشکر عیسی محمدزاده
کارشناس مدیریت سرور و هاستینگ و امنیت شبکه
اشتراک گذاری مطلب
لینک کوتاه برای مطلب