BASH betiklerini WEB’den çalıştıralım

Yaptığınız rutin işlemler için her seferinde terminal bağlantısı kurmak yerine bunu web üzerinden yapmanız keyifli olabilir. Unix / Linux betiklerimizi web üzerinden nasıl çalıştırabileceğimizi inceleyelim;

Öncelikle, CGI destekli Apache / lighttpd web sunucunuzu hazırlayın. Çalıştıracağımız komutları cgi-bin klasörüne kopyalamamız gerekiyor. Dabian ve Ubuntu’da bu klasörün varsayılan konumu /usr/lib/cgi-bin dir. Red Hat ve Fedora’da varsayılan cgi-bin konumu /var/www/cgi-bin dir. Çalıştıracağımız betiği hazırlayalım;

cd /usr/lib/cgi-bin
nano shutdown.cgi

shutdown.cgi dosyasi içine yazacağımız kodlar;

#!/bin/bash
echo "Content-type: text/html"
echo "<html><head><title>Shutdown</title></head><body>"
echo "<h1>Sistem kapatildi...</h1>"
echo "</body></html>"
/sbin/shutdown -h now

dosyanızı kaydedip kapattıktan sonra,

chmod +x shutdown.cgi
chmod u+s /sbin/shutdown

tarayıcınızdan http://ip-adresi/cgi-bin/shutdown.cgi adresini başlattığınızda sisteminiz hiç soru sormadan kapanacaktır.

Gerçek hayatta bu yöntemin çok farklı uygulamaları olabilir. Aklıma gelen ilk örnek, tüm sisteminizin sağlık durumunu tek bir web sayfasından takip edebilmeniz. Buna uygun basit bir örnek;

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html><head><title>Bash as CGI"
echo "</title></head><body>"
echo "<h1>General system information for host $(hostname -s)</h1>"
echo ""
echo "<h1>Memory Info</h1>"
echo "<pre> $(free -m) </pre>"
echo "<h1>Disk Info:</h1>"
echo "<pre> $(df -h) </pre>"
echo "<h1>Logged in user</h1>"
echo "<pre> $(w) </pre>"
echo "<center>Information generated on $(date)</center>"
echo "</body></html>"



Bir cevap yazın

(gerekli)