Python komutları 3

Python kodu içerisinde bir if else karşılaştırması aşağıdaki örnekte görüldüğü gibi yapılabilir.

def fonksiyon(deger):
if type(deger)== type(1):
return 1
else:
return "Ayni tip degil"
print fonksiyon(20)
print fonksiyon(20.1)

Çıktısı
1
Ayni tip degil

Görüldüğü gibi fonksiyon içindeki 20 satısının 1 ile aynı tip olması durumunda 1, farklı tip olması durumunda mesaj ile dönen bir karşılaştırma yapmış olduk.


Windows Komut Satırında Dosya Senkronizasyonu Yapmak

Bilgisayarınızda bulunan dosyaları başka bir bilgisayar, dosya paylaşımı veya disk üzerine yedeklemek için windows komutlarından xcopy kullanılabilir. Bu komut size herhangi bir program kurmadan dosya yedeklemesi ve klasör senkronizasyonu sağlar.

Xcopy için seçenekler

/D - elirtilen tarihte veya sonrasında değişen dosyaları kopyalar. Tarih verilmezse, yalnızca kaynak saati hedef zamanından daha yeni olan dosyaları kopyalar.
/I - Hedef yoksa ve birden fazla dosya kopyalamak hedefin bir dizin olması gerektiğini varsayar.
/E - Boş olanlar da dahil olmak üzere dizinleri ve alt dizinleri kopyalar.
/Y - Üzerine yazmak istediğiniz varolan hedef dosyayı üzerine yazdırır.
/H - Gizli ve sistem dosyalarını kopyalar.
/R - Salt okunabilir dosyaların üzerine yazmayı sağlar.

Dosyaları bir dizinden diğerine senkronize etmek için xcopy'yi şöyle kullanabilirsiniz:

xcopy c:\kaynakdirectory c:\hedefdirectory /D /I /E /F /Y /H /R

Uzak bir sunucu ile senkronizasyon yapmak için hedef dizin olarak yalnızca bir sunucu adresi ve dizin adı kullanabilirsiniz:

xcopy c:\kaynakdirectory \\server\hedefdirectory /D /I /E /F /Y /H /R

Bir sunucu dizini için geçici bir yerel sürücü oluşturmak istiyorsanız pushd komutunu kullanabilirsiniz.

pushd \\server\hedefdirectory

Bir batch dosyası hazırlamak isterseniz notepad içinde

@echo OFF
echo : XCOPY Batch Dosya Yedekleme
xcopy {KAYNAK_PATH} {HEDEF_PATH} /D /I /E /F /Y /H /R
echo : Islem Tamam
pouse

Yazarak Yedekleme.bat şeklinde bir bat dosya uzantısı ile kaydedin ve üzerine tıklayarak çalıştırın.

Linux Ubuntu'da LFTP Kullanımı

LFTP genelde yedek alma veya klasör senkronizasyonu için kullanılan bir dosya transfer metodudur. Özellikle klasör içeriği senkronizasyonunda çok başarılı bir uygulamadır. kullanılan Syntax aşağıdaki gibidir.

lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]
lftp -f script_file
lftp -c commands
lftp --version
lftp --help

İlk olarak Linux bilgisayar üzerine LFTP yükleyelim, burada bizim tercihimiz Ubuntu bilgisayar.

LFTP yazilimi asagidaki komut ile yüklenir.

apt-get install lftp

Dosya senkronizasyonu yapılmak isteniyor ise bir bash script hazırlanıp bununla istenildiği zaman senkronizasyon sağlanabilir.

Sh dosyasi asagidaki gibi hazirlanir.

vi ftpsync.sh
-------------------------------
#!/bin/bash
HOST='192.x.x.x'
USER='kullanıcı adı'
PASS='Şifre'
TARGETFOLDER='/'
SOURCEFOLDER='/srv/'

lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"
------------------------------

ftpsync.sh dosyasina çalistirma hakki verilmelidir.

chmod 777 ftpsync.sh


Bu script bilgisayarinizda SOURCEFOLDER'daki dosyalari ftp'de bulunan  TARGETFOLDER ile senkronize eder. Bilgisayarinizda bir dosya silindiginde komut çalistirildiginda FTP'den de silinecektir.--delete komutu kullanilmazsa tek yönlü senkronizasyon gerçeklesir. --reverse komutu silinip $TARGETFOLDER ve $SOURCEFOLDER yer degistirilirse senkronizasyon ters yönde gerçeklesecektir.

Linux'dan komut ile mail göndermek

Linux üzerinden komut satırında mail atabilirsiniz. Bunun için Linux bilgisayarınız üzerinde bir smtp sunucusu olmalı ve ayarları yapılmalıdır. SMTP sunucusu olarak Postfix Mail Server kullanabilirsiniz. Kullandığınız bilgisayarın dışında bir SMTP sunucusu üzerinden mail atmak istiyorsanız Postfix Mail Server'ınıza diğer smtp sunucu adresini girmelisiniz. Başka bir SMTP sunucusu kullanacaksanız;

/evc/postfix/mail.cf dosyası sonuna aşağıdaki satırları ekleyin.

myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_protocols = all
home_mailbox = Maildir/
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
relayhost = 10.x.x.x  #SMTP sunucu IP adresi
myorigin = email.domain.com #Domain

Daha sonra Postfix servisini yeniden başlatın.

/etc/init.d/postfix reload

Komut satırında aşağıdaki komutu kendinize göre düzenleyerek mail atın.

mail -a "From: Gonderen Kisi <GonderenMail@Adresi>" -s "Konu" MailinGonderilecegi@Adres < GonderilecekBilgiIcerigi.txt

