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>"