Помогите написать скрипт

Помогите пожалуйста написать скрипт(не шарю тут, а нужно). На машине стоит squid который переодически черезчур жирнеет, лезет юзать свап от чего все начинает тупить.
Нужно что то типа:

#!/bin/bash
#кэш сквида на отдельном диске /dev/sda3 примонтирован в /squid
#очень хорошо было бы знать возможно ли вытащить состояние swap
#как это сделать я пока не знаю
export swap_size = размер свапа

if ( $swap_size != 0 ) then {
	/etc/init.d/squid stop
	#надо как то сделать паузу на мин 3 например, чтоб кальмар успел корректно
#завершить все соединения
	rm -R /squid/var/cache/*   #очищаем кэш, я пока умею только так...
	mv /squid/logs/access.log /home/proxy/logs/squid-access-$date 
	rm -R /squid/logs/*
	reboot 
	}
done 

теперь его нужно как то запускать где то раз в час. Это вроде cron может, только я не знаю как он работает...
ЗЫ еще один вопрос:
наблюдал пару раз такую картину. Свободной оперативы 10 Мб, но пишет используется свап 12 Кб. Проходит пару часов, свободной памяти например снова порядка 5-15 Мб а свапа уже 16 Кб. Допустим кто то забрал много памяти, начал юзать свап, но почему когда память освободилась свап не чистится?

50 17 * * * root

0 */1 * * * root /usr/local/bin/твой_скрипт
раз в сутки он будет запускать каждый час от пользователя root

Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Спасибо. не помешала бы еще

Спасибо.
не помешала бы еще помощь по самому скрипту. Как напремер узнать состояние swap? :)
Возник еще один вопрос, немного другого плана, но не буду создавать отдельную тему.
У меня "жирнеет" система. Сразу после установки и настройки, система при загрузке забирала ~29 Мб оперативной памяти. Сейчас после перезагрузки ~40 Мб. При этом система просто юзается как прокси серв, на нее за это время ничего не устанавливалось вроде...куда деется память?

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

cat /proc/swaps

Так можно узнать его (swap) состояние.

что у вас за антиквариат?

что у вас за антиквариат? 64Мб total memory?

bumbaram написал(а):
не помешала бы еще помощь по самому скрипту.

не занимайтесь ерундой...
почитайте внимательно squid.conf, если лень документацию читать.

что-то добрый я сегодня ....

.

leryc написал(а):
почитайте внимательно squid.conf, если лень документацию читать.

squid.conf.default достаточно
+ маны по потребностям.

