Bash Döngüleri

Bash Döngüler

2012/03/01 sadikkilic Bash ScriptingLinux0

  • iterasyon yapıları nasıl kullanılır?
  • Sonsuz döngü (infinite loop) nasıl kurulur?
  • Döngü ile dosya satır satır nasıl okunur?

Bu sorulara cevap olabilecek ve sıklıkla ihtiyaç duyulan döngüleri burada basit kullanımlarıyla ve örnekleriyle listelemek istedim. Bash üzerinde duruma ve ihtiyaca göre döngüler çeşitli şekillerde yazılılabilir. Döngülerin basit kullanımları için örnekleri inceleyiniz

  • Klasik for döngüsü
  • LIMIT=5
  • for ((i=1; i <= LIMIT ; i++)) do
  • echo -n “i=$i ”
  • done
  • i=1 i=2 i=3 i=4 i=5
  • Klasik while döngüsü
  • i=0
  • while [ $i -lt 4 ] do
  • echo -n “i=$i ” i=$[$i+1]
  • done
  • i=0 i=1 i=2 i=3
  • Belirli bir sayı aralığını saymak
  • for i in {0..5} do
  • echo -n “i=$i ”
  • done
  • i=0 i=1 i=2 i=3 i=4 i=5
  • Belirli sayı aralığını atlayarak saymak
  • for i in {0..10..2} do
  • echo -n “i=$i ”
  • done
  • i=0 i=2 i=4 i=6 i=8 i=10
  • Burada {a..b..c} formatıyla belirtilen kısım sayesinde a’dan b’ye kadar c kadar atlayarak döngü devam ediyor.
  • Belirli bir diziyi döngüde kullanmak
  • for i in {aa,ab,ba,bb} do
  • echo -n “i=$i ”
  • done
  • i=aa i=ab i=ba i=bb
  • Sabit ve degisken parçalara sahip diziyi döngüde kullanmak
  • for i in a{0..5}b do
  • echo -n “i=$i ”
  • done
  • i=a0b i=a1b i=a2b i=a3b i=a4b i=a5b
  • seq kullanarak saymak
  • for i in $(seq 0 5) do
  • echo -n “i=$i ”
  • done
  • i=0 i=1 i=2 i=3 i=4 i=5
  • seq ile atlayarak saymak
  • for i in $(seq 0 2 10) do
  • echo -n “i=$i ”
  • done
  • i=0 i=2 i=4 i=6 i=8 i=10
  • Yine yukarda bahsedilen kullanıma benzer şekilde {a..b..c} formatıyla belirtilen kısım sayesinde a’dan b’ye kadar c kadar atlayarak döngü devam ediyor.
  • for (( ; ; )) do echo “Sonsuz döngü (Durdurmak icin CTRL+C )” sleep 1 done Sonsuz döngü (Durdurmak icin CTRL+C ) Sonsuz döngü (Durdurmak icin CTRL+C ) Sonsuz döngü (Durdurmak icin CTRL+C ) Sonsuz döngü (Durdurmak icin CTRL+C ) ^C
  • while true do echo “Sonsuz döngü (Durdurmak icin CTRL+C kullanın)” sleep 1 done Sonsuz döngü (Durdurmak icin CTRL+C kullanın) Sonsuz döngü (Durdurmak icin CTRL+C kullanın) Sonsuz döngü (Durdurmak icin CTRL+C kullanın) Sonsuz döngü (Durdurmak icin CTRL+C kullanın) ^C
  • Belirli bir dizindeki php dosyalarının satır sayılarını öğrenmek istesek;for file in /tmp/sadik/*.php do wc -l $file done 73 /tmp/sadik/cmc_db_config.inc.php 55 /tmp/sadik/cmc_db_execute.inc.php 85 /tmp/sadik/cmc_db_recordset.inc.php 67 /tmp/sadik/example.php

Siteye .htaccess dosyası ile şifreli giriş

Sitenizdeki bazı dosyalara veya klasörlere erişimi sınırlandırmanız gerekebilir. Bunu yapmak için Session veya HTTP doğrulama gibi yöntemler mevcut. Biz bu işlemi .htaccess dosyası kullanarak yapacağız.

Öncelikle .htaccess nedir ve ne işe yarar sorularını cevaplandıralım:

.htaccess dosyası (hypertext access file), klasör(ler) düzeyinde Apache’nin ayarlanmasına izin veren, http sunucusu genel ayar dosyasını (httpd.conf) özelleştirebilen dosyadır. Dosya “.htaccess” olarak bilinir.

  • Sitenizin kaynaklarını tüketen, sitenizden veri çeken linkler (hotlink) engellenebilir.
  • Sitenizi ziyaret eden zararlı botlar engellenebilir.
  • Site üzerinde gizli klasörler oluşturulabilir.
  • Klasörlere erişim engellenebilir.
  • URL’deki bağlantı adresleri biçimlendirilebilir. Örnek: “makale.php” “makale.html” gibi düzenlemeler ve özelleştirmeler yapılabilir.
  • Veri sıkıştırma için kullanılabilir.
  • Dosya veya klasörlere şifre eklenebilir.
  • Hata sayfaları özelleştirilebilir.
  • Klasörleri listelemede kullanılabilir.
  • Yönlendirmelerde kullanılabilir.
  • Hangi dilin kullandığı saklanabilir.
  • Site için otomatik alt alan adları(subdomainler) oluşturulabilir.

Şifreli erişim yapılacak dizini belirledikten sonra, ilgili dizin içinde .htaccess adlı bir dosya oluşturalım. Bu dosyanın içine, aşağıdaki kodları yapıştıralım.

1234AuthName "Şifre Koruması"AuthType BasicAuthUserFile D:/WEB/xampp/htdocs/kontroller/.htpasswdrequire valid-user

Üstteki kodlarda AuthUserFile yönergesinde belittiğim .htpasswd dosyası, şifrelemizi saklamak için kullandığımız dosyadır. Kullanıcı adı ve şifremizi .htpasswd dosyasına özel bir yöntemle şifreledikten sonra kaydetmemiz gerekiyor. Buraya tıklayın ve açılan sayfada Username kısmına kullanıcı adınızı, Password kısmına da parolanızı yazdıktan sonra Create .htpasswd file butonuna tıklayın. Ben kullanıcı adı admin ve şifre 1234 olarak girdim ve oluşturduğum şifre şu şekilde:

admin:$apr1$sCPZn/..$EUpwemgOYdbrcuAcXTBBI.

Bu şifreyi boş bir .htpasswd dosyası oluşturun ve içine kaydedin.

Şimdi ilgili dizinde herhangi bir dosyaya erişim yapmayı deneyelim.

htaccess-sifreli-sayfa

Resimde görüldüğü gibi kullanıcı adı ve parolası ile giriş yapmamızı isteyen bir pencere geldi. Yaptığımız bu sınırlandırma, ilgili dizindeki tüm dosyaları kapsamaktadır.

Belirli bir dosya için erişimi engellemeyi öğrenelim. Kodlarımız şu şekilde:

123456<Files ozel.html>AuthName "Şifre Koruması"AuthType BasicAuthUserFile D:/WEB/xampp/htdocs/kontroller/.htpasswdrequire valid-user</Files>

Files yönergesindeki ozel.html, erişimi sınırlandıracağımız dosyanın adı. Bu kodlar sadece ilgili dosya için erişimi şifreli yapacaktır, diğer dosyalara erişim şifresiz olarak sağlanır.

Linux Bulaşan Bir Exploid yada virüsü sistemden arındırma silme işlemi xnewdayxleet.php

find /var/ -type f -name “xnewdayxleet.php” -exec rm -f {} \;

Find arama komutudur sonraki /var/ web sitelerinin dizini yada arama yapılacak dizin eğer tüm server üzerinde aranacak ise / yeterlidir.

-type f burası dosya mı dizin mi aradığınızı belirdir de yaparsanız dizin f yaparsanız dosya aratırsınız.

-name burası “” çift tırnaklar içinde dosya yada dizinin ismi

-exec sonrasında çalıştırılacak komut

rm -f silme komutu

{} bu kısım exec öncesi bulunanları getiriyor.

\; işlemlerinin burada kesileceği anlamında sanıyorum. umarım komut işinize yarar.

Hosting işi neden Yapılmalıdır ? Nasıl yapılmalıdır ilham verici konu..!

Henüz internet siteniz yoksa, bir internet sitesi sahibi olmanın lüzumluğunu sorguluyorsanız yada bu yatırımın maliyetleri ile alakalı kafanızda soru işaretleri mevcutsa hepsini unutun.
Sizinle amacıyla bir internet sitesi sahibi olmanız lüzumluğu, şahsi çalışmalarınız ya da işletmenizi varolduğu çevrenin dışında çok daha geniş kitlelere nasıl ulaştırabileceğiniz ile alakalı ilham verecek 10 ipucu paylaşıyoruz. Bugün bir internet sitesi sahibi olmanızın size yaratacağı katma değer ve işletmenize sağlayacağı, daha evvelce sahip olmadığınız pozitif geri dönüşümler ile görülmemiş bir dünyanın kapılarını açmanıza imkân tanıyan fırsatları değerlendirme vakti.

Geniş Kitlelere Ulaşabilirsiniz
Kaydettiğiniz alan adı ile eş güdümlü bundan sonra size özel çevrimiçi bir adres sahibi oldunuz. Artık bu alan isminizi kullanarak internet sitenizi yaşama geçirebilirsiniz. Yayınlayacağınız internet sitesi ile yalnızca çevrenize değil, çok daha geniş kitlelere, bütün dünyaya erişebilirsiniz. Bu internet sitesinin içeriği tamamıyla amacınıza ve işinize bağlı olarak çoğu hususta olabilir. Mesela bir işletme sahibiyseniz ürün ve hizmetlerinizi amaç kitleniz ile buluşturabilirsiniz.

Web sitesi kurmanız sizi olmasından daha çok şahsa ulaştıracak, çalışmalarınıza ya da ticari gelirlerinize olumlu katkılar sağlayacaktır.

Online Portfolyonuzu Yayınlayabilirsiniz
Yaratıcı çalışmalarınız, makaleleriniz yada paylaşmak dilediğiniz veriler mi var? Sadece sosyal medya üzerinden paylaşım yaparak ulaştığınız belirli dost kitlenizin dışına çıkın ve bunları bütün dünyaya açın.

İnsanlar arama motorları vasıtasıyla aradıkları bilgiye ulaşırken ziyaret ettikleri adreslerden biri olabilirsiniz. Yada yaptığınız işleri çevrimiçi portfolyo sitenizden yayınlayarak iş görüşmelerinde bir ismim önde olabilir, kariyerinizin gelişimine katkı sağlayabilirsiniz.

Web siteniz olması ve ortamında kariyerinizde yaptığınız çalışmaların yer alması iş bulmanızı kolaylaştırabilir, şirketlere karşı sahip olduğunuz imajı güçlendirir ve sizi rakiplerinizden bir ismim öne taşır.

Kendi Alan Adınızla Bir E-posta Sahibi Olabilirsiniz
Günümüzde herkes tanınmış detaylı e-posta servis sağlayıcılarını kullanmakta ve yazışmalarını bu e-posta adresleri üzerinden gerçekleştirmekte. Siz, kaydetiğiniz alan isminizin uzantısı ile bir e-posta adresi oluşturabilir, yazışmalarınızı bu adres üzerinden gerçekleştirerek, akılda kalıcı, daha profesyonel görünen bir imaja sahip olabilirsiniz. Mesela: benimepostam84@gmail.com gibi bir e-posta adresi yerine emre@alanadiniz.com gibi bir e-posta adresini kullanabilirsiniz.

Her Zaman Ulaşılabilir Olursunuz
Bir internet sitesi kurduğunuzda, yayınladığınız veriler yada şirketinize ait mamüller siz tatilde olsanız da her an herkes yönünden görüntülenebilir, her halde ve her saatte ulaşılabilir olursunuz. Yayınladığınız internet sitesi bir e-ticaret sitesi ise mamüllerinizi 24 saat süresince ulaşılabilir duruma getirerek satış yapabilirsiniz. Bu sayede her vakit açık bir mağazaya sahip olursunuz.

İnsanlarla Etkileşim Kurabilirsiniz
Kuracağınız internet sitesi üzerinden insanlarla etkileşim kurabilirsiniz. Etkinlikleriniz, fotoğraflarınız yada değerlendirmelerinizi paylaşarak insanların bunlara katılmasını, etkileşimde bulunarak yorumlarını iletmelerine imkân tanıyabilirsiniz.

Yada internet sitenize ekleyeceğiniz bir etkileşim formu aracılığı ile sizinle etkileşim kurmalarını sağlayabilirsiniz.

Online Pazarlama Yapabilirsiniz
İnternet, daha evvelce sahip olmadığımız görülmemiş bir pazarlama dünyasının kapılarını size açıyor. Gelişen teknoloji ve mobilite ile eş güdümlü her gün 2,5 milyardan çok insan internette sörf yapıyor. Web siteniz üzerinden ürün, servis, hizmet, şahsi çalışmalarınız gibi her türlü hedefe yönelik pazarlama yapabilirsiniz. Üstelik bu olabildiğince düşük bütçeli bir teknik olup basitçe ve süratlice geniş kitlelere ulaşmanızı sağlayacaktır.

Destek Verebilirsiniz
Sattığınız mamüller, sunduğunuz servisler, yaptığınız freelance çalışmalar ya da değişik her türlü amacınıza yönelik insanların size ulaşabileceği, soru sorabileceği ve destek alabileceği bir internet sitesi yayınlayabilirsiniz. Bu da maliyetlerinizi düşürerek, vakitdan tasarruf etmenizi ve çevrimiçi olarak müşterilerinize destek vermenize imkân sağlayacaktır.

Fotoğraflarınızı Yayınlayabilirsiniz
Amatör ya da profesyonel bir fotoğrafçı mısınız? Çektiğiniz fotoğrafları yalnızca sosyal medyada mı paylaşıyorsunuz? Çektiğiniz o görkemli kareleri bütün dünya ile paylaşın, isminizi fotoğraf sanatınızla eş güdümlü bir marka durumuna getirerek duyurun.

Böylece çok daha kısa sürede çok daha çok şahsa erişerek eserlerinizin tanınmasını sağlayabilirsiniz.

Online Rezervasyon Alabilirsiniz
Hizmet pazarında iş yapıyorsanız işinizi ilerletmek ve daha çok müşteriye ulaşmak amacıyla yayınlayacağınız internet siteniz üzerinden çevrimiçi rezervasyon alabilirsiniz. Bir restoran, butik otel, vasıta kiralama, emlak yada değişik ne tür hizmet verdiğinizin önemi yok. Sunduğunuz hizmeti daha çok şahsa ulaştırmak ve çok değişik lokasyonlardaki bireylerin sizi keşfetmesini sağlayarak rezervasyon alabilirsiniz. Böylece hizmet ağınızı genişletebilirsiniz.

Web Sitesi Yayınlamak Kolay ve Düşük Maliyetlidir
Bir internet sitesi sahibi olmak bundan sonra olabildiğince düşük maliyetli bir yatırımdır. Fiziksel bir büro yada mağaza açmak amacıyla yapmanız lüzumen yatırımın kat kat altında olabildiğince ufak rakamlara bir internet sitesi yayınlayabilirsiniz. Sadece bir alan adı kaydetmeniz ve internet sitenizi yayınlayabilmek amacıyla bir hosting hizmetine sahip olmanız yeterlidir. Bu maliyetler ise genelde senelik olmasından bir kere aldığınızda en az 1 sene yeniden ödeme yapmanıza da lüzum olmayacaktır.

Buna bir numune vermek lüzum görülürse Türkiye’nin önde gelen hosting ve alan adı şirketi olan hostunuz, senelik yalnızca 9,99$ karşılığında yüksek süratli SSD disk altyapısına sahip bir hosting hizmetine sahip olmanızı sağlar. Üstelik 7 gün 24 saat sundukları telefon ve ticket desteği ile lüzumsinim duyduğunuz her an sorularınızı yanıtlamaya hazırlar.

Siz ise bu süreçte yalnızca işinize ve internet sitenizin konusuna odaklanmak kalır.

Zimbra mail server kurulumu ubuntu 14.4

Gereksinimler:

  • Ubuntu Server 14.04 – 64bit
  • root yetkisi
  • 25 GB Depolama
  • 4 GB Ram

Bu kurulumda kullanılacak bilgiler:

Domain : tapsin.net IP     : 192.168.1.11

Mail   : mail.tapsin.net 

1) apt-get install libgmp10 libperl5.18 unzip pax sysstat sqlite3 dnsmasq

Gerekli paketleri yükledikten sonra DNS server’i konfigure edelim.

2) nano /etc/hostname
2. maddedeki kodu girerek içerisini silip tapsin.net yazıyoruz.

3)  nano/etc/hosts
3. maddedeki komutu girerek içine 192.168.1.11 tapsin.net mail satırını girerek kaydedip çıkıyoruz.

4) nano /etc/dnsmasq.conf komutunda ise 

server=192.168.1.11
domain=tapsin.net
mx-host=tapsin.net, mail.tapsin.net, 5
mx-host=mail.tapsin.net, mail.tapsin.net, 5
listen-address=127.0.0.1

yazıp kaydediyoruz.

5) sudo reboot diyerek yeniden başlatıyoruz. 

6) wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz


tar -xvf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz

cd zcs*


Komutunu girerek zimbrayı indirip çıkartmış oluyoruz.

7) ./install.sh diyerek yükleme işlemini başlatıyoruz.

8) zimbra-dnscachehariç hepsini yüklüyoruz. kurulum esnasında menü geliyor önce 7 sonra 4 basarak Admin passwordunu değiştirdikten sonra kaydediyoruz.

9) Zimbra kuruldu. Test edelim. 

su – zimbra 

zmcontrol status komutlarını girerek durumunu kontrol ediyoruz. çalışmıyor ise
zmcontrol start diyerek çalıştırıyoruz.

mail panel: https://192.168.1.11/  admin panel : https://192.168.1.11:7071