URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92074
[ Назад ]

Исходное сообщение
"Раздел из файла"

Отправлено yahan , 08-Авг-11 10:38 
Есть глючная программа, которая изредка зацикливается и забивает весь диск результатами своего труда :)
Хочу создать отдельный раздел под нее, чтобы последствия деятельности этой программы были минимальными, но отдельно выделять жесткий диск или переразбивать рабочий из-за такой ерунды нет желания.

Можно как-то создать файл и сделать из него раздел?


Содержание

Сообщения в этом обсуждении
"Раздел из файла"
Отправлено zd3n , 08-Авг-11 10:53 
1. Создать файл нужного размера. (dd или mkfile)
2. Отформатировать его под нужную файловую систему.
3. Смонтировать.
Всё...

"Раздел из файла"
Отправлено yahan , 08-Авг-11 13:41 
> 1. Создать файл нужного размера. (dd или mkfile)
> 2. Отформатировать его под нужную файловую систему.
> 3. Смонтировать.
> Всё...

Подробней опишу сам:
1. Создать файл нужного размера
убедиться, что имеется в наличии свободное место для файла:
df -h

собственно, создаем файл:
dd if=/dev/zero of=/part1 bs=1G count=10
где:
/dev/zero – специальный файл в UNIX-подобных системах, представляющий собой источник нулевых байтов (ASCII NUL, 0×00)
of=/part1 – файл который создаем
bs=1G – размер блока, 1ГигаБайт (вместо G может быть: К-КБайт, М-МБайт, G-ГБайт)
count=10 – количество блоков
В результате мы получили заданный файл, размером 1G*10=10 ГигаБайт.

Если создается файл большого размера, то операция может выполняться достаточно долго.
Отследить прогресс увеличения размера файла можно с другом терминальном окне:
watch -n 10 ls -lh /part1

2. Отформатировать его под нужную файловую систему.
mkfs -t ext3 /part1
где:
ext3 - тип ФС подставляем выбранную файловую систему (reiserfs, ext3, jfs, xfs ...)
/part1 – файл который создали в п.1

3. Смонтировать.
Создаем точку монтирования:
mkdir /mnt/megadrive
и даём директории полные права:
chmod 770 /mnt/megadrive
И монтируем:
mount -o loop -t ext3 /part1 /mnt/megadrive

Если все нормально добавляем монтирование в /etc/fstab



"Раздел из файла"
Отправлено Grey , 08-Авг-11 10:56 
> Есть глючная программа, которая изредка зацикливается и забивает весь диск результатами
> своего труда :)
> Хочу создать отдельный раздел под нее, чтобы последствия деятельности этой программы были
> минимальными, но отдельно выделять жесткий диск или переразбивать рабочий из-за такой
> ерунды нет желания.
> Можно как-то создать файл и сделать из него раздел?

Можно включить квотирование на разделе где лежит файл и выставить юзеру (которому даны права на файл) квоту.


"Раздел из файла"
Отправлено yahan , 08-Авг-11 13:42 
> Можно включить квотирование на разделе где лежит файл и выставить юзеру (которому
> даны права на файл) квоту.

К сожалению, забивает раздел root.


"Раздел из файла"
Отправлено LSTemp , 09-Авг-11 01:14 
> Есть глючная программа, которая изредка зацикливается и забивает весь диск результатами
> своего труда :)
> Хочу создать отдельный раздел под нее, чтобы последствия деятельности этой программы были
> минимальными, но отдельно выделять жесткий диск или переразбивать рабочий из-за такой
> ерунды нет желания.
> Можно как-то создать файл и сделать из него раздел?

И?

1) долбить тех. кто эту уродину написал
2) погуглить на счет ФС proc и отталкиваясь оттуда с привязкой к конкретному дистрибутиву (какому кстати?) ограничить возможность использования данной прогой определенных ресурсов системы. благо механизмов в новых системах на эту тему туева хуча.


"Раздел из файла"
Отправлено yahan , 09-Авг-11 10:44 
> И?
> 1) долбить тех. кто эту уродину написал
> 2) погуглить на счет ФС proc и отталкиваясь оттуда с привязкой к
> конкретному дистрибутиву (какому кстати?) ограничить возможность использования данной
> прогой определенных ресурсов системы. благо механизмов в новых системах на эту
> тему туева хуча.

Это анализатор логов squid free-sa.
Все дело в том, что глюк проявляется достаточно редко - не чаще 1 раза в год, его отловить достаточно сложно. Как раз для того, чтобы система полностью не умерала и можно было спокойно проанализировать ситуацию - я и сделал для free-sa отдельный раздел.

Как альтернативный вариант вижу настройку квот пользователя, но это делается несколько дольше, а с отдельным разделом как-то наглядней получается, да и перенастраивать особо ничего не надо :)

У меня это крутится на Ubuntu, ФС ext4.

Если можете предложить что-то более интересное для решения вышеописанной проблемы - пишите.


"Раздел из файла"
Отправлено anonymous , 10-Авг-11 18:13 
>[оверквотинг удален]
> Это анализатор логов squid free-sa.
> Все дело в том, что глюк проявляется достаточно редко - не чаще
> 1 раза в год, его отловить достаточно сложно. Как раз для
> того, чтобы система полностью не умерала и можно было спокойно проанализировать
> ситуацию - я и сделал для free-sa отдельный раздел.
> Как альтернативный вариант вижу настройку квот пользователя, но это делается несколько
> дольше, а с отдельным разделом как-то наглядней получается, да и перенастраивать
> особо ничего не надо :)
> У меня это крутится на Ubuntu, ФС ext4.
> Если можете предложить что-то более интересное для решения вышеописанной проблемы - пишите.

Могу предложить использовать крон и простенький скриптик, проверяющий размер файла и сжимающий/удаляющий/перемещающий куда-либо его в случае превышения лимита.
Либо освоить syslog и logrotate - да, это дольше, но это правильный подход именно системного администратора, а не велосипедостроителя-самоучки.
Пример скриптика:
#!/bin/sh

LOG="/var/log/free-sa.log"

if [ $(stat -c %s ${LOG}) -gt 52428800 ]; then
    gzip -9 ${LOG} && echo "Compressed succesfully"
else
    echo "Size is still OK"
fi

В данном случае лог сжимается, если более 50M.


"Раздел из файла"
Отправлено yahan , 11-Авг-11 10:03 
>[оверквотинг удален]
> подход именно системного администратора, а не велосипедостроителя-самоучки.
> Пример скриптика:
> #!/bin/sh
> LOG="/var/log/free-sa.log"
> if [ $(stat -c %s ${LOG}) -gt 52428800 ]; then
>     gzip -9 ${LOG} && echo "Compressed succesfully"
> else
>     echo "Size is still OK"
> fi
> В данном случае лог сжимается, если более 50M.

Спасибо, конечно, но вы бы прочитали для начала в чем суть проблемы. А проблема в том, что в один прекрасный момент, один из процессов создает файл и начинает быстро писать в него до тех пор пока место не закончится. syslog и logrotate это из другой оперы