А вот с документацией (основной!) они (разработчики squid'а) начинают переходит на принципы wiki, что не есть хорошо...

:wq
--
Live free or die

Anarchist написал(а): leryc

Anarchist написал(а):
leryc написал(а):
почитайте внимательно squid.conf, если лень документацию читать.

squid.conf.default достаточно
+ маны по потребностям.

А вот с документацией (основной!) они (разработчики squid'а) начинают переходит на принципы wiki, что не есть хорошо...

Squid.conf default не дает кэш в 5 Гб, а мне это очень критично(!) сильно экономиться трафик. Система используется только как маршрутизатор. В среднем из 640 мб система забирает 630 и это меня устраивает, но переодически(бывает раз дней в пять) ссистема перегибает и лезет в свап.

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

Ну вообще 640 Мб, но какая

leryc : Ну вообще 640 Мб, но какая вам разница Вы все равно ничего не написали по теме

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

А Вы бы не хамили человеку.

А Вы бы не хамили человеку. Он написал по теме - стоит все таки изучить документацию, перед тем, как лепить костыли. Вполне возможно он, либо кто-то еще имеет позитивный/негативный опыт установки и настройки squid, и эта информация была нужна для более детального ответа. А теперь Вам просто могут не захотеть помогать.

А по сабжу - *nix системы известны тем, что "любят" память. И по моему опыту (squid я не ставил, но наслышан об этом "монстре"), стоит расширить память хотя бы до 1Gb (хотя все зависит от предполагаемой нагрузки. Но памяти много не бывает). А Ваши мегабайты, кот. ложаться в своп - это могут быть просто дисковые кеши, или еще что-то. Своп будет использоваться даже тогда, когда много свободной памяти, это нормально.

blow написал(а): Своп будет

blow написал(а):
Своп будет использоваться даже тогда, когда много свободной памяти, это нормально.

И это нормально. Желающие могут подкрутить swappiness в sysctl

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

blow написал(а): А Вы бы не

blow написал(а):
А Вы бы не хамили человеку. Он написал по теме - стоит все таки изучить документацию, перед тем, как лепить костыли. Вполне возможно он, либо кто-то еще имеет позитивный/негативный опыт установки и настройки squid, и эта информация была нужна для более детального ответа. А теперь Вам просто могут не захотеть помогать.

у меня не было цели нахамить, человеку. Я просто ответил на пост в его же стиле.
Расширять память смысла нет, сам сквид не "упирается" в такое кол-во памяти, я просто его настраивал чтобы система не простаивала, а была загружена. 10 свободных мег, вполне достаточно для такой системы, больше то на ней ничего не делается...
Если использовать свап это нормально, тогда не понимаю почему оно загружается так хаотично. Например 3 дня top выдает что swap used 0.00 , а потом вдруг появляется какая то загрузка

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

ну, в общем-то, люди обычно

ну, в общем-то, люди обычно описывают свою конфигурацию (как правило), а в вашем случае не помешал бы еще и вывод #top - тогда, можеть быть, и написал бы чё по теме...

bumbaram написал(а):
leryc : Ну вообще 640 Мб, но какая вам разница Вы все равно ничего не написали по теме

Squid.conf default не дает кэш в 5 Гб, а мне это очень критично(!) сильно экономиться трафик. Система используется только как маршрутизатор. В среднем из 640 мб система забирает 630 и это меня устраивает,

на одном из серваков у меня живет сквид + exim + dovecot (imap) + vpn + samba + проброс 4 портов для видеокамер + апач - и всё это "хозяйство" "съедает" от 350 до 400 МБ (i486, 512мб)

вот мне и интересно - чем же вы так загрузили свой "маршрутизатор"

2.
вы не путаете swap системы с кэшем сквида?

тупит swap - "лечите" диск и iotop в помощь

у меня в настройках сквида - 50Мб memory кеш , 50Гб disk кеш - и сквид ниразу не вышел за границы.

оба этих параметра очень гибко настраиваются от варианта "фиксировано" до варианта "от" и "до"

что-то добрый я сегодня ....

leryc написал(а): на одном

leryc написал(а):
на одном из серваков у меня живет сквид + exim + dovecot (imap) + vpn + samba + проброс 4 портов для видеокамер + апач - и всё это "хозяйство" "съедает" от 350 до 400 МБ (i486, 512мб)

вот мне и интересно - чем же вы так загрузили свой "маршрутизатор"

leryc написал(а):
50Мб memory кеш , 50Гб disk кеш

Все правильно. Из этих 350-400, предполагаю сквид сжирает ~150 Mb. Не так ли?
У меня 200 Мб memory кеш , 20 Гб disk кеш.
Как просили:

top - 03:22:39 up  7:48,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  45 total,   1 running,  44 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:    644976k total,   252320k used,   392656k free,   104832k buffers
Swap:  1004052k total,        0k used,  1004052k free,    95996k cached

только он сейчас работает всего пару часов(свет вырубали, в доме ремонт) так что он еще не перешел в "рабочий" режим.
Если интересно могу выложить через сутки работы.

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

не так bumbaram

не так

bumbaram написал(а):
Все правильно. Из этих 350-400, предполагаю сквид сжирает ~150 Mb. Не так ли?

сквид сидит в своих 50.

то что вы отвели 200мб - это вы зря, имхо

в этом кэше сквид хранит таблицы (хэш) дискового кэша - и так много памяти ему не надо, имхо,
но это уже - вопрос религии

конечно же top интересует в момент "затупа" вместе со списком приложений, которые top'ятся в тот момент

и давно бы уже выложили бы свой конфиг - может где чего намудрили ....

а то, что память (оперативная) плавает (съедается) - так не забывайте, что "система" еще, кроме всего прочего, сама занимается "аптимизацией" на предмет уменьшения операций i\o disk

а еще процессы иногда порождают children'ов (проверка вирусов в вашем случае м.б.)

что-то добрый я сегодня ....

leryc написал(а): то что вы

leryc написал(а):
то что вы отвели 200мб - это вы зря, имхо

в этом кэше сквид хранит таблицы (хэш) дискового кэша - и так много памяти ему не надо, имхо,
но это уже - вопрос религии

конечно же top интересует в момент "затупа" вместе со списком приложений, которые top'ятся в тот момент

и давно бы уже выложили бы свой конфиг - может где чего намудрили ....

а то, что память (оперативная) плавает (съедается) - так не забывайте, что "система" еще, кроме всего прочего, сама занимается "аптимизацией" на предмет уменьшения операций i\o disk

а еще процессы иногда порождают children'ов (проверка вирусов в вашем случае м.б.)

Конфиг пожалуйста, поставил кэш на диске поменьше(5Гб):

#
http_port 85.110.231.50:7723
icp_port 0
tcp_incoming_address 0.0.0.0
udp_incoming_address 0.0.0.0
tcp_outgoing_address 0.0.0.0
udp_outgoing_address 0.0.0.0
####### user source ############
acl free_user src 10.1.1.55/255.255.255.255 # тут пользователи... 
#
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0

########open ports ##############
acl icq_ports port 443 445 563 5190
acl open_ports port 80 8000
acl open_ports port 21 25
acl open_ports port 1025-65535  #unregistred ports

########other rules   ###########
cache_mgr "s.lagner@gmail.com"
visible_hostname InRack
cache_mem 200 MB
cache_dir ufs /squid/var/cache 5120 16 256
cache_swap_high 90
cache_swap_low 70
maximum_object_size 25600 MB
#
cache_access_log /squid/logs/access.log
cache_log /squid/logs/cache.log
cache_store_log /squid/logs/store.log
logfile_rotate 10

######## access rules ###########
http_access allow localhost
http_access allow free_user
http_access allow icq_ports
http_access allow open_ports
http_access deny all
#
icp_access deny all
miss_access allow free_user
miss_access deny all

когда настраивал везде писали(в т.ч. http://squid.opennet.ru/config/QUICKSTART.shtml) что в конфиге писать количество памяти деленной на 3. У меня это полностью оправдалось. А выделять на него 50 Мб не рационально, еще бы 550 простаивали просто так...
Конфиг конечно можно ковырять, но мне все таки лучше скрипт, который проверяет используется свап или нет, и в противном случае чистит все.

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

не изобретайте

не изобретайте велосипед....

acl free_user src 10.1.1.55/255.255.255.255 # тут пользователи... 

тут один...
и это - вы?

acl all src 0.0.0.0/0.0.0.0

acl open_ports port 1025-65535  #unregistred ports

http_access allow open_ports

а тут - все остальные?

не является ли ваш сквид open-proxy для всего инета?

cache_dir ufs /squid/var/cache 5120 16 256

не принципиально, но почему-то после тестов возможных вариантов лично я остановился на варианте diskd
но это уже - вопрос религии...

bumbaram написал(а):
когда настраивал везде писали(в т.ч. http://squid.opennet.ru/config/QUICKSTART.shtml) что в конфиге писать количество памяти деленной на 3. У меня это полностью оправдалось. А выделять на него 50 Мб не рационально, еще бы 550 простаивали просто так...

я ничего не имею против уважаемого ресурса, но и моск включать надо... иногда...
1. разработчики - не дураки (имхо)

#Default:
# cache_mem 8 MB

#  TAG: maximum_object_size_in_memory	(bytes)
#	Objects greater than this size will not be attempted to kept in
#	the memory cache. This should be set high enough to keep objects
#	accessed frequently in memory to improve performance whilst low
#	enough to keep larger objects from hoarding cache_mem.
#
#Default:
# maximum_object_size_in_memory 8 KB

#  TAG: memory_replacement_policy
#	The memory replacement policy parameter determines which
#	objects are purged from memory when memory space is needed.
#
#	See cache_replacement_policy for details.
#
#Default:
# memory_replacement_policy lru

2. система сама разберется что делать со свободной памятью и ничё простаивать не будет, но может быть это избавит вас от тормозов

3. нежелание внимательно почитать документацию приводит к не(до)пониманию для чего служит cache_mem

bumbaram написал(а):
Конфиг конечно можно ковырять, но мне все таки лучше скрипт, который проверяет используется свап или нет, и в противном случае чистит все.

по поводу вашего скрипта....

#/etc/init.d/squid restart хоть по крону, хоть как....

1. я не думаю, что у вас дома оптоволокно и вы выкачиваете 20Гб за сутки - кроньте в 0 часов и спите спокойно
2. логи не особо сказываются на "тупость" сквида и их можно настроить на ротацию более тонко, чем сделано у вас
3. чистить кэш не средствами сквида - не кашерно как-то....
4. по сути ваш скрипт - это тот же самый "restart"... только через... (сами знаете какое место)...
5. оптимизацией диск-кэша занимается сам сквид периодически в рамках отведенного ему места.. , но эту оптимизацию можно дополнительно "тюнинговать" через acl

иго-го

1.я так и не увидел что тупит сквид
2. могу предположить что вы - большая дырка в инет
3. могу предположить, что у вас динамический IP и затупы случаются когда провайдер вам переназначает айпишник (но тут уж не только сквид затупит)
4. не изобретайте велосипед, оставьте скрипт в покое и ищите ПРИЧИНУ!

что-то добрый я сегодня ....

bagas написал(а): 0 */1 * * *

bagas написал(а):
0 */1 * * * root /usr/local/bin/твой_скрипт
раз в сутки он будет запускать каждый час от пользователя root

А зачем /1?! Чтоб страшней было? :D
FYI: 0 минуты не рекомендуется использовать без острой необходимости - система всегда найдет чем заняться при смене часа ;), a для этих целей вполне годится

23 * * * *

например...

bumbaram написал(а): На

bumbaram написал(а):
На машине стоит squid который переодически черезчур жирнеет, лезет юзать свап

Я тебе советую поколупать настройки сквида, там есть все что тебе нужно.

Цитата:
наблюдал пару раз такую картину. Свободной оперативы 10 Мб, но пишет используется свап 12 Кб. Проходит пару часов, свободной памяти например снова порядка 5-15 Мб а свапа уже 16 Кб. Допустим кто то забрал много памяти, начал юзать свап, но почему когда память освободилась свап не чистится?

Свап юзается всегда по умолчанию это можно выключить, но я не советую) не зависимо от того сколько у тебя памяти. Так устроена система. Это не баг это фичер.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".