NMT-200 ЧаВо

Ext3 или как его дефрагментировать?

Статья WildFlexy от 23.03.2010
Редакция от 03.09.2010

Вопрос — а зачем это делать, проигнорирую с кратким комментарием — не хотите — не надо. Но когда скорость линейного чтения файла с помощью dd опускается до смешных 7-10 мегабайт в секунду (при этом проверка dd на отмаунченном разделе дает 60MB/sec), то есть повод задуматься. Чем я и занимался весь вчерашний вечер… Практически безрезультатно — потому как сообщество линуксоведов и линуксолюбов убеждены в бесполезности данного занятия. То есть — простого и понятного софта НЕТ. Наиболее быстрый выход — перемещение всех файлов с раздела на внешний носитель и обратно. Это долго, но пока иного не могу нового предложить. Увы и ой!
Откуда такие страшно-фрагментированные файлы? От клиента Transmission — он это может сделать! Не забудьте у него поставить preallocation=2, иначе доведете хард до моего состояния.


MultiMan предложил альтернативу
Работает при наличии свободного места на HDD, большего чем самый максимальный файл.
Создаем скрипт:

file=$1;<br />
echo $file;<br /><br />
mkdir -p <b>/share/tmp/999</b>;<br />
cp -p "$file" <b>/share/tmp/999</b>;<br />
rm -f "$file";<br />
mv&nbsp;<b>/share/tmp/999</b>/* "$file";<br />

Сохраняем его, например, как /share/aaa.sh. Формат текстового файла — переводы строки в стиле Linux (это можно сделать в FAR manager).
Не забываем прописать разрешения на запуск:

chmod 777 /share/aaa.sh<br />

Вызываем его как в примере:

find <b>/share/Download</b> -type f -xdev -exec sh <b>/share/aaa.sh</b> {} \;

Пояснения:
файлы в данном примере упорядочиваются в каталоге /share/Download;
каталог /share/tmp/999 — произвольный временный каталог.
Скрипт перебирает все файлы из требуемого каталога, включая все вложенные каталоги, копирует их во временный каталог по-одному (именно во время копирования файл-копия будет упорядочен), затем стирает оригинал и перемещает на его место копию.

13:29 20.05.2010
Следующая запись
»
Подробное описание чистка труб канализации на сайте.
2010–2017 © NMT-200 ЧаВо