Aramayan Bulamaz
×
read arama sorgusuna ait içerikleri görüntülemektesiniz.
MongoDB Kurulum ve Konfigurasyonu (Kullanıcı Yetkilendirmesi ve SSL Kurulumu)

Linux işletim sistemine MongoDB kurulumu için öncelikle MongoDB repolarını işletim sistemine eklemeniz gerekmekte.

Linux Redhat / CentOS

1. Adım: /etc/yum.repos.d/mongodb-org.repo dosyasının içerisine aşağıdaki bilgileri eklemeniz gerekmekte. Şu anda son sürüm 4.0 daha sonra farklı bir sürüm çıkarsa eğer o sürüme ait olan repoyu eklemeniz gerekecektir. Güncel MongoDB sürümünü  bu bağlantıdan öğrenebilirsiniz.

[mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

2. Adım: Kurulum

yum install -y mongodb-org

Ubuntu

1. Adım: MongoDB servisine ait public key bilgisini işletim sistemine import etmemiz gerekiyor

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

2. Adım: /etc/apt/sources.list.d/mongodb-org.list dosyasının içerisine aşağıdaki bilgileri eklememiz gerekmekte.

Ubuntu 14.04 için

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Ubuntu 16.04 için

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

3. Adım: Paketleri güncelle

sudo apt-get update

4. Adım: Kurulum

sudo apt-get install -y mongodb-org

Konuya CentOS üzerinden devam edeceğim. Kurulum işlemi sonrasında service mongod start komutunu vererek servisi başlatabilirsiniz. MongoDB kurulumu tamamlandı ve kullanıma hazır durumda terminal üzerinden mongo komutunu vererek MongoDB'nin shell ekranına giriş yapabilirsiniz. MongoDB daha &ou

C# ile Whois Sorgulama

Merhaba, whois sorgulaması bir web adresinin tescil süresi, kimin adına kayıtlı olduğu gibi bilgilerin öğrenilebilmesi adına yapılan sorgulamadır. Bu işlemi çeşitli whois siteleri aracılığı ile gerçekleştirebilirsiniz veya C# ile bir exe hazırlayarak bu exe üzerinden de sorgulama gerçekleştirebilirsiniz. C# üzerinden bu sorgulamayı yapabilmeniz için sorgulama yapılacak olan whois serverına TCP bağlantısı açılması gerekir. Örnek olarak aşağıdaki komutlar ile birlikte sorgulamayı gerçekleştirebilirsiniz.

TcpClient TCPC = new TcpClient("whois.verisign-grs.com", 43); string strDomain = "niyazialpay.com" + "\r\n"; byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain); Stream objStream = TCPC.GetStream(); objStream.Write(arrDomain, 0, strDomain.Length); StreamReader objSR = new StreamReader(TCPC.GetStream(), Encoding.ASCII); string icerik = Regex.Replace(objSR.ReadToEnd(), "\n", "
"); webBrowser1.DocumentText=icerik; TCPC.Close();

Bu sorgulama şekli ile yalnızca sınırlı sayıda uzantıların whois bilgilerini öğrenebilirsiniz. En sağlıklısı her uzantı için ayrı ayrı whois serverlarından sorgulama yapılmasıdır. Aşağıdaki bulunan kodlar ile birlikte bu işlemi gerçekleştirebilirsiniz.

using System; using System.Text; using System.Net.Sockets; using System.IO; using System.Text.RegularExpressions; namespace Cryptograph_Whois_DNS_Tools { public class whois { private string GetDomainName(string url) { var doubleSlashesIndex = url.IndexOf("://"); var start = doubleSlashesIndex != -1 ? doubleSlashesIndex + "://".Length : 0; var end = url.IndexOf("/", start); if (end == -1) end = url.Length; string domainname = url.Substring(start, end - start); if (domainname.StartsWith("www.")) domainname = domainname.Substring("www.".Length); return domainname; } private stri

Bash Script ile Otomatik Iptables Kuralları Tanımlama

Bir başka konumda temel Iptables kullanımı ile ilgili bilgi vermiştim. Iptables üzerinde çok işlem yapıyorsanız eğer, yeni IP adreslerine izin tanımlama farklı portlara izin tanımlama gibi, sürekli sürekli aynı komutları yazmak sıkıcı gelebilir. Aşağıdaki paylaştığım script ile bu işlemi kısa sürede halledebilirsiniz.

#!/bin/bash # Muhammed Niyazi ALPAY # https://niyazi.org function iptablesrules(){ echo "" echo "==========================================================" echo "" read -p "IP adreslerini aralarında virgül ile birlikte giriniz: " ipaddresses echo "" read -p "Port numaralarını aralarında virgül ile birlikte giriniz: " ports echo "" echo 0 > /proc/sys/net/ipv4/ip_forward iptables -A INPUT -p tcp -m multiport --dports $ports -s 127.0.0.1,$ipaddresses -j ACCEPT iptables -A INPUT -p udp -m multiport --dports $ports -s 127.0.0.1,$ipaddresses -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports $ports -j DROP iptables -A INPUT -p udp -m multiport --dports $ports -j DROP echo 1 > /proc/sys/net/ipv4/ip_forward echo "" echo "==========================================================" echo "" echo "İşlem başarı ile tamamlandı." echo "" echo "==========================================================" echo "" } read -p "Önceki Iptables kuralları silinsin mi? (e ya da h) " removerule if [ ${removerule} == "e" ]; then echo "Iptables kuralları silindi" iptables --flush elif [ ${removerule} == "h" ]; then echo "" else echo "Lütfen e veya h olarak giriş yapın" fi iptablesrules condition_to_check="False" while [[ ${condition_to_check} == "False" ]]; do read -p "İşleme devam edilsin mi? (e ya da h) " query if [ ${query} == "h" ]; then condition_to_check="True" elif [ ${query} == "e" ]; then iptablesrules else echo "Lütfen e veya h olarak giriş yapın" fi done chkconfig iptables on service iptables save echo "" echo "===========

Linux İşletim Sistemi Üzerinde Toplu Olarak Log Temizliği

Linux işletim sistemi çalıştığı süre boyunca karşılaşılan hatalar, sistem uyarıları vs her şeyin kaydını tutmaktadır. Bu kayıtlar bir zaman sonra büyük boyutlara ulaşabiliyor. Bu da haliyle harddisk üzerinde yer kaplamakta. Bu durum ev kullanıcıları için çok bir şey farkettirmese de web sunucuları üzerinde yer sıkıntısı yaşanabiliyor. Sunucu üzerinde gerekli bakımlar vs yapılmadığı durumlarda log dosyaları büyük boyutlara ulaşabiliyor.

Linux işletim sistemi üzerinde log dosyaları /var/log altında bulunur. Bu log dosyalarını tamamen silmek işletim sistemine zarar verir. Sisteme zarar vermemek için bu dosyaların içlerini boşaltmak gerekir. Örneğin mail gönderme loglarını temizleyecekseniz "rm -rf /var/log/maillog" komutunu çalıştırmak sisteme zarar verecektir. Bu durumda maillog dosyası silinir ve bir daha buraya log yazamayacağı için sistem sorun çıkartır. Bu log dosyasının içini ":> /var/log/maillog" bu şekilde temizleyebiliriz. Ancak /var/log dizini altında bir çok dosya ve dizin bulunmakta, tek tek hepsini temizlemek de zaman alabilir. Log dosyalarının temizleme işlemini aşağıdaki komutlar ile daha hızlı bir şekilde halledebilirsiniz. Bu komutlar "sh" uzantısı ile kaydetmeniz gerekmektedir.

#!/bin/bash # Muhammed Niyazi ALPAY # https://niyazi.org find /var/log/ -type f >logdosyalari.txt while read line do NAME=`echo "$line" | cut -d'.' -f1` EXTENSION=`echo "$line" | cut -d'.' -f2` rm -rf $NAME.gz :> "$line"; done <logdosyalari.txt rm -rf logdosyalari.txt rm -rf /var/log/*-2* rm -rf /var/log/*.2* echo "Log dosyaları silindi"

Bu komutları logclear.sh olarak kaydettikten sonra çalıştırırsanız /var/log içerisindeki ve alt dizinlerindeki tüm log dosyaları temizlenecektir.

C# Veritabanında Sorgu Çalıştırma

C# ta veritabanında sorgu çalıştırabilmemiz için SqlCommand komutunu kullanırız, ben örneğimize MySql üzerinden devam edeceğim için MySqlCommand komutunu kullanacağım.
Yeni bir windows form uygulaması başlatıp, iki buton bir de listview ekliyoruz. Butonun birine "Bilgileri Getir" diğerini "Bilgiyi Sil" isimlerini veriyoruz.İlk önce veritabanı bağlantımızı yapmak için bağlantı komutlarımızı yapıp bağlantıyı açıyoruz. MySqlConnection baglanti = new MySqlConnection("server=localhost; userid=root; password=root; database=cryptograph"); Bilgileri Getir ismini verdiğimiz butonun click olayına hata kontrol komutlarımızı kullanarak bağlantımızı açıyoruz ve veriler çekmek için gerekli komutlarımızı yazıyoruz.
try { baglanti.Open(); MySqlCommand sorgu = new MySqlCommand("SELECT * FROM blog ORDER BY id DESC", baglanti); MySqlDataReader oku = sorgu.ExecuteReader(); while (oku.Read()) { listView1.Items.Add(oku["blog_baslik"].ToString()); } } catch (Exception hata) { MessageBox.Show(hata.ToString(), "Hata"); } finally { baglanti.Close(); }
MysqlCommand komutu ile sorgu isminde bir nesne tanımladık ve sql sorgumuzu belirtip hangi bağlantıyı kullanacağını belirttik.SELECT * FROM blog ORDER BY id DESC sql sorgumuz, burada blog isimli tablodan verilerin id alanına gire tersten sıralanacak şekilde getirilmesini istedik.MysqlDataReader ile bir data reader nesnesi oluşturduk, yani veritabanından bilgileri okuyacak olan nesne, oku isimli nesneye sorgu.ExecuteReader(); bu komut ile bilgiyi nereden okuyacağını belirttik, sorgu isimli nesneden alacak bilgiyi.Daha sonra bunu döngüye sokarak listview içine ekledik veriyi. Try içerisinde gerçekleşen sorgular bittiğinde finally içerisindeki sorgu çalıştırılır, yani durum gerçekleşse de gerçekleşmese de en sonda yapılacak işlem burada belirtiliyor,