Press enter to see results or esc to cancel.

Squid: WARNING! Your cache is running out of filedescriptors

Feb 5 09:06:19 fw squid[2911]: client_side.cc(2699) WARNING! Your cache is running out of filedescriptors
Feb 5 09:06:37 fw squid[2911]: client_side.cc(2699) WARNING! Your cache is running out of filedescriptors

loglarda yukaridaki gibi uyari mesajlari aliyorsaniz,

Fedora ‘da;

/etc/init.d/squid stop

vim /etc/squid/squid.conf
  max_filedesc 4096

vim /etc/init.d/squid
scripten once herhangi bir satira ulimit -HSn 4096 satirini ekliyoruz.

/etc/init.d/squid start

Debian ‘da;

vim /etc/defaults/squid
  SQUID_MAXFD=4096

/etc/init.d/squid/restart

islemlerini yaparak sorunu cozebilirsiniz.

ag karti ustunde link var mi? yok mu ?

Birden fazla ethernet kartli bir linux makinaniz var ise hangi ethernette link var hangisinde yok bulmak biraz zor olabilir. Bunun icin asagidaki paketleri kullanabilirsiniz.

yum -y install mii-tool

mii-tool ciktisi;

[root@mail ~]# mii-tool
eth0: negotiated 100baseTx-FD flow-control, link ok

Alternatif olarak ethtool kullanabilirsiniz. Ag karti ustundeki tum istatistikleri veriyor.

yum -y install ethtool