Bu komutu yazıp uyguladığınızda gönderilen mail yukarıda belirtilen mail adresinden ilgili mail adresine gönderilmiş olur. Bu komut ile mail gönderdiğinizde büyük bir ihtimalle mail spam (Gereksiz Mail) klasörüne düşecektir. Bunu önlemek için SMTP sunucu ve DNS yapılandırması düzeltilmelidir.





Python komutları 2

Bu bölümde yazacağımız Python kodlarını konsolda değil dosya haline getirerek çalıştıracağız. Kodları bir text editöründe yazarak komut satırında bu dosya çağrılmalı. Örneğin test.py isimli bir dosya hazırlayın ve içine aşağıdaki komutu girin

print "deneme"

Daha sonra dosyayı kaydedin ve dosyayı pythom komutu ile komut satırından çağırın.

python test.py

Çıktısı

deneme

Artık başlayabiliriz, Python da prosedür kullanumuna bakacağız. Python da prosedür şu şekilde yazılır.

prosedür <"değer1", "değer2", "değer3",.....>

Prosedür formatını bir örnek ile yazalım

def string():
   return s[2:]
print string("deneme")

Burada deneme kelimesi def içinde değerlendirilir ve 2. karekter ve sonrası print komutu ile yazdırılır. Çıktısı;

neme

Şeklindedir.

Bir örnek daha yapalım. Bu sefer print çıktısını def içinde yazalım

def fonksiyon(parametre1, parametre2):
print parametre1
print parametre2
fonksiyon("Deneme Metni",5)

Çıktısı;
Deneme Metni
5

Şeklinde olacaktır. fonksiyon değişkeni içinde bulunan parametre1 ve 2 def içinde yazdırılmıştır.

Bir değişken akış içerisinde farklı değerler alabilir. Python'da bir değişkenin değerinin değişip değişmediğini ID numarası ile kontrol edebilirsiniz. Bir örnek yapalım;

>>> a=4
>>> id(a)
50820716
>>> a=9
>>> id(a)
50820656

Yukarıda da görüldüğü gibi a değişkeninin farklı iki değeri için ID'si değişmektedir. Bir değişkenin değerinin akış içinde değişip değişmediğini bu şekilde görüntüleyebilirsiniz.

Örneklere devam edelim. Aşağıdaki örnekte x değişkenine fonksiyon(a) değeri atanmış, bu değer def içinde aşağıdaki gibi +1 eklenerek hesaplanıyor ve hesaplama sonucu x'e eşit olduğu gösteriliyor.

def fonksiyon(degisken):
degisken +=1
print "Sayi def degeri= " + str(degisken)
return degisken
a=9
x=fonksiyon(a)
print "Sayinin global degeri=" + str(x)

Çıktısı
Sayi def degeri= 10
Sayinin global degeri=10

Not: += ifadesi bir kısaltmadır bu kısaltma ile x=x+5 fonksiyonunun x+=5 şeklinde yazabilirsiniz.

Çıktıyı incelediğimizde her iki değerin doğal olarak eşit olduğunu görüyoruz.def içinde bulunan return komutu def dışına döneceği değeri gösterir ve son satırda yer alır. def içinde bu satırdan sonra yazılacak olan satırlar dikkate alınmaz.


Python komutları 1

Python kodlamada çıktıları görüntülemek için print komutu kullanılır. Yazılım açıldığında aşağıdaki gibi bir ekran açılacaktır, görüldüğü gibi python 2.7 kullanacağız. Komut satırında print komutu arkasında yazılacak olan rakam
veya yazı çıktırı aşağıdaki örnekteki gibi olur.

