Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Определить свободное место на диске

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Есть такая задача:
- Сайт находится на VPS под Debian
- Необходимо:
a) Проверять раз в 30 минут сколько осталось свободного места на ЖД.
b) Если его осталось менее заданной величины (например 100мб), то удалить все файлы старше определенного возраста в определенной папке.
 
Пункт b я сделал давно запуском по крону find с параметрами, но на данный момент это решение очень не гибкое. Я тупо его запускаю раз в 12 часов. А нужно запускать когда заканчивается место на ЖД.
Подскажите как реализовать в целом проверку на свободное место и запуск если места мало команды на удаление.
Спасибо.

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 06:36 25-07-2011
FIZIK



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что-то вроде этого
 
if [ `df|grep /dev/sda7|awk '{ print $5 }'|awk '{gsub(/%/,"")}1'`>80 ]; then
 тут удаляем  файлы
fi
 
Вместо 80 подставь свой процент заполнения
вместо /dev/sda7 свой раздел
 
 

Всего записей: 193 | Зарегистр. 09-08-2004 | Отправлено: 12:41 25-07-2011
artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо. Сделал так
if [ `df|grep /dev/simfs|awk '{ print $5 }'|awk '{gsub(/%/,"")}1'`>80 ]; then find /var/www/test/cache/ -cmin +50 -type f -delete fi
Через консоль я получаю вот такое
http://my.jetscreenshot.com/2772/20110726-wa9p-10kb.jpg
то есть предложение что-нибудь еще ввести.
В итоге не работает.
Что делаю не так?

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 21:12 26-07-2011
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После
Цитата:
-delete
поставьте точку с запятой.


----------
Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

Всего записей: 6691 | Зарегистр. 29-04-2009 | Отправлено: 23:00 26-07-2011
artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Теперь удаляет, но почему-то в любом случае. Сейчас 50% занято, в процентах так >80 и оставил, тем не менее, команда на удаление срабатывает, хотя не должна.

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 05:44 27-07-2011
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Знак "больше" замените на "-gt":

Код:
if [ `df|grep /dev/simfs|awk '{ print $5 }'|awk '{gsub(/%/,"")}1'` -gt 80 ]; then find /var/www/test/cache/ -cmin +50 -type f -delete; fi



----------
Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

Всего записей: 6691 | Зарегистр. 29-04-2009 | Отправлено: 18:15 27-07-2011
artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо!
Еще один момент касаемо крона. Та строка, что была предложена работает отлично если в консоль её закинуть, но вот прописал я её в крон и она не работает. В логах крона вижу вот такое:
Jul 28 11:25:01 имясервера crond[25675]: (root) CMD (if [ `df|grep /dev/simfs|awk '{ print $5 }'|awk '{gsub(/)
а должно было быть  
if [ `df|grep /dev/simfs|awk '{ print $5 }'|awk '{gsub(/%/,"")}1'` -gt 95 ]; then /usr/bin/find /var/www/test/cache/ -cmin +4555 -type f -delete; fi
 
То есть, прерывается где-то. Похоже что на знаке %

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 11:32 28-07-2011
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробуйте так:

Код:
if [ `df | awk '/simfs/ {print $5}' | awk '{gsub(/.$/,"")}1'` -gt 80 ]; then find /var/www/test/cache/ -cmin +50 -type f -delete; fi

Если это не сработает, то поместите конструкцию в файл и дайте файлу нужные права. А путь до файла пропишите в кроне.

----------
Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

Всего записей: 6691 | Зарегистр. 29-04-2009 | Отправлено: 21:29 28-07-2011
artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! Уже сделал - нужно было просто знак % экранировать

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 10:04 29-07-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Определить свободное место на диске


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru