Bir önceki yazımda bu yazının sinyalini vermiştim. Bildiğiniz üzere bu tarz “memory cleaner” programları her platform için mevcut. Peki biz bu işi linux sunucumuzda nasıl yaparız ?
Ben bu iş için minik bir shell script hazırladım ve bunu crontab’ıma tanımladım. Her saat başı buffer’ı flush ediyor.
free && sync && echo 3 > /proc/sys/vm/drop_caches && free
yukarıdaki komutu crontab-flush-buffer.sh diye bir dosyanın içine yazlım, kayıt edelim ve dosyayı çalıştırılabilir yapalım. Ben dosya isimlerine genelde nerede kullanıyor isem onu yazarak başlıyorum. Bu dosyayı crontab’a ekleyeceğim için crontab-flush-buffer.sh
chmod +x crontab-flush-buffer.sh
./crontab-flush-buffer.sh komutunu çalıştırdığımız zaman
total used free shared buffers cached Mem: 2061192 1910168 151024 0 2584 28856 -/+ buffers/cache: 1878728 182464 Swap: 4095992 1188104 2907888 total used free shared buffers cached Mem: 2061192 1891264 169928 0 628 12020 -/+ buffers/cache: 1878616 182576 Swap: 4095992 1188104 2907888
şeklinde bir çıktı alacaksınız. Gördüğünüz üzere fiziksel RAM iniz üzerindeki buffer temizlenmiş durumda.
Hadi bu dosyayı crontab’ımıza ekleyip her saat başı çalışmasını sağlayalım.
crontab -e
komutu ile düzenleme ekranına giriyoruz ve
##### FLUSH RAM BUFFER #### 0 * * * * /root/sh-scripts/crontab-flush-buffer.sh
şeklinde ekliyoruz. Bendeki dizin /root/sh-scripts/ olduğu için bu şekilde, kendinize göre düzenlemeyi ihmal etmeyin.
crontab -l
komutu ile listemize bakıyoruz, görüyoruz, gülüyor ve arkamıza yaslanıp kahvemizi içiyoruz.