Python 2.7.14 (v2.7, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> print 5
5
>>> print 'deneme'
deneme
>>>

Python rakamlar üzerinde işlem yapabilirken karekterler için ' veya " kullanılması gerekir.

Python Code
Python'da dört işlemin nasıl yapıldığına bakalım.

>>> print 2 + 2
4
>>> print 3 * 3
9
>>> print 9 / 3
3
>>> print 6 - 2
4

Aynı satırda birkaç kez dört işlem yapılabilir ve parantez kullanılabilir.

>>> print (4 + (2 * 2)) / 8
1

Python da değişken tanımlamak için bir örnek yapalım.

name = 1 yazdığımızda name değişkenine 1 değerini vermiş oluruz. Python çıktısı;

>>> name = 1
>>> print name
1

Bir kaç değişken tanımlayarak dört işlem yapaılım.

>>> en=23
>>> boy=10
>>> yukseklik=3
>>> print en * boy * yukseklik
690

Değişkenler içinde dört işlem yapılarak sonuş yazdırılabilir.

>>> sonuc=en * boy * yukseklik
>>> print sonuc
690

Kelime veya cünlelerde değişkenlere atanabilir.

>>> degisken="deneme mesaji"
>>> print degisken
deneme mesaji

Python'da bir kelime veya cümle içinden bir karekter yazdırılmak isteniyor ise

>>> print "deneme" [2]
n
Şeklinde kullanılır. Yukarıdaki örnekte n 3. karekter gibi görünebilir fakat Python da ilk karekter 0. karekter olarak kabul edilir ve bu durumda n 2. karekterdir.

Değişken değerinin sadece bir bölümü yazdırılmak isteniyorsa satır sonuna [seçilen ilk karekter sırası:son karekter sırası] ibaresi eklenir.

>>> print "deneme" [1:3]
en

Sondan başlanarak başa doğru seçmek isteniyorsa -1 den başlanarak hangi karektere kadar yazılacaksa eklenir.

>>> print 'deneme' [-3:5]
em

Python da bir karekterden sonrası yazdırılacak ise

>>> print "deneme" [1:]
eneme

Python da bir karekterden öncesi yazdırılacak ise

>>> print "deneme" [:4]
dene

şeklinde kullanılır. Komut eki [:] şeklinde kullanılırsa tamamı yazılır, bu ek kullanılmadığında da ilgili kelime veya cümlenin tamamı yazılır.

>>> print "deneme" [:]
deneme

Bu özellik ard arda yazılarak istenen bölümler alınarak yazdırılabilir. Kullanımı;

>>> print "deneme" [:3] + "deneme" [4:]
denme

Bir satırda kelime ve sayı yazdırılmak isteniyorsa str() kullanılır. Bu şekilde parantez içinde işlem de yapılabilir.

>>> print "Sonuc= " + str(5+5)
Sonuc= 10

Python'da bir string içinde arama yapmak için find komutu kullanılır. Kullanımı

<string>.find("aranan kelime veya karekter") Bir örnek ile görelim.

>>> print "Bu cumle icinde arama yapilacaktir".find("arama")
16

Görüldüğü gibi arama kelimesinin 16. karekterden başladığını söylüyor. Arama sonucunda aranan kelime bulunamaz ise -1 çıktısı görüntülenecektir.

>>> print "Bu cumle icinde arama yapilacaktir".find("sonuc")
-1

Bu örnekte cümle içinde sonuc kelimesi aranıyor fakat bulunamadığı için -1 çıktısını alıyoruz. Bu aranan kelime veya karekterin bulunamadığını gösteriyor.

Belirli bir karekterden sonra arama yapmak istiyorsanız aşağıdaki kullanımı inceleyebilirsiniz. Burada 21. karekterden sonraki a harfi aranıyor ve 23. karekterde bulunuyor.

>>> print "Bu cumle icinde arama yapilacaktir".find("a",21)
23

Cümle içinde herhangi bir karekter veya kelime değiştirilecek ise replace komutu kullanılır. Kullanımı;

>>> print "Bu cumle icinde arama yapilacaktir".replace("arama","inceleme")
Bu cumle icinde inceleme yapilacaktir

Görüldüğü gibi arama kelimesi yerine inceleme kelimesi yazılmıştır.

Python türkçe dil desteği için Python Idle Python27\Lib\idlelib\ üzerinde Options > General menüsünde UTF-8 seçilmelidir.


Serkan YILDIZ

Python kodlamaya başlarken

Python kodlamaya başlarken öncelikle bir text editör ve python yazılımı gerekecektir. Editör olarak Atom veya Sublime kullanılabilir. Bu yazılımlar kod yazarken kolaylık sağlayacaktır. Notepad'de kullanabilirsiniz.

Editör yazılımına karar verdikten sonra Python yazılımını aşağıdaki linkten indirip bilgisayarınıza kurmalısınız.

https://www.python.org/downloads/

Bu link'te 3.6 ve 2.7 versiyonlarını göreceksiniz. aralarında çok küçük farklılıklar var ama en son versiyonu öğrenmenizi tavsiye ederim.

Kurulum tamamlandıktan sonra seçtiğiniz editörü açın ve aşağıdaki kodu yapıştırın

Python 3 kurduysanız
print ("deneme")

Python 2 kurduysanız
print "deneme"

Daha sonra test.py olarak dosyayı kaydedin.

Daha sonra windows komut satırında

python dosya yeri\test.py

Yazın, çıktı olarak

deneme

Yazısını görüyorsanız Python kodlamaya başlayabilirsiniz.

HTML CSS Dosyası Nasıl Oluşturulur, Nasıl Kullanılır

HTML dosyaların görsel olarak yapılandırılması için style tag'leri kullanılmaktadır. Bu tag içinde çok fazla tanım yapılacak ise her html dosyanın yüklenme süresi ve kapladığı alan artacaktır. Bunun yerine tüm html dosyaları için tek bir CSS hazırlanması ve html içinden çağrılarak kullanılması daha efektif olacaktır.

 HTML dosyası içinde CSS kullanmak için aşağıdaki link kodu kullanılır. Link tag'i her zaman Head başlığı altına yazılır.

  <link rel="stylesheet" href="style.css">

Bu kod style.css dosyası içindeki tanımlarım bu HTML dosyasına aktarılmasını sağlar. style.css dosyası bir text dosyadır ve notepad gibi uygulamalar ile hazırlanabilir.

İlk olarak bir HTML dosyası hazırlayın;

<!DOCTYPE html>
<html>
<head>
  <title>Css Örneği</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
<h1>
  :: <em>CSS Örnek Uygulama</em> ::
</h1>
</body>
</html>

Yukarıdaki kodlamayı bir dosyaya yazarak cssTest.html olarak kaydedin. Aynı dizine style.css isimli bir dosya daha oluşturun ve aşağıdaki içeriği bu dosyaya yazın.

body {
    background-color: #e3e3e8;
}
h1 {
  background-color: #ff9900;
  position: fixed;
  text-align: center;
}

Html dosyasını açtığınızda arka plan renginin ve h1 tag'i içinde bulunan metnin arka plan renginin css dosyasında tanımlandığı gibi olacağını göreceksiniz. Html tag'lerinin tamamı Css dosyası içinde görsel olarak şekillendirilebilir. Bilinen Html tag'leri için değilde spesifik bir değişiklik yapılacak ise class kodu kullanılır. Ör;

<div class=test>Deneme Mesajı</div>

Burada tanımlanan class'ın Css dosyası içinde özellikleri yazılır. Class'lar başına nokta konularak css dosyası içinde tanımlanırlar.

.test {
   text-align: center;
   color: red;
}

Bu kodlar Html dosyasına eklendiğinde "Deneme Mesajı" sayfa ortasında kırmızı renkte görüntülenir.




HTML içinde Style oluşturma

HTML dosya içerisinde bazı özellikleri belirtmek için sytle kodu kullanılır. Bu kod html içinde direk yazılarak kullanılabildiği gibi bir css dosyası referans gösterilerekte kullanılabilir.

Bu kodun üç şekilde kullanımı mevcuttur ve sonuç bu üç kullanım içinde aynıdır. Tekrarlanan kodlar için kullanım kolaylığına göre seçim yapmak gerekir.

1.<head> içinde kullanılan style

Aşağıdaki kodda style kodu head içinde yer almaktadır. Bu kod body içinde bulunan tüm div seçimlerinin yükseklik ve genişliği belirlenmiştir. .stop class'ı kullanılıyorsa arka plan renginin kırmızı olması sağlanmıştır.

<head>
<style>
  div {
    height : 50px;
    width : 50px;
    border-radius: 25px;
  }
  .stop {
    background-color: red;
  }
</style>
</head>
<body>
<div class="stop"></div>
  <div>
    This will have a red background.
  </div>
</body>

2. div kodu içinde style kullanımı.

style kodu div içinde aşağıdaki gibi kullanılır ve sadece yazıldığı div içeriğini etkiler. Sadece bir kez kullanılacak olan özelliklerde tercih edilebilir.

<body>
  <div style="background-color: red">
    Test text.
  </div>
  <div style="background-color: red">
    Test text.
  </div>
</body>

3. Css dosyası içinde style kullanımı.

Html dosyasına bir referans css dosyası eklenerek bu css dosyası içinde style komutlarını kullanarak genel style kullanımları listelenebilir ve bu dosya referans gösterilerek tekrar tekrar yazmadan class'lar ile gösterilebilir.

<head>
   <link rel="stylesheet" href="main.css">
</head>
<body>
  <div>
    This text.
  </div>
</body>

Bu örnekte main.css dosyasına aşağıdaki div içeriği yazıldığında div kullanıldığı durumda arka lanın kırmızı olması sağlanır.

div {
  background-color : red;
}

Arka plana sabit resim koymak isterseniz aşağıdaki kodu kullanabilirsiniz.

<head>
<style>
body {
  background-image: url('1.jpg');
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;
}
</style>
</head>

HTML Programlama

HTML dosya hazırlamada kullanılan bazı kodelardan bahsedeceğiz. İlk olarak bir HTML dosyanın sahip olması gereken kodlardan bahsedelim.

HTML dosya uzantısı .html veya .htm olmalıdır. Bu dosyaların sahip olması gereken kodlar aşağıdaki gibidir.

<!DOCTYPE HTML>  - Doküman tipini tanımlar. ör: Html  5
<html> - Html  dosya başlangıç kodudur.
<head> - Meta, title, link, java script, css gibi bilgilerin bulunduğu alandır.
<title>Title</title> - Html başlık bölümüdür.
</head> - Head bölümü sonu
<body> - Websayfasının gösterilecek tüm içeriği bu bölümde yer alır.
<b>Content</b>
</body> - Body bölümü sonu
</html> - Html bölümü sonu

Yazı karekterlerinin kalın harflerle yazmak için; <b> kodu kullanılır.

<b>Yazı</b> Çıktısı Yazı şeklindedir.

İtalik yazı karekteri için <em> kodu kullanılır.

<em>Yazı</em> Çıktısı Yazı şeklindedir.

Alt satıra geçmek için <br> kodu kullanılır.
Paragraf için <p> kodu kullanılır. Kullanımı;

<p>Yazı</p> Şeklindedir.

HTML içinde birçok kod aşağıdaki formatta yazılır.

<tag işlem="değer"> içerik </tag>

Anchor = a = link komutlarına bakalım

<a href="www.serkan.net">Serkan Web Page</a>

HTML dosyaya resim eklemek için 

<img src="url" alt="Açıklayıcı Yazı"> komutu kullanılır.

HTML dosyası web sayfası içindeki genel kuralları belirliyor. Css dosyası ise HTML içeriğinin hasıl görüntüleneceğini belirliyor ve görsel özellikleri yönetiyor. Css dosyası ile yazı tipleri, kalınlıkları, renk, resim boyutları gibi özellikler yönetiliyor. Css dosyası içeriğin istediğiniz formatta görüntülenmesini sağladığı gibi web sayfanıza bir standart getiriyor. Bu dosyadaki tanımları defalarca kullanarak aynı kodları sürekli html içerisinde yazmak zorunda kalmıyorsunuz.






KU-Band ve KA-Band Teknoloji Karşılaştırması

Uydu bağlantı teknolojileri hızlı bir şekilde geliştirilmeye devam ediliyor. Günümüzde DVB teknolojisinde DVB-S2X’e kullanılırken MODCODs’da (MODulation and CODing schemes) maximum 256APSK’e ulaşıldı. Bu güne kadar uydu üzerinden internet bağlantısı için kullanılan Ku-band yerini Ka-band uydu servislerine bırakıyor. Ka-band teknolojisi genel olarak uydu üzerinden internet servisi vermek için kullanılmakta. Ka-band’ın Ku-band yerine kullanılmasının en önemli sebeplerinden biri kapasite maliyetleri. Vsat pazarında ciddi maliyet avantajı sağladığından uydu üzerinden internet Ka-band üzerinden verilmeye devam edecek. Newtec’in paylaştığı aşağıdaki öngörüye göre Ka-band kullanım kapasitesinin 2024’de 1,1Tbps’a ulaşacağı tahmin ediliyor.


Aşağıdaki grafikte Ku ve Ka-band bu gün ki kullanımı ve gelecekteki öngörü yer almakta. Görüldüğü gibi veri haberleşmesi için Ku-band kullanımı gün geçtikçe düşerken Ka-band kapasite kullanımında ciddi artış göstermekte. Fakat Ku-band kullanımının biteceği öngörüsünün olmadığını görüyoruz.


Veri haberleşmesi için kullanılan Ku-band ve Ka-band arasında bazı farklılıklar mevcut ve Ka-band teknolojisi her ne kadar yeni bir teknoloji olsa da bazı dezavantajları bulunmakta. Dolayısıyla Ka-band teknolojisi Ku-band teknolojisinin yerine tamamen geçemediğini görüyoruz. Kullanılacak uydu teknolojisinin özellikleri dikkatli bir şekilde incelenerek ihtiyaca göre bir tercih yapılmalı. Bu iki RF teknolojisi arasındaki farklılıkları, avantajları ve dezavantajları inceleyeceğiz:

İlk olarak uydu frekans bandını inceleyelim. Yukarıdaki tabloda uydularda kullanılan frekans bant’larını görüyoruz. Bu tabloya göre Ku-band 12-18Ghz, Ka-band 26-40Ghz’de çalışmaktadır.

Alıcı Ku ve Ka-band antenleri aynı boyutta ise reflektör kazancı Ka-band'ı için daha yüksek olacaktır. Bunun nedeni reflektör kazancının frekans ile doğru orantılı olmasıdır. Ka-band yüksek frekans kullanır. Ka-bandı, aynı kazanım karakteristiklerini elde etmek için Ku-band eşdeğerlerinin dörtte birine eşit olan antenlerin kullanılmasına izin verir. Örneğin, Skyware Global 1.8m Ku anten, 14,3 GHz'de 46,8 dBi'lik bir kazanç sağlarken, 1,8 m'lik aynı boyuttaki Ka anteni 30,0 GHz'de 52,5 dBi'lık bir aktarım kazancı elde ediyor. Bu, Ku anteninden neredeyse dört kat daha fazla kazanım. Ka sistemleri için daha küçük anten boyutu, taşımacılık için gerekli alanı ve ağırlığı azaltıyor. Fakat reflektör kazancı tek başına sinyal kazanımı için belirleyici değildir.

Yol sinyal gücü kaybı frekans ile doğru orantılıdır. Ka frekansları yüksek olduğundan sinyalin uydudan antene gelene kadar kaybettiği güç daha fazla olacaktır. Ku-band’daki kayıp Ka’ya göre daha azdır. Reflektör kazancının fazla olduğu Ka-band’ın yol sinyal gücü kaybının daha fazla olduğunu görüyoruz.

Bir sinyalin kalitesi taşıyıcının gürültüye oranıdır ve frekans arttıkça gürültü artar. Ka-Band frekans bandında gürültü Ku-Band frekans bandından daha yüksektir. Aynı güçte çıkılan taşıyıcı için Ku-Band sinyali daha kalitelidir.

Küçük Ka-Band spot beam'leri daha iyi EIRP (Effective (or equivalent) Isotropic Radiated Power - Efektif Izotropik Yayılma Gücü) değerine sahiptir ve daha iyi odaklanma sağlar.

Yağmur, kar ve buz 11GHz'in üstündeki RF sinyallerini absorbe eder ve frekans yükseldikçe etki artar. Bu nedenle Ka-band sinyali Ku-band sinyalinden daha fazla bozulmaya uğrar, Ka-band yağışlı hava şartlarından daha fazla etkilenir. Aşağıdaki tabloda frekans arttıkça hava şartlarından kaynaklanan zayıflamanın etkisini görüyoruz. 12GHz’de 2dB zayıflama varken 30GHz’de 13,7dB zayıflama ölçülmüş.


Ka-Band'da Ku-band ile aynı alanı kapsamak için birçok beam kullanmak gerekir. Farklı beam'lerden oluşan bir kapsama alanı için her beam üzerinde kapasite tahsisi gerekir. Bu durum geniş kapsama alanlarında toplam bant genişliğinin efektif kullanılamamasına yol açar. Ka band geniş kapsama alanında birden çok beam gerektiği durumda broadcast veya multicast yayınlar için maliyetlidir. Çoklu beam yapısında alanın tamamında yayının alınabilmesi için her beam’den yayın çıkılması gerekir bu durum aynı kapasitenin her beam için tahsis edilmelidir.

Yeni kullanılmaya başlanan Ka-band teknolojisini günümüzde kısıtlı sayıda uydu desteklemektedir. Ku-Band eski bir teknoloji olmasından dolayı kullanımı yaygındır ve birçok uydu Ku-band’da kapasiteye sahiptir. Ku-band kullanımı uydu seçiminde esneklik sağlar fakat aynı esneklik günümüzde Ka-band için geçerli değildir.

Ku-bant uyduları birbirinden sadece 2 derece uzakta konumlandırılmıştır. Uydular birbirine ne kadar yakın olursa, etkileşim o kadar yüksek olur. Bugün, Ka-bandı uyduları tipik olarak birbirinden daha uzak konumlandırılmıştır ve bu nedenle daha düşük ASI'ye (Adjacent Satellite Interference)  sahiptir.

Ka-band çoklu beam yapısı gereği farklı beam’lerde çalışan modemler için mesh yapısında çalışmak mümkün değildir. Dolayısıyla farklı beam’lerde bulunan modemler birbirleri ile konuşamaz ve hub merkezine inmeden bir haberleşme sağlanamaz. Vsat Hub merkezi üzerinden yapılan haberleşmede ise gecikme çok yüksek olacaktır.

Özellikler
KU-Band
KA-Band
Frekans
12-18 Ghz
26-40 Ghz
Beam
Tek beam
Çoklu spot beam
Kapasite maliyeti
Yüksek
Düşük
Kullanılabilir bant genişliği
Düşük
Yüksek
Anten çapı
Büyük
Küçük
Atmosfer şartlarına duyarlılık
Düşük
Yüksek
Destekleyen uydu
Çok sayıda
Az sayıda
Gürültü etkisi
Düşük
Yüksek
Sinyal kalitesi
Yüksek
Düşük
Mesh yeteneği
Var
Kısıtlı

Uydu bağlantısı ihtiyacına yönelik bir teknoloji seçerek haberleşme sağlanmalıdır. Görüldüğü gibi her iki teknolojinin avantajlı ve dezavantajlı olduğu noktalar bulunmaktadır. Hava koşulları etkisinin daha az olduğu kesintisiz bir hizmet alınmak isteniyorsa Ku-band tercih edilmeli, yüksek band genişliğinde düşük maliyetli internet veya intranet bağlantısı ihtiyacı sözkonusu ise Ka-band tercih edilebilir. Karasal bağlantılara erişim mevcut ise uydu bağlantısı sadece yedek hat olarak tercih edilmelidir.

S.YILDIZ

Kaynaklar:
https://www.intelsatgeneral.com/blog/ka-band-or-ku-band-which-is-better-for-you/
https://www.viasat.com/sites/default/files/media/documents/mitigating_the_effect_of_weather_on_ka-band_high_capacity_satellites.pdf
http://www.newtec.eu/article/article/getting-the-most-out-of-high-throughput-satellites-hts
http://www.milsatmagazine.com/story.php?number=1777337481
https://id.wikipedia.org/wiki/Berkas:Satellite_frequency_bands.jpg
http://www.skywaretechnologies.com/news/item/84-ka-vs-ku-an-unbiased-review
http://www.satmagazine.com/story.php?number=1275052403

Network Performans Test Yazılımı iPerf

Network performansınızı ölçmek için kullanabileceğiniz iPerf yazılımı çok esnek trafik oluşturma seçenekleri ile karşımıza çıkıyor. TCP veya UDP istediğiniz porttan istediğiniz paket boyutunda istediğiniz kadar eş zamanlı session açarak trafik testti yapabiliyorsunuz. Raporlama özelliği çok gelişmiş değil fakat başka araçlar kullanarak ölçüm yapılabilir. Trafik tipini oluşturmada çok başarılı olan bu yazılım client-server ikilisi ile çalışmakta.

Ayrıntılı bilgiye bu linkten ulaşabilirsiniz.
https://iperf.fr/iperf-doc.php

Kullanılabilecek komut opsiyonları;

Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]

