Centos’da Squid Cache Belleği Otomatik Temizlemek

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.

[[email protected] /]# nano /root/squidct.sh

Centos 7

# squidct.sh squid cache bellek temizleme
# zulfu mehmet ozcifci [email protected]et.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 [email protected]

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.

[[email protected] /]# 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

[[email protected] /]# cd /var/spool/

[[email protected] 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.

[[email protected] /]# chmod 777 /root/squidct.sh

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

[[email protected] ~]# cd /root
[[email protected] ~]# ./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.
[[email protected] ~]#

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.

[[email protected] ~]# crontab -e

0 7 * * * /root/squidct.sh

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

[[email protected] ~]# 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 ayrıntılı bilgi için www.zulfumehmet.com/linux-sistemlerde-cron/ makaleye bakabilirsiniz.

Zülfü Mehmet ÖZÇİFÇİ

Uzun zamandır yayında olan ve tamamen kişisel bir blog sitesi olan zulfumehmet.com sitesinin kurucusuyum. Geçimimi İnşaat Teknolojileri Kalite Kontrol Teknisyeni olarak daim etsem de Bilişim üzerine araştırmalarımı deneyip paylaştığım bir blog yayınlamaya karar verdim. Faydalı olması umuduyla.

Bunları da sevebilirsiniz

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

%d blogcu bunu beğendi:

"İşçiye ücretini, (alnının) teri kurumadan veriniz. H.Ş."

yandex