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
[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.
Ardından sildiğimiz dizini oluşturuyoruz.
[root@zulfumehmet /]# cd /var/spool/ [root@zulfumehmet spool]#ls -lh
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.
Hit: 4621
Yazar: x-files