Server or Client:
  -p, --port      #         server port to listen on/connect to
  -f, --format    [kmgKMG]  format to report: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #         seconds between periodic bandwidth reports
  -F, --file name           xmit/recv the specified file
  -A, --affinity n/n,m      set CPU affinity
  -B, --bind      <host>    bind to a specific interface
  -V, --verbose             more detailed output
  -J, --json                output in JSON format
  --logfile f               send output to a log file
  -d, --debug               emit debugging output
  -v, --version             show version information and quit
  -h, --help                show this message and quit
Server specific:
  -s, --server              run in server mode
  -D, --daemon              run the server as a daemon
  -I, --pidfile file        write PID file
  -1, --one-off             handle one client connection then exit
Client specific:
  -c, --client    <host>    run in client mode, connecting to <host>
  -u, --udp                 use UDP rather than TCP
  -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
                            (default 1 Mbit/sec for UDP, unlimited for TCP)
                            (optional slash and packet count for burst mode)
  -t, --time      #         time in seconds to transmit for (default 10 secs)
  -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
  -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -t or -n)
  -l, --len       #[KMG]    length of buffer to read or write
                            (default 128 KB for TCP, 8 KB for UDP)
  --cport         <port>    bind to a specific client port (TCP and UDP, default: ephemeral port)
  -P, --parallel  #         number of parallel client streams to run
  -R, --reverse             run in reverse mode (server sends, client receives)
  -w, --window    #[KMG]    set window size / socket buffer size
  -C, --congestion <algo>   set TCP congestion control algorithm (Linux and FreeBSD only)
  -M, --set-mss   #         set TCP/SCTP maximum segment size (MTU - 40 bytes)
  -N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm
  -4, --version4            only use IPv4
  -6, --version6            only use IPv6
  -S, --tos N               set the IP 'type of service'
  -L, --flowlabel N         set the IPv6 flow label (only supported on Linux)
  -Z, --zerocopy            use a 'zero copy' method of sending data
  -O, --omit N              omit the first n seconds
  -T, --title str           prefix every output line with this string
  --get-server-output       get results from server
  --udp-counters-64bit      use 64-bit counters in UDP test packets
  --no-fq-socket-pacing     disable fair-queuing based socket pacing
                            (Linux only)

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-