[root@mail ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000001 (1)
Link detected: yes

sevgiyle.

Crontab ve Zamanlanmış Görevler

Crontab, kısaca zamanlanmış görevlerdir. Belirlediğimiz zaman süreçlerinde çalışmasını istediğimiz komut ya da scriptleri otomatik olarak çalışmasını sağlayan servistir.

Crontab aşağıdaki tabloda belirtilmiş olduğu gibi toplam 7 süreçten oluşur.

Alan Mana
1 Dakika (0-59)
2 Saat (2-24)
3 Gün (1-31)
4 Ay (1-12, Jan, Feb, …)
5 Haftanın günleri (0-6) 0=Sunday, 1=Monday …
or Sun, Mon, Tue, Wed, Thur, Fri
6 Komutu veya scripti çalıştırma hakkına sahip olan kullanıcı
7 Çalışacak komut ya da scriptler

Bir crontab dosyasında aşağıdaki gibi satır bulunur. Yukarıdaki tabloyu bakarak aşağıda ne yaptığımızı anlayabilirsiniz.

0 2 * * * root /home/murat/script.sh , dakika 0, saat 2, hergün, heray, haftanın hergünü, root kullanıcısı ve script.sh betik dosyası, Hergün saat 2:00 ‘da script.sh betiğinin çalışağını söylüyoruz.

# Dakika Saat Gün Ay Haftanın Gün Kullanıcı Script
0 8 * * Sun root /root/yedek.sh

root kullanıcı hakkı ile /root/yedek.sh dosyası her pazar günü saat 8:00 ‘da çalışacaktır.

Yukarıdaki satırın bulunduğu dosya /var/spool/cron dizini altındadır. Burada sadece root adı altında bir dosya bulunur(root kullanıcısı ile düzenliyorsak) ve bunu düzenleyerek crontab dosyamızı ayarlarız. Diğer bir yol ise benim en çok tercih etmiş olduğum crontab -e komutudur. Bu komutla direk /var/spool/cron/root dosyasını düzenlemiş oluyoruz.

crontab fonksiyonları

Kolsolda crontab –help yazarak kullanabileceğimiz fonksiyonları görebilirsiniz.

crontab -e : crontab dosyasını düzenler

crontab -l : crontab dosyasında bulunan zamanlanmış görevleri listeler

crontab -r : crontab dosyasını temizler.

Crontab ‘la zamanlanmış görevler yazmak zor geliyor ise /etc/ altında bulunan hazır cronları kullanabilirsiniz.

/etc/cron.hourly

/etc/cron.daily

/etc/cron.weekly

/etc/cron.mountly

Hazır zamanlanmış cronları kullanmak için yapmanız gereken, scriptinizi hazırlamak ve bu dizinlerin altına çalışma izniyle birlikte kopyalamaktır.

Crontab ‘ın ana konfigürasyon dosyası /etc/crontab altındadır. Burada cron ile ilgili mesajların hangi eposta adresine gideceğini, hazır zamanlanmış görevlerin hangi zamanda çalışacağı gibi ayarlara ulaşabilirsiniz.

/etc/crontab çıktısı,

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Crontab ile ilgili örnekler

# Her saatte bir ram çıktısını /tmp/ram dosyasına yazıyor

0 * * * * /usr/bin/free > /tmp/ram

# 2:00, 3:00, 4:00 saatlerinde script calısıyor (2-4 gibi yazarsak aralık belirtmiş oluruz)

0 2-4 * * * /root/test.sh

# Her ayın 1 ve 15’de saat 6.30 ‘da script calısıyor

30 6 1,15 * * /root/yedek.sh

# Her 5 dk bir mrtg scripti calışıyor

*/5 * * * * /root/mrtg.sh

# Her cumartesi saat 11 ‘de disk.sh çalıştırılıyor

* 11 * * Sat /root/disk.sh

# Her 2 saatte bir script çalışıyor

* */2 * * * /root/test.sh

Sanırım uzun bir cron anlatımı oldu.Umarım anlatabilmiş ve yardımcı olabilmişimdir.

Sevgiyle Murat Uğur EMİNOĞLU

Squid ve Apache ayni sunucuda

Tekrardan selamlar, squid ve apache ‘yi ayni makina ustunde kurmus iseniz apache ‘de ufak bir degisiklikle her ikisinide kullanabilirsiniz.

Yapmaniz gereken,

vim /etc/apache2/ports.conf

Listen 8080 satirini ekliyoruz. (veya hangi porttan calismasini istiyorsak)

/etc/init.d/apache2 restart

http://192.160.1.1:8080 girerek calistigini gorebilirsiniz. Bunu neden kullaniyorum diye sorarsaniz sarg ve mrtg icin 🙂

Kolay gelsin.

Murat.

Biraz Sed

Bugunlerde squid ile ugrastigim icin sagdan soldan hazir blacklistler indirdim.. Bu blacklist domainlerin sadece test.com seklinde eklendigini fark ettim, dogal olarak www.test.com yazdiginizda sayfa aciliyor. Bunun icin test.com ‘u .test.com olarak degistirmem gerekmektedir. Binlerce domaini bu sekilde degistirmek biraz sacma olurdu 🙂 Bende sed ‘i biraz karistirayim dedim, kullanimi basit ve ozel bir editor oldugunu anladim.

Simdi sed ile binlerce domainin onune nasil . isareti koyacagimizi aciklayalim.

sed ‘s/^/./g’ /etc/squid3/conf/video > /etc/squid3/conf/videoyeni

Eger degisiklik yapacaginiz dosyada ip adresleride var ise,

sed ‘s/^[a-z]/./g’ /etc/squid3/conf/video > /etc/squid3/conf/videoyeni

Bu kadar aciklamaya iki satirlik komut 🙂

Sevgiyle..

Murat.

Squid ile Bearshare engelleme

Birden lazim oldu, bende bearshare ‘i kurup squid ustunden geciriyim belki birseyler cikartir dedim ve asagidaki log u onume doktu.  Geriye sadece .bearshare.com domain olarak engellemek kaldi 🙂

1200082648.742   1628 192.168.1.201 TCP_MISS/200 4570 POST http://login.bearshare.com/registration/account.php? – DIRECT/207.232.22.51 text/xml

vim /etc/squid3/squid.conf (squid2 kullaniyorsaniz /etc/squid/ altinda.)

acl bearshare dstdomain .bearshare.com

http_access deny bearshare

Sevgiyle.