Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: cartman в Jul 01, 2006, 18:17



Титла: Препълване на /var
Публикувано от: cartman в Jul 01, 2006, 18:17
Здравейте,имам проблем с /var:постоянно се препълваше.Аз намалявах интервала за Cron,надявайки се,че е от това.Сега Cron работи дневно,натоварва ми процесора през час-два(докато почиства),но /var е пълен пак.Всички настройки на Cron са направени "по подразбиране",в това число и запазването на старите файлове.Да не би да трябва да ги направя да пази максимум едно старо копие,за да не се пълни така лошо?Или проблема е някъде другаде?И изобщо какво да направя в такъв случай?


Титла: Препълване на /var
Публикувано от: redcure в Jul 02, 2006, 00:53
Здравей,

защо не го направиш на отделен дял и когато го закачаш във fstab-а да му зададеш опцийте nodev,nosuid. Просто идея ;)

Успех


Титла: Препълване на /var
Публикувано от: cartman в Jul 02, 2006, 01:03
Ами той изглежда е на отделен дял.Ето тук е картинка от diskdrake-a на Мандривата.А как да му задам
Цитат
опцийте nodev,nosuid
?


Титла: Препълване на /var
Публикувано от: kalifi в Jul 02, 2006, 02:13
Здравей cartman,

в /var предполагам има и други папки. Виж коя точно се пълни.

На мен често ми се случва да се събудя и резулатата от df да е приблизително този:
Use% Mounted on
100% /

Обикновено предната вечер съм инсталирал нещо, пишещо доста често log-ове в /var/log

Защото ползвам gnome, Baobab ми се вписва добре, сканира сравнително бързо и виждам коя папка ми е "изяла" мястото.

Приемам, че не знаеш какво пълни /var, дано съм те насочил.

Поздрави
Миро





Титла: Препълване на /var
Публикувано от: cartman в Jul 02, 2006, 03:37
Благодаря,kalifi.
Качих си КDirStat, което е еквивалент на Баобаб за КДЕ.Тук се вижда как изглежда моя /var. Аз форсирах log rotation-a на крон и изтрих всички стари логове,които завършваха на *.1.gz,*.2.gz и т.н.Само, че ситуацията не се подобри значително. Също така процесора ми се натоварва на 100 % от време на време, което преполагам е свързано с крон. Ако натисна почистване с KDirStat нищо не се получавa, a не знам доколко е безопасно да пипам сам.Най-много място е заето от urpmi,rpm и headers, но мисля,че не е хубаво да ги трия.
Може ли някой да даде идея как безопасно да поразчистя там?


Титла: Препълване на /var
Публикувано от: ray в Jul 02, 2006, 08:38
Здравей,
1.Първо виж с "find" кои са най-големите файлове и от кои дати са (запиши списъка във файл). Примерно > 50МБ.
2.Сега се сетих - виж дали /tmp не е връзка към /var/tmp, ако ДА можеш спокойно да поразчистиш /var/tmp. Там (в /tmp) понякога се трупа доста боклук или пък остава такъв.
3.После може да повториш стъпка 1) и да сравниш стария и новия файл - да видиш кои неща са се променили (diff).
Сигурно има и по-елегантен начин, но все още ми се спи ;)
За синтаксиса виж: man find
Ето някакъв стар скрипт който имам (промени някои неща):
#!/bin/bash
# find /home/ -size +50000  -exec ls -lahg {} \;
find /var -size +50000  -exec ls -lahg {} \;
Успех.Румен


Титла: Препълване на /var
Публикувано от: never_mind в Jul 02, 2006, 10:47
3.5 Gb /var и се препълва.... тва няма да е от логове според мен...


Титла: Препълване на /var
Публикувано от: kalifi в Jul 02, 2006, 11:25
never_mind,

ако не се лъжа бях инсталирал nagios или нещо друго за наблюдение, без да го настройвам. Явно си беше пуснало daemon-а и цяла нощ е логвало. За една нощ бяха отишли 2,5+ GB.

То и от логовете да е, не самите те са проблема, а това което ги съзадава.

Миро