Server tarafı için şu komutu kullanmalısınız.

iperf3 -s

Client tarafı için

iperf3 -c 172.32.0.1 -u -p 4500 -n 10  -R -V

şeklinde bir komut oluşturup kullanabilirsiniz.


VSAT Sistemleri

VSAT uydu sistemi uydu kapsama alanına bağlı olarak size uydu üzerinden veri haberleşme hizmetini paylaşımlı yapıda sunan maliyeti düşük sistemlerdir.

VSAT Network
Vsat uydu haberleşme sistemi ile aşağıdaki ihtiyaçları çok geniş kapsama alanlarında sağlayabilirsiniz.
  • Internet bağlantısı
  • Intranet ağı
  • Scada, Telemetri veri haberleşme uygulamaları
  • IP Multicast; Video, Radyo yayını
  • Karasal devre yedekleme
  • IP POS data taşıma
  • Voip ses taşıma
  • GSM Backhaul
  • Otomasyon
  • Mobil araç ile bağlantı
  • Bankacılık uygulamaları (POS, Bankamatik bağlantıları, Mobil bankacılık vb...)
  • Uzaktan Eğitim
  • Mağzacılık uygulamaları
Aşağıdaki uygulamalarda Vsat Uydu bağlantı sistemi karasal bağlantılar ile rekabet edebilecek fiyat avantajı sağlar.

