https://github.com/constgen/iospeed
Скрипт для измерения скорости чтения и записи памяти роутера или Linux
https://github.com/constgen/iospeed
Last synced: 9 months ago
JSON representation
Скрипт для измерения скорости чтения и записи памяти роутера или Linux
- Host: GitHub
- URL: https://github.com/constgen/iospeed
- Owner: constgen
- License: mit
- Created: 2025-07-03T19:03:52.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-03T19:37:27.000Z (about 1 year ago)
- Last Synced: 2025-09-05T03:11:12.513Z (10 months ago)
- Language: Shell
- Size: 14.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IOSpeed - Тест скорости диска или RAM для Entware
> [!CAUTION]
> Установщик и документация ещё дорабатываются
# iospeed
Скрипт для измерения скорости чтения и записи памяти роутера, WSL, Linux или MacOS. Можно измерить скорость как постоянной памяти так и оперативной
Вывод справки
```sh
./iospeed.sh -h
```
По умолчанию скрипт замеряет скорость в текущей дериктории путём создания временного файла. Если места не достаточно, то лучше указать размер в ручную в Мегабайтах с помощью флага `-s`
```sh
./iospeed.sh -s 1024
```
Указать другой путь - флаг `-p`. Например RAM или носитель Entware
```sh
./iospeed.sh -s 128 -p /tmp
./iospeed.sh -s 512 -p /opt
```



Простой и мощный скрипт для тестирования скорости чтения/записи дисков, оптимизированный для роутеров с Entware, но совместимый с WSL, Linux и macOS.
## 🚀 Особенности
- ✅ **Кроссплатформенность**: Работает на Entware, WSL, Linux, macOS
- 📊 **Точные измерения**: Использует dd с синхронной записью (oflag=dsync)
- 🎨 **Красивый вывод**: Современный CLI с цветами и иконками
- 🔧 **Автодиагностика**: Определяет файловую систему и её особенности
- ⚡ **Быстрая установка**: Одна команда для установки и автообновления
- 🔄 **Автообновления**: Интеграция с GitHub для получения последних версий
## 📦 Быстрая установка
### Для Entware (роутеры)
```bash
wget -qO- https://raw.githubusercontent.com/YOUR_USERNAME/iospeed/main/install-iospeed.sh | sh
```
### Ручная установка
```bash
# Скачать скрипт
wget https://raw.githubusercontent.com/YOUR_USERNAME/iospeed/main/iospeed.sh
chmod +x iospeed.sh
# Переместить в системную директорию (опционально)
sudo mv iospeed.sh /usr/local/bin/iospeed
```
## 🎯 Использование
### Основные команды
```bash
# Базовый тест (256 МБ в текущей директории)
iospeed.sh
# Тест определенного размера
iospeed.sh -s 512
# Тест в конкретной директории
iospeed.sh -p /mnt/usb
# Тест ОЗУ (через tmpfs)
iospeed.sh -p /dev/shm -s 100
# Справка
iospeed.sh -h
```
### Примеры результатов
```
=== Тест скорости записи ===
Файл: /tmp/tempfile.io
Файловая система: tmpfs
Sync запись: да
Размер блока: 1M
Кол-во блоков: 100
Общий размер: 100.0 MB
---------------------------
│ ✅ УСПЕХ: Тест завершен.
=== Результаты ===
Операция | Время (с) | Скорость (МБ/с)
-------- | ---------- | ---------------
Чтение | 0.020 | 5000.00
Запись | 0.174 | 574.71
```
## 🔧 Управление установкой
### Обновление
```bash
# Проверить обновления
install-iospeed.sh --check
# Обновить до последней версии
iospeed-update
```
### Удаление
```bash
install-iospeed.sh --uninstall
```
## 📋 Системные требования
### Минимальные требования
- POSIX-совместимый shell (`sh`, `bash`, `dash`)
- `dd` (обычно предустановлен)
- `awk` (обычно предустановлен)
### Для установки из GitHub
- `wget` или `curl`
- Интернет-соединение
### Рекомендуемые
- `sudo` для точной очистки кэша
- Внешняя утилита `time` для более точных измерений
## 🌟 Поддерживаемые файловые системы
Скрипт автоматически определяет тип файловой системы и адаптирует поведение:
- **ext4, xfs, btrfs** - нативные Linux ФС
- **tmpfs** - ОЗУ диск
- **9p** - WSL/виртуализация
- **exfat, vfat, ntfs** - Windows ФС (с особой обработкой)
- **И многие другие**
## 🚀 Фичи для продвинутых пользователей
### Автоматические обновления
При установке через `install-iospeed.sh` можно настроить автоматические еженедельные обновления через cron.
### Интеграция с мониторингом
Скрипт можно легко интегрировать в системы мониторинга, парся вывод таблицы результатов.
### Гибкая настройка
- Настройка размера блоков и количества операций
- Выбор директории для тестирования
- Поддержка различных единиц измерения (K, M)
## 🤝 Участие в разработке
### Сообщение об ошибках
Создайте issue с описанием:
- Операционная система и версия
- Тип файловой системы
- Полный вывод скрипта
- Ожидаемое и фактическое поведение
### Предложения улучшений
- Fork репозитория
- Создайте feature branch
- Отправьте Pull Request
## 📄 Лицензия
MIT License - см. файл [LICENSE](LICENSE)
## 🏆 Авторы
- **[Ваше имя]** - *Основная разработка* - [@your-username](https://github.com/your-username)
## 📚 Дополнительная информация
### Сравнение с аналогами
- **Преимущества над hdparm**: Работает с файлами, а не только с устройствами
- **Преимущества над dd**: Автоматическая очистка кэша и красивый вывод
- **Преимущества над fio**: Простота установки и использования
### Технические детали
- Использует `oflag=dsync` для принудительной синхронной записи
- Автоматическая очистка дискового кэша (если права позволяют)
- Умная обработка особенностей различных файловых систем
- Встроенная система управления временными файлами с ловушками
---
⭐ **Понравился проект? Поставьте звездочку!**