Squid Cache Belleği Otomatik Temizleme

Centos sunucuya kurduğunuz Squid proxy serverde cache bellek aşırı dolduğundan tıkanmalara sebep ola biliyor. Bu yüzden cache belleği silmek gerekiyor. Bunu kendiliğinden yapmasını sürekli girip cache belleği silip tekrar oluşturmamak için bir shell script hazırlayacağız. Bu scripti cron ile belirlediğimiz süre içerisinde otomatik çalışıp gerekli işlemleri yapmasını sağlayacağız. Önce herhangi bir editör aracılığı ile root dizini yada istediğiniz bir dizin altında scriptimizi oluşturalım.

[root@zulfumehmet /]# nano /root/squidct.sh

 

Centos 7

# squidct.sh squid cache bellek temizleme
# zulfu mehmet ozcifci info@zulfumehmet.com
 
systemctl stop squid
rm -rf /path/to/dir/cache/
rm -rf /var/spool/squid/
mkdir /var/spool/squid
chown squid:squid /var/spool/squid
restorecon -vr /var/spool/squid
squid -z
squid
systemctl start squid
systemctl status squid

Centos 6

# squidct.sh squid cache bellek temizleme
# zulfu mehmet ozcifci info@zulfumehmet.com
 
service squid stop
rm -rf /path/to/dir/cache/
rm -rf /var/spool/squid/
mkdir /var/spool/squid
chown squid:squid /var/spool/squid
restorecon -vr /var/spool/squid
squid -z
squid
service squid start
service squid status

Shell scriptimiz bu şekilde. Yaptığımız işlemler systemctl stop squid squidi durduruyoruz. Eski cache belleği siliyoruz. cache belleğimizin nerede olduğunu öğrenmek için.

[root@zulfumehmet /]# nano /etc/squid/squid.conf

Squid.conf dosyasını açıp aşağı satırlara baktığımızda cache belleğimizin yerini görebilirsiniz. /var/spool/squid dizini içinde yer alıyor.

 

Ardından sildiğimiz dizini oluşturuyoruz. Chown ile izin squid kullanıcısına izin veriyoruz. Kullanıcı adının squid olduğunu nereden biliyoruz bunun için dizini silmeden önce.

[root@zulfumehmet /]# cd /var/spool/
[root@zulfumehmet spool]#ls -lh

 

chmod ile dizin izni veriyoruz squid -z ile chache belleği oluşturuyoruz, systemctl start squid squid çalıştırıyoruz ve status diyerek squidin durumunu öğreniyoruz.

Dosyamızı root dizini altında oluşturduk şimdi okuma ve yazma izni verelim dosyamıza. Yoksa çalıştıramayız scriptimizi.

[root@zulfumehmet /]# chmod 777 /root/squidct.sh

Artık dosyamızı hazır ve çalıştırabiliriz.

[root@zulfumehmet ~]# cd /root
[root@zulfumehmet ~]# ./squidct.sh
2017/06/08 14:19:47 kid1| Set Current Directory to /var/spool/squid
2017/06/08 14:19:47 kid1| Creating missing swap directories
2017/06/08 14:19:47 kid1| /var/spool/squid exists
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/00
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/01
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/02
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/03
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/04
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/05
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/06
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/07
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/08
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/09
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/0A
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/0B
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/0C
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/0D
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/0E
2017/06/08 14:19:47 kid1| Making directories in /var/spool/squid/0F
● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2017-06-08 14:19:47 UTC; 21ms ago
Process: 2239 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 2234 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
Main PID: 2244 (squid)
CGroup: /system.slice/squid.service
├─2244 /usr/sbin/squid -f /etc/squid/squid.conf
└─2247 (squid-1) -f /etc/squid/squid.conf
 
Jun 08 14:19:47 zulfumehmet systemd[1]: Starting Squid caching proxy...
Jun 08 14:19:47 zulfumehmet systemd[1]: Started Squid caching proxy.
Jun 08 14:19:47 zulfumehmet squid[2244]: Squid Parent: will start 1 kids
Jun 08 14:19:47 zulfumehmet squid[2244]: Squid Parent: (squid-1) process...d
Hint: Some lines were ellipsized, use -l to show in full.
[root@zulfumehmet ~]#

Sciptimiz ile ön belleği sildik ve yerine boş bir ön bellek oluşturduk. Squid durumunu da aktif bir şekilde çalıştığını da gözlemledikten sonra artık bunu standarda bağlayalım. Örneğin her gün sabah saat 7 de kendiliğinden ön belleği temizlesin.

[root@zulfumehmet ~]# crontab -e
0 7 * * * /root/squidct.sh

Kuralımızı oluşturduk listeleyelim cron kurallarını.

[root@zulfumehmet ~]# crontab -l

Herhangi bir sıkıntı yaşamadıysanız listede her gün saat 7 de oluşturmuş olduğumuz scripti görmeniz gerekiyor. Eğer belirli saat aralıklarıyla temizlemesini isterseniz örneğin 5 saate bir scriptimiz çalışmasını isterseniz aşağıdaki kuralı kullanabilirsiniz.

* */5 * * * /root/squidcth.sh

Cron ile ilgili internette araştırma yaparak isteğinize göre nasıl kural oluşturabileceğinizi bulabilirsiniz.

Kolay gelsin.

Tarih:
Hit: 2611
Yazar: x-files

Taglar: centos temizleme cache squid ön bellek


Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.