Küçük bant genişliği gerektiren çoklu bağlantılar.
  • IP Pos, Bankamatik bağlantıları
  • Tank, Market otomasyonu
  • Uzaktan Sayaç okuma(elektrik, su, doğalgaz, buhar vb…)
  • RTU, M2M Haberleşmesi
  • Sismik veri toplama uygulamaları
  • Hava durumu istasyonu bağlantısı
  • Uzaktan sıvı seviye ölçümü
  • RF-ID, Barkod okuyucu uygulamaları
  • Scada, Telemetri networkleri
IP Multicast Yayın Uygulamaları
  • Video Yayını
  • Radyo Yayını
  • Veri Dağıtımı
Yedekleme Devreleri
  • Karasal devre yedekleme
  • GPRS devre yedekleme
Vsat Uydu Sistemi havuz kapasite ile çalışma özelliği çoklu bağlantılarda toplam kapasitenin paylaşımlı olarak kullanılmasına olanak sağlamaktadır. Bu durum bağlantılar için maliyet avantajı sağlar. 



Cisco switch ve router da SSH kullanımı ve telnet kapatma.

Cisco cihazlarda SSH bağlantısını aktif edip telnet'i devre dışı bırakmak için

aaa new-model
ip domain-name domain.com
crypto key generate rsa