Титла: Препълване на /var
Публикувано от: phantomlord в Jul 02, 2006, 15:08
Пробвай и Filelight. Чрез нея успях да открия веднъж един обемист и позабравен файл, който само ми изяде свободното място.





Титла: Препълване на /var
Публикувано от: в Jul 02, 2006, 16:57
Незнам как е при теб, но при дебиана има една директория

/var/cache/apt/archives
 
и там държи копия на deb пакетите, сваляни за да се инсталира нещо. Да не би да не си разчиствал ненужните такива файлове?


Титла: Препълване на /var
Публикувано от: cartman в Jul 02, 2006, 20:04
Здравейте всички и благодаря за отговорите!

@ray:
1.поразчистих /var/tmp.Там имаше само cache,с което се освободиха 5 МБ.
2.Ето какво стана с find:
Цитат
root@cartman sisiswit]# find /var/ -size +50000
/var/lib/rpm/Packages
/var/lib/urpmi/hdlist.main.cz
/var/lib/urpmi/hdlist.contrib.cz
/var/log/bandwidth
/var/spool/cups/tmp/3-zusammen-cupsjob7698
[root@cartman sisiswit]#

3.Изтрих съдържанието на /var/spool/cups/tmp и в резултат изтисках още 100+ МБ.
4.Файла /var/log/bandwidth е към 3088М.Изглежда,че постоянно пише нещо в него и има данни от няколко месеца.Мога ли да изтрия този файл или неговото съдържание?Предпочитам да изтрия целия файл,защото ако тръгна да отварям 3Г ще стане мазало :p

Ако успея да контролирам този файл,то ще успея да си оправя /var дяла.

Някой може ли да помогне с идеи?


Титла: Препълване на /var
Публикувано от: ray в Jul 02, 2006, 20:50
Здравей,
За да видиш кой (процес/програма) пише в 'bandwidth' ползвай: lsof или fuser (виж man страниците им).
Почти сигурно (99%) щом някакъв файл е в /var/log това е log-файл на някаква програма така че не виждам проблем да се изтрие. Лошото е че пак ще се пълни (ако не се спре/ограничи)
Понякога (много рядко) големи логове могат да се дължат на включена 'debug' опция/режим. Тук едва ли е такъв случая ;)
Успех.Румен


Титла: Препълване на /var
Публикувано от: Hapkoc в Jul 02, 2006, 20:56
С командата du можеш лесно да разбереш кое колко място заема:

du -sh /var/*

Ако проблема е с логовете, можеш да сложиш някакъв инструмент за ротиране на логове, като logrotate. Също, както те е посъветвал ray, с lsof можеш да провериш кой пише във въпросния файл:

lsof /var/log/bandwidth

Ако този, който пише, е syslogd - провери в /etc/syslog.conf кои категории и приоритети са настроени да отиват в този файл.


Титла: Препълване на /var
Публикувано от: cartman в Jul 02, 2006, 21:44
Да,оказва се,че  syslogd пише в този файл.Ето така изглежда самия syslog.conf.
Цитат
Понякога (много рядко) големи логове могат да се дължат на включена 'debug' опция/режим
.
Изглежда,че моя случай е точно такъв.В този лог се записва какво става с кернела(според мен :) ).И мога ли да махна тази debug опция и какво би станало ако я махна?И какво евентуално да направя за да не се получава това в бъдеще?

Току-що установих,че /var/log/bandwidth не е даден за rotation.Пуснах го и се получи bandwidth.1.gz, което аз изтрих.После форсирах cron да завърти останалите логове и в резултат имам 91 % свободни от /var вече :D

Сега единственото, което ме притеснява е как да предотвратя това препълване в бъдеще?Всичките логове,вкл.bandwidth са настроени за daily rotation.Дали това е достатъчно?


Титла: Препълване на /var
Публикувано от: never_mind в Jul 02, 2006, 22:08
Явно се изказах неподготвен ( понеже моя /var е на 80Mb партишън и никога не се е напълвал повече от 20%.... ). Можеш да нагласиш лог-овете да се завъртат до определен брой пъти, и освен това да се компресира прехвърления лог за максимално пестене на място. След като достигне лимита си за превъртания, последният компресиран лог се изтрива автоматично и така...