RSA key en az 768 bit oluşturulmalıdır.

Komutları girilir ve kullanıcı oluşturulur.

username kullanıcı_adı privilege 15 secret şifre

SSH ayarları yapılır. Burada SSH version 2 kullanılacak ise belirtilir.

ip ssh time-out 100
ip ssh authentication-retries 3
ip ssh version 2

Line ayarları yapılır. Line altına transport input ssh komutu girildiğinde cihaza telnet yapılamaz.

line vty 0 4
 transport input ssh
line vty 5 15
 transport input ssh

SSH ile bağlanmak için Putty kullanılabilir.

Cisco switch ve router için SSH aynı yöntemle açılır.

Ubuntu'da sFTP için kullanıcı oluşturmak

Ubuntu server'da sadece sFTP dizinine erişebilecek ve sadece görüntüleyebilecek bir kullanıcı oluşturmak için aşağıdaki adımları takip edin.

İlk olarak bir kullanıcı oluşturun

useradd sftpuser
sudo passwd sftpuser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Sftp grubu oluşturup kullanıcıyı bu gruba ekleyin

groupadd sftp_usersgr
usermod -G sftp_usersgr sftpuser

Kullanıcının erişeceği dosyayı oluşturun ve gerekli erişim haklarını verin.

mkdir /sftpuser
chown root.root /sftpuser/
chmod 755 /sftpuser/

SSH dosyasına girin
vi  /etc/ssh/sshd_config

Mevcut Subsystem komutunu # ile kapatın ve yeni satır ekleyin

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Aşağıdaki satırları dosyanın en sonuna ekleyin.

Match Group sftp_usersgr
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /sftpuser
  ForceCommand internal-sftp

Servisi yeniden başlatın

service ssh restart

Kullanıcının home dizinini değiştirmek için

vi /etc/passwd

Dosyasına girin ve aşağıdaki gibi kullanıcı satırını değiştirin.

sftpuser:x:1001:1001::/sftpuser:

Kullanıcı ile sFTP bağlantısı yaptığınızda sadece bu klasörü görüntüleyebileceksiniz.

www.Serkan.Net

IP Güvenlik Kamerası RTSP Görüntüleme

IP güvenlik kamerasına sahipseniz ve bu güvenlik kamerası RTSP destekliyor ise ağ üzerinden VLC programı ile görüntüleri izleyebilirsiniz. İzlemek için aşağıdaki linki VLC ağ bölümüne ağınıza göre değiştirerek eklemelisiniz.

 192.168.1.10 IP adresini kendi kameranızın IP adresine göre değiştirin. RTPS default portu 554'dür. Kameranız farklı bir port kullanıyor ise bu bölümüde değiştirmelisiniz. Kullanıcı adı ve password bölümünü kameranızın bilgilerine göre değiştirin. user=admin&password=xxxx

Kameranızda 2 veya daha fazla kanal mevcut ise stream=0.sdp kısmındaki 0 rakamını stream=1.sdp şeklinde değiştirerek diğer kanallara da bağlanabilirsiniz.

Aşağıdaki link üzerinde kalın işaretlenmiş bölümleri belirtildiği şekilde düzeltiniz.

 rtsp://192.168.1.10:554/user=admin&password=xxxx&channel=1&stream=0.sdp?real_stream--rtp-caching=100

 Diğer bölümler aynı kalacak şekilde VLC veya başka bir yazılım ile bu linki açabilirsiniz.

www.Serkan.net

    

Cisco Syslog konfigürasyonu nasıl yapılır.

Cisco router veya switch'den syslog servera trap gönderebilmek için aşağıdaki konfigürasyon yapılır.

logging on
logging <SYSLOG IP>
logging trap informational

Trap seviyesini aşağıdaki listeden seçebilirsiniz.

Level Keyword

Level

Description

Syslog Definition

emergencies

0

System unstable

LOG_EMERG

alerts

1

Immediate action needed

LOG_ALERT

critical

2

Critical conditions

LOG_CRIT

errors

3

Error conditions

LOG_ERR

warnings

4

Warning conditions

LOG_WARNING

notifications

5

Normal but significant condition

LOG_NOTICE

informational

6

Informational messages only

LOG_INFO

debugging

7

Debugging messages

LOG_DEBUG

Unutmamak gerekirki syslog haberlerşmesi UDP 514 portundan gerçekleşecektir. Syslog ile cihaz arasında bu port'a kısıtlama var (Firewall, proxy vs...) ise kaldırılmalıdır.

SNMP ayarlarını aşağıdaki gibi yapabilirsiniz.

snmp-server community public RO
snmp-server contact <Kontak bilgileri>
snmp-server host <SYSLOG IP> public  syslog
snmp-server enable traps
service timestamps log datetime localtime

SYSLog server'da zamanların doğru olabilmesi için cihazın saat bilgisini bir NTP sunucusundan almak gerekir. Bunun için;

ntp server <NTP Server IP>

*Kırmızı alanları kendinize göre düzenleyin.

Linux dosya yedeklerinin Tar gz ile sıkıştırılarak alınması.

Linux işletim sistemi üzerinde herhangi bir klasörün yedeği alınmak isteniyor ise aşağıdaki komut kullanılabilir.

Hedef Dosya : /media/external/backup.tar.gz
Kaynak Dosya :  /srv
Hedef disk formatı için parametre : --one-file-system (Dosyanın kaydedileceği disk farklı formatta ise eklenir ör:NTFS USB disk)

tar -cvzf /media/external/backup.tar.gz --one-file-system /srv

c - Yeni bir yedek dosya oluşturulacağını gösterir.
v - Yedek alınırken dosyaları ekranda gösterir.
p - pdosyaların alındığı andaki yetkileri kaydeder. Tekrar açıldığında aynı yetkiler gelir.
z - gzip ile dosyanın sıkıştırlmasını sağlar.
f <dosya adı> - Dosya adının yazıldığı yerdir.

Dosya adında tarih bilgisinin de olması isteniyor ise dosya ismi bölümüne $(date +%d%m%y) parametresi eklenir.

tar -cvzf /media/external/backup_$(date +%d%m%y).tar.gz --one-file-system /srv

Bu komutu yazdığınızda "Argument list too long" şeklinde hata alıyorsanız;

bash: /bin/tar: Argument list too long

 Dosya listesi çok uzun demektir. Bu durumda dosya isinlerini bir txt dosyasına yazarak tar komutu ile çağırabilirsiniz.

Txt dosyasını oluşturmak için;

find . -type f -name "*.log" > dosya.txt

*.log yeride listelenecek dosya uzantınızı yazmalısınız. Dosyayı çağırmak için;

tar -cvf sıkıştırılmısdosya.tar --files-from dosya.txt

Şeklinde kullanılabilir.

www.Serkan.Net

Ubuntu servera USB disk takmak.

Ubuntu server'a taktığınız USB diski mount etmek için aşağıdaki adımları kullanabilirsiniz.

Takılı tüm USB cihazları görmek için

lsusb

Takılan diskin durumunu görmek için;

sudo fdisk -l

Bu komut sonucunda /dev/sdb1 şeklinde bir device göreceksiniz.
Media klasörü altına bir klasör oluşturun

sudo mkdir /media/haricidisk

Oluşturduğunuz klasöre diski mount edin. Fat 16 veya Fat 32 formatında bir disk için

sudo mount -t vfat /dev/sdb1 /media/haricidisk -o uid=1000, gid=1000, utf8, dmask=027, fmask=137

NTFS formatında bir disk için

sudo mount -t ntfs-3g /dev/sdb1 /media/haricidisk

Komutlarını kullanabilirsiniz.

cd /media/haricidisk

Diski unmount etmek için;

sudo umount /dev/sdb1 veya sudo umount /media/haricidisk


Komutlarını kullanabilirsiniz.



Ubuntu'ya Webmin nasıl kurulur.

Bir editör ile /etc/apt/sources.list dosyasını açın.

vi /etc/apt/sources.list

Aşağıdaki satırları bu dosyanın sonuna ekleyin.

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib


Sırayla aşağıdaki komutları çalıştırın.

cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
 


Webmin kurmak için apt-get komutunu çalıştırın.

apt-get update
apt-get install webmin
 


Aşağıdaki soruya Y şeklinde cevap verin.

Do you want to continue? [Y/n]

Dosyaların download edilip yüklenmesini bekleyin.

Kurulum tamamlandığında webmin'i açın

https://<server IP adresi>:10000

Linuxcu 

Google