/bin/bash^M: bad interpreter: No such file or directory hatası ve çözümü

Bazı bash scriptleri çalıştırmak isterken /bin/bash^M: bad interpreter: No such file or directory hatası alabilirsiniz , benim başıma gelme sebebi scripti windows ortamında hazırlayıp linux e indirerek çalıştırma denemem sonucunda oluştu. Çözüm için bash scriptinizi vi editörü ile açınız , aşağıdaki satırı yapıştırıp yine esc ve :wq ile kaydedip çıkınız  i şimdi bash scriptiniz çalışacaktır

:set fileformat=unix

Linux Sunuculara Otomatik Komut Gönderimi

Çoğu zaman buradan bir şeyler paylaşıyorum , sebebi ise tekrar gerektiğinde çözümü bulacağım yeri bilmek , mevcut şirketimde bu yapıda 300 civarı server var , tabi farklı yapıda 1000 kadar sunucu yönetiyoruz, hepsine bir gui ile bağlanıp komut gönderebilirim , tek tek ssh ile de bağlanabilirim ama bu ciddi vakit alıcı bir durum ve tekrar aynı işi yapmak ister isem aynı vakti yine harcayacağım . Şimdi bana verilen görev tüm sunuculara maldet kurmak. Önce biraz düşünme vakti ayırıyorum kendime ve bir demli çay hazırlıyorum.

Elimdeki doneler

*Aynı dağıtım sunucular

*Aynı ssh portları

*Aynı ssh şifreleri

Bu durumda şöyle düşünüyorum; aynı komut hepsinde çalışacak , ssh protokülünde port belirtebiliyorum ve sshpass ile de key gerekmeksizin aynı şifreyi tüm sunucular için sırası ile girdirebiliyorum. Şimdi bu örneği gerçeğe dönüştürelim.

Debian tabalı bir dağıtım olan kali kullandığım için apt-get install sshpass ile ssh pass kurdum , burayı söylemiyorum.

Bir hosts.txt dosyası oluşturdum ve tüm işlem yapacağım sunucuları içine alt alta satır satır yazdım.

nano hosts..txt

sunucu1.ayhanarda.com
herhangi bir ip adresi
suunucu8.blabla.com
server5.ayhanarda.com

Kaydedip çııkıyorum , şimdi komutumuza gelelim , buraya kadar aynı yaptığınızı varyarak değişkenleri işaretledim.

mapfile -t myhosts < hosts.txt; for host in “${myhosts[@]}”; do sshpass -p ŞİFRENIZ ssh root@”$host” -p PORT -o “StrictHostKeyChecking no” ‘KOMUT‘; done

Ayhan ARDA

apache benchmark gnuplot

Gnuplot ile Apache Benchmark Değerlerini Grafik Haline Getirmek

Ben testlerimde kali linux kullanmayı tercih ediyorum , debian tabanlı olması işimi de kolaylaştırıyor. Gnuplot eğer kullandığınız dağıtımda yok ise apt-get install gnuplot şeklinde kurulum yapabilirsiniz.

Şimdi örneğimizde bir siteye ab test yapacağız , Aşağıdaki komut baz alındığında açıklaması kısaca şöyle , ben ayhanarda.com a doğru eş zamanlı 10 istek şeklinde toplam 500 istek göndereceğim. Sonucunu da ardatest.data dosyasına yazacağım. (tabi Siz benim siteme doğru test yapmayın lütfen 🙂

root@ayhanarda-kali:~# ab -n 500 -c 10 -g ardatest.data http://www.ayhanarda.com/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.ayhanarda.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
Server Software: LiteSpeed
Server Hostname: www.ayhanarda.com
Server Port: 80

Continue reading Gnuplot ile Apache Benchmark Değerlerini Grafik Haline Getirmek

Linux’te en çok dosya barındıran 10 klasörün tespiti (inode)

Aşağıdaki bash scripti kullanabiliriz.

Kullanımı aşağıdaki bash scripti bir dosyaya yazın , örneğin   nano inode.sh  , içeriği yapıştırın , ctrl +x ile kaydedin , chmod +x inode.sh ile çalıştırma izni verin , sonra ./inode.sh /home şeklinde kullanabilirsiniz.

#!/bin/bash
 
if [ $# -ne 1 ];then
  echo "Usage: `basename $0` DIRECTORY"
  exit 1
fi
 
echo "Lutfen sonucu gormek icin biraz bekleyin... Ayhan ARDA..."
 
find "$@" -type d -print0 2>/dev/null | while IFS= read -r -d '' file; do 
    echo -e `ls -A "$file" 2>/dev/null | wc -l` "files in:\t $file"
done | sort -nr | head | awk '{print NR".", "\t", $0}'
 
exit 0

 

Sonuç aşağıdaki gibi gözükecektir.

root@ayhanarda:~# ./inode-arda.sh /home
Lutfen sonucu gormek icin biraz bekleyin… Ayhan ARDA…
1. 18507 files in: /home/orneksite/httpdocs/resimler/urun
2. 9370 files in: /home/orneksite2/httpdocs/images/resimler201203
3. 8729 files in: /home/orneksite3/httpdocs/urunler
4. 4828 files in: /home/orneksite4/httpdocs/wp-content/uploads
5. 4699 files in: /home/orneksite5/httpdocs/testi/images
6. 3162 files in: /home/orneksite6/httpdocs/Galeri/Foto
7. 2715 files in: /home/orneksite7/httpdocs/media/k2/users
8. 2250 files in: /home/orneksite8/httpdocs/deneme/par
9. 2230 files in: /home/orneksite9/tmp
10. 2039 files in: /home/orneksite10/tmp

 

Ayhan ARDA

Unsupported hardware family “virtualbox-2.2” hatası

Bir ova dosyasını esx e deploy etmeye çalışırken “Unsupported hardware family “virtualbox-2.2″”şeklinde bir hata alabilirsiniz , kısaca diyor ki bu bir virtualbox template i, sen bunu esx e deploy edemezsin. Peki şimdi vazmı geçeceğiz , tabiki hayır.

unsupported-ovf

Vmware in bir ovf tool u var , VMware Open Virtualization Format Tool adresinden bunu indirebilirsiniz. Küçük bir exe dosyası esasen ve komut arabiriminden çalıştıracağız.  Şimdi indirip kurduğunuzu varsayıyorum , muhtemelen Program files altında bir yere indi , yolunu tespit ettikten sonra windows komut konsolunu açıyoruz

convert-ovf-ova

Komutumuz aşağıdaki şekilde. Açıklamalarını bir altta vereceğim.

C:\Program Files\VMware\VMware OVF Tool>ovftool.exe –lax d:\iso\ossec-vm-2.8.3.ova d:\iso\ossec-vm-2.8.3.ovf
Opening OVA source: d:\iso\ossec-vm-2.8.3.ova
Opening OVF target: d:\iso\ossec-vm-2.8.3.ovf
Writing OVF package: d:\iso\ossec-vm-2.8.3.ovf
Transfer Completed
Warning:
– No manifest entry found for: ‘ossec-vm-2.8.3-disk1.vmdk’.
– No manifest file found.
Completed successfully

Şimdi az önce ovftool.exe nin yerini bulmuştuk, bende C:\Program Files\VMware\VMware OVF Tool içinde , cmd de o path e gittim ve sonrasında ovftool.exe –lax yazdım , sonra ova dosyasının yolunu ve yine sonrasında oluşmasını istediğim ovf dosyasınını yolunu ve adını yazdım , işlem bu kadar , kısa süre içinde işlemin başarıyla tamamlandığına dair yazıyı göreceksiniz. Şimdi oluşturduğunuz ovf dosyasını notepad ile açıp <vssd:VirtualSystemType>virtualbox-2.2</vssd:VirtualSystemType> yazan yeri <vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType> olarak değiştirin ve kaydedin.

Şimdi dosya editleyerek hash ini de değiştirdiğimiz için tekrar deploy ederken integrity check hatası alacaksınız. Bu sebeple File Checksum Integrity Verifier utility yi indirmeniz gerekecek. Ben C diskinmin içine indirdim , yine koumt konsolu üzerinden işlem yapacağız. KOmutumuz aşağıdaki şekilde , fciv.exe yazıyoruz o path içinde iken , sonrasında manifesto dosyasında belirtilen şifrelemeyi yazıyoruz , bende Sha1 şeklinde , sonrada dosyanın path i ve adını yazıyoruz , bize yeni bir verifier veriyor , bunu manifesto dosyamızın içine yazıyoruz. .ovf uzantılı dosyayı her değiştirdiğinizde bu işlemi tekrarlamalısınız , Sizin açmaya çalıştığınız ovf ye göre bu işlemi yapmanıza gerek olmayabilirde , eğer integrity hatası alır iseniz uygulayabilirziniz.

C:\>fciv.exe -sha1 D:\iso\ossec-vm-2.8.3.ovf
//
// File Checksum Integrity Verifier version 2.05.
//
ce2f5d6708b1a1718e07f270f0f2f3208b447c06 d:\iso\ossec-vm-2.8.3.ovf

 

Ayhan ARDA

Plesk 8447 Update portu çalışmama sorunu

Hosting sunucularımızdan birinde Plesk i güncellemek için panelden ilgili alana gittiğimizde açılan sayfa yanıt vermiyordu , netstat ile kontrol ettiğimizde sunucunun 8447 nolu portu dinlemediğini gördük.

[root@ayhanarda ~]# netstat -an | grep 8447

cevap dönmüyordu.

Bu durumda aşağıdaki komutu kullanabilirsiniz.

[root@ayhanarda ~]# plesk installer –all-versions –select-product-id plesk –select-release-latest –show-components >/dev/null && plesk installer –version

Eğer yukarıdaki komut “Doing restart of Plesk Installer…” hatası verir ise aşağıdaki komutu kullanıp sonrasında tekrar çalıştırınız.

[root@ayhanarda ~]# rm /tmp/psa-installer.lock

Şimdi tekrar kontrol edelim.

[root@ayhanarda ~]# netstat -an | grep 8447
tcp 0 0 :::8447 :::* LISTEN

Şimdi Plesk i güncelleme sayfasına tekrar erişip update çalıştırabilirsiniz.

Ayhan ARDA

docker compose

Centos 7 ‘de Docker ve Docker Compose Kurulumu ile Kullanımı

Docker Compose, multi-container uygulamalarınızı gereksinimleri ile birlikte tek bir dosyaya tanımlayarak akabinde tek bir komut ile reçetesini yazdığınız container ı ayağa kaldırmanızı sağlamaktadır.

Şimdi elimizde sıfır kurulu ve updateleri yapılmış bir centos 7 var , bir public ip verdim ( burada bolca var 🙂 ) , siz private ip de verebilirsiniz , sonuç olarak ssh erişimim de var ve makina bir şekilde internete çıkıyor, buraya kadar tamam ise konuya girebiliriz.

Bu arada docker compose eski fig in yerini aldı , fig duyar iseniz artık o deprecated oldu ve resmi olarak docker compose diye anılıyor.

Öncelikle Docker imajları hakkında bilgi verelim , Her bir docker container ı , bir docker imajının yerel bir kopyasıdır. Docker imajlarını bir linux işletim sistemi gibi düşünebilirsiniz ancak şöşnde sadece minimal gereksinimler bulunmaktadır ve bu imajlar ana host un kernel ini kullanırlar fakat çalışan bir container ın içine girerseniz sadece o container ın dosya sistemini görürsünüz.

En çok kullanılan imaj ları docker hub da bulabilirsiniz , Bunlar docker team tarafından kontrol edilir ve bazı imajların altında official ibaresini görür iseniz bu imajlara güvenebilirsiniz çünkü docker team bunları test etmiştir.

Şimdi docker kurarak başlayalım , bu iş için yine docker team ın hazırladığı bir shell script i çağırıp çalıştıracağız.

Centos 7 de wget öntanımlı gelmiyor , aşağıdaki komut ile indirebilirsiniz.

yum install wget

Şimdi scriptimizi çekiyor ve çalıştırıyoruz.

[root@ayhanarda-containers ~]# wget -qO- https://get.docker.com/ | sh

Yaklaşık 30 sn içinde kurulum tamamlandı , şimdi kurulup kurulmadığını aşağıdaki şekilde doğrulayabiliriz.

[root@ayhanarda-containers ~]# docker version
Client:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 15:39:25 2016
OS/Arch: linux/amd64

Eğer docker ı root olmayan bir kullanıcı ile kullanacak iseniz aşağıdaki komutla kendinizi docker grubuna dahil edebilirsiniz.

usermod -aG docker $(whoami)

Eğer root iseniz yukarıdaki komutu kullanmanıza gerek yok , şimdi docker ı başlatalım ve bundan sonraki rebootlar sonunda tekrar çalışacak hale getirelim , aşağıdaki 2 komutu kullanabilirsiniz.

[root@ayhanarda-containers ~]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@ayhanarda-containers ~]# systemctl start docker.service

Artık docker çalışır durumda. Şimdi docker compose kurulumuna geçebiliriz.

Öncelikle python-pip kuruyorum çünkü docker compose u pip ile kuracağım.

[root@ayhanarda-containers ~]# yum install epel-release

[root@ayhanarda-containers ~]# yum install -y python-pip

Şimdi docker compose u kuruyoruz.

[root@ayhanarda-containers ~]# pip install docker-compose

Kurulum tamamlandı.Şimdi hemen docker compose ile bir container ayağa kaldıralım.

Şimdi yaml dosyamız için bir klasör açıp içine giriyorum.

[root@ayhanarda-containers ~]# mkdir hello-world
[root@ayhanarda-containers ~]# cd hello-world

docker-compose.yml isimli dosyamızı oluşturup içine reçetemizi yazacağız. Ben favori editör olarak nano kullanıyorum , Siz farklı bir editor kullanabilirsiniz.

[root@ayhanarda-containers hello-world]# nano docker-compose.yml

içine aşağıdaki satırları yazabilir ve kaydedebilirsiniz.

ayhanarda-test:
image: hello-world

Yani aşağıdaki gibi gözükmeli.

[root@ayhanarda-containers hello-world]# cat docker-compose.yml
ayhanarda-test:
image: hello-world

Şimdi yapmamız gereken tek bir hareket kaldı , bu prospektüsün yazılı olduğu containerı up etmek , hala hello-world klasörümüzün içinde iken aşağıdaki komutu kullanabilirsiniz.

[root@ayhanarda-containers hello-world]# docker-compose up
Pulling ayhanarda-test (hello-world:latest)…
latest: Pulling from library/hello-world
03f4658f8b78: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest
Creating helloworld_ayhanarda-test_1
Attaching to helloworld_ayhanarda-test_1
ayhanarda-test_1 |
ayhanarda-test_1 | Hello from Docker.

..

Şimdi belirttiğimiz image ı indirdik , hadi bunu doğrulayalım.

[root@ayhanarda-containers hello-world]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 690ed74de00f 5 months ago 960 B

Şimdi aynı yöntemle bir de nginx kuruyorum , bunu yazmayacağım , şimdi docker hub da offical nginx i bulup adını doğrulayıp aynı yöntem ile oluşturabilirsiniz. Docker ps ile çalıştığını görebilirsiniz.

[root@ayhanarda-containers ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e37b79df162b nginx “nginx -g ‘daemon off” About a minute ago Up About a minute 80/tcp, 443/tcp nginx_nginx_1

Yukarıda bir Container id göreceksiniz , her çalışan container ın bir id si vardır, yani eğer biz bu container ın dosya sistemine girmek ister isek aşağıdaki gibi o makinanın içine erişebiliriz , hatta nginx in conf dosyasında değişiklik yapabiliriz , işimiz bitince exit yazarak çıkabiliriz.

[root@ayhanarda-containers ~]# docker exec -it e37b79df162b /bin/bash
root@e37b79df162b:/# cd etc/nginx/conf.d/
root@e37b79df162b:/etc/nginx/conf.d# ls
default.conf

Farklı docker-compose ve multi-container örnekleri ile yakında görüşmek üzere..

Ayhan ARDA

vmware-photon-docker

VMware vSphere üzerinde Photon OS ve Docker ve DockerUI Kurulumu

Docker ve container hosting kavramları yayılmaya devam ediyor , Bu kapsamda docker ın PhotonOs üzerinde kurulumunu ele alacağım.

Öncelikle aşağıdaki adresten Photon Os full iso yu indiriyorum.

https://dl.bintray.com/vmware/photon/iso/1.0TP2/x86_64/photon-1.0TP2.iso

Sonra vcenter ım üzerinden yeni bir sanal makina oluşturup indirdiğim iso ile boot ediyorum , buraya kadar detay vermeye gerek yok sanırım , kurulum başlangıç ekranı aşağıdaki gibi olacaktır.

photonos-1

Lisans anlaşmasını onaylamamız gerekecek.

photonos-2

Ben test için 50 Gb lık bir disk vermiştim, aşağıdaki ekran beni karşılıyor ve enter a basarak geçiyorum.Diskin içini sileceğini söylüyor ve Y harfine basarak onay veriyorum.

photonos-3

Bir sonraki ekran kurulum seçenekleri sormakta , screen shot a gerek duymadım, ben full diyerek geçtim.sonrasında bir hostname istiyor , bu tercih Size kalmış, en son olarak ta bir şifre belirlemenizi isteyecek.

Kurulum 220 sn sürdü , sunucu tekrar başlatıldı ve şimdi root kullanıcı adı ve belirlediğim şifre ile işletim sisteminin içindeyim.

Şimdi benim ortamımda dhcp yok , dolayısı ile bir ip adresi kayıtlı değil ve bu neden ile ssh erişimi de yapamıyorum , o halde bir ip adresi verelim.

Öncelikle mevcut dhcp config dosyasını static ismi ile kopyalıyorum. Önce bir ifconfig çıktımıza bakalım.

iki interface görüyorum , biri eno16777728 , diğeri ise lo (loopback)

O halde komutum şu olmalı.

root [ ~ ]# mv /etc/systemd/network/10-dhcp-en.network /etc/systemd/network/10-static-eno16777728.network

Yani 10-dhcp-en.network dosyasının adını 10-static-eno16777728.network olarak değiştirdik.

Şimdi bu dosyamızı açalım.

root [ ~ ]# nano /etc/systemd/network/10-static-eno16777728.network

İçinde aşağıdaki değişiklikleri yapalım ya da içini silelim aşağıdaki örnein aynısını ip adresi ve interface adını değiştirerek yapalım. Ben aslında public ip verdim ama ip range imin belli olmaması için örnekte local ip vermiş gibi yazıyorum.

[Match]
Name=eno16777728

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8
Domains=photonos.local

Ip verdiğimize göre şimdi network servisini tekrar başlatabiliriz.

root [ ~ ]# systemctl restart systemd-networkd-service

Şimdi ssh a girebilir durumda mıyız? Tabiki hayır , öncelikle ssh config dosyamızda root girişine izin verelim.

root [ ~ ]# nano /etc/ssh/sshd_config

Bu dosya da #PermitRootLogin yes gördüğünüz kısmı PermitRootLogin yes olarak değiştiriniz. Yani başındaki diez i kaldırıp enable edin ve kaydedin. Şimdi ssh servisimizi başlatabiliriz.

root [ ~ ]# systemctl start sshd

Artık sunucumuza verdiğimiz ip ile ssh 22 nolu porttan bağlanabiliriz.

Şimdi docker daemon unu başlatmanın vakti geldi.

root [ ~ ]# systemctl start docker
root [ ~ ]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
root [ ~ ]# systemctl status docker
* docker.service – Docker Daemon
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since Wed 2016-03-23 12:48:42 UTC; 33s ago
Main PID: 429 (docker)

Hemen test için bir nginx container ı aktif etmeye ne dersiniz?

root [ ~ ]# docker run -d -p 80:80 vmwarecna/nginx
Unable to find image ‘vmwarecna/nginx:latest’ locally
latest: Pulling from vmwarecna/nginx
511136ea3c5a: Pull complete
e977d53b9210: Pull complete
c9fa20ecce88: Pull complete
184d60f5cc4f: Pull complete
96d31e36bd8a: Pull complete
fd2224b9a216: Pull complete
7f3a2bd1e995: Pull complete
4c4851e85e94: Pull complete
560d74bc7ae1: Pull complete
07f0aa77ae76: Pull complete
126105e511b8: Pull complete
775024331ffa: Pull complete
db26ae25be15: Pull complete
6d36a12c92d5: Pull complete
Digest: sha256:f73bbae0f31823c06478b1fa5efb4957bc25239802fd5ea94e4442c0a6090d23
Status: Downloaded newer image for vmwarecna/nginx:latest
d3adea692a100ce4020a91018c17433cdd4aedc90e8cd446a9845279059311aa

Mevcut çalışan containerlarımıza bir bakalım.

root [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d3adea692a10 vmwarecna/nginx “nginx -g ‘daemon off” 24 seconds ago Up 23 seconds 0.0.0.0:80->80/tcp, 443/tcp sleepy_wright

Şimdi browserdan ip adresini yazıp bir test edelim.

photonos-4

Artık elimizde nginx çalışan bir container var.

Peki bu container ları web üzerinden yönetebilir miyiz?

Tabiki evet,  DockerUi Kurulumundan bahsedelim.

root [ ~ ]# docker run -d -p 9000:9000 –privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui
Unable to find image ‘dockerui/dockerui:latest’ locally
latest: Pulling from dockerui/dockerui
706db4235055: Pull complete
84f978a622ba: Pull complete
95c8b9dc91e0: Pull complete
Digest: sha256:4bfb5b2498e98baaa4e1fd0e12e9022d0b1eb5d79fd68ee7751941bac7fcfed3
Status: Downloaded newer image for dockerui/dockerui:latest
a45c12f8abcbde61f7f759b626127a3672aa5ddef4115da2a6ccfeef563214b6
root [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a45c12f8abcb dockerui/dockerui “/dockerui” 4 seconds ago Up 3 seconds 0.0.0.0:9000->9000/tcp happy_raman

Şimdi browserdan ip adresiniz ve 9000 nolu port ile dockerui arayüzüne erişebilirsiniz.

Örnek : http://192.168.1.10:9000

 

dockerui-install

Vakit oldukça devamını bu konu ya da farklı bir yazı da getireceğim.

Ayhan ARDA

Allied Telesis AT-8000GS/24 sıfırlama

Elime az önce sıfırlanması gereken bir Allied Telesis AT-8000GS/24 tutuşturdular , bunun baud rate i nedir , hangi com porttan bağlanıcaz derken bir yandan da buraya not düşeyim dedim.

Cihaza 115200 baud rate ile kendi aktif com port umdan serial bağlandım ve cihazın açılmasını bekledim , neyseki fabrika ayarlarına geri getirmek yerine mevcut şifresini bildiğim için sıfırlamak daha kolay oldu.

K.adı ve şifre ile erişip show running-config dedim ve konfigürasyon olduğunu gördüm , sonrasında delete startup-config ile konfigi sildim ve çıkan uyarıya evet anlamında Y harfine basarak onay verdim , işlem tamamlandı , esasen cihaz içindeki flash ta bulunun startup-config isimli dosyayı siliyor , hepsi bu , sonrrasında reload ile cihazı tekrar başlattım ve artık içinde config kalmamıştı.

mailcluster.ayhanarda.com# delete startup-config
Delete startup-config [y/n]? y
mailcluster.ayhanarda.com# 01-Aug-2007 03:04:11 %FILE-I-DELETE: File Delete – file URL flash://startup-config

mailcluster.ayhanarda.com# reload
You haven’t saved your changes. Are you sure you want to continue ? (Y/N)[N] Y
This command will reset the whole system and disconnect your current session. Do you want to continue ? (Y/N)[N] Y
Shutting down …

Ayhan ARDA

lets-encrypt-cpanel

Let’s Encrypt Sertifika Kurulumu

Örneğimizi Cpanel kurulu sunucuda yapacağız , ihtiyaca göre farklı sunucular içinde yazabiliriz. Öncelikle Let’s Encrypt ten bahsedelim , ücretsiz ssl sağlayan bir organizasyon diyebiliriz , destekçileri arasında Mozilla , Facebook gibi devler bulunmakta , en önemli özelliği ücretsiz ssl sağlaması, en güzel tarafıda bir csr oluşturmaya gerek olmaması ve alan adının ya da hosting in sahibi olduğunuzu kanıtlayacak admin@alanadi.com gibi bir mail adresine sahip olmanızın gerekmemesi. Şu an için sunucu sahipleri avantajlı durumda , barındırdıkları siteler için ücretsiz kurup servis edebilirler ancak paylaşımlı hosting kullanıcıları servis yaygınlaşana kadar ssl e para ödemeye devam edecek gözüküyor çünkü sunucu yöneticisi shell access verse de kurulum için root hakları gerekmekte. Artık arama motorlarının da ssl li siteleri kendi algoritmasında 1 puan üstte tutması da ssl kullanmak için iyi bir sebep gibi gözüküyor. Şimdi cpanel kurulu bir sunucunuz olduğunu varsayıyorum , üzerinde kendinize ait 3-5 site olsun ve bunlara ssl kurmaya çalışalım.

Sunucunuza ssh tan bağlanalım.

Ben root dizininde çalışmak istedim , siz farklı bir dizinde çalışabilirsiniz.

root@ayhanarda [/]# cd root/

Devam edebilmek için git kurulu olması gerekir , kurulu olup olmadığını doğrulayalım.

root@ayhanarda [~]# git
usage: git [–version] [–help] [-c name=value]
[–exec-path[=<path>]] [–html-path] [–man-path] [–info-path]
[-p|–paginate|–no-pager] [–no-replace-objects] [–bare]
[–git-dir=<path>] [–work-tree=<path>] [–namespace=<name>]
<command> [<args>]

Yukarıdaki gibi bir sonuç ile karşılaştı iseniz kuruludur , değil ise aşağıdaki komut ile kuralım.

root@ayhanarda [~]# yum install git -y

Kurulum tamamlandı ise şimdi Let’s Encrypt dosyalarını /root dizini altına kopyalayabiliriz.

root@ayhanarda [~]# git clone https://github.com/letsencrypt/letsencrypt
Cloning into ‘letsencrypt’…

İşlem tamamlandığında aşağıdaki komut ile letsencrypt dizini içine girelim.

root@ayhanarda [~]# cd letsencrypt

Şimdi bu noktadan sonraki işlemde python-virtualenv kurulu olması gerekmekte , yum install python-virtualenv -y komutu ile kurabilirsiniz ama ben aşağıdaki doğrulama işlemini yapınca kendi farkına varıp kurmaya başladı , tavsiyem öncelikle aşağıdaki komutu kullanmanız ,hata almanız durumunda bu paragraftaki komutu kullanmanızdır.

root@ayhanarda [~/letsencrypt]# ./letsencrypt-auto –help

İşlem 1-2 dakika sürebilir , ben bir ara panik olup elim hemen snapshot almaya gitmişti ama gereksizmiş , sıkıntı olmuyor , benim düşüncem bu paketin cpanelin kendi phyton paketlerine zarar vereceği şeklinde idi , bir şey olmadı 🙂

Şimdi tavsiyem httpd servisini kısa süreliğine durdurmanız.

root@ayhanarda [~/letsencrypt]# service httpd stop

Eğer ssl kuracağınız alan adına karar verdi iseniz aşağıda ayhanarda.com gördüğünüz yerleri kendi alan adınız ile değiştirmelisiniz.

root@ayhanarda [~/letsencrypt]# ./letsencrypt-auto certonly –standalone -d ayhanarda.com -d www.ayhanarda.com

Ekranda size bir mail adresi yazmanızı isteyen soru gelecek , kendi ya da müşterinizin mail adresini yazın ve devam edin.

Sonrasında şartları vs kabul etmenizi isteyen bir ekran gelecek , onaylayıp geçiniz.İşlem sonunda sertifika dosyalarının nereye koyulduğunu belirten bir yazı göreceksiniz , muhtemelen /etc/letsencrypt/live/ayhanarda.com dizininde olacak.

Şimdi hemen httpd servisini tekrar başlatalım.

root@ayhanarda [~/letsencrypt]# service httpd start
Redirecting to /bin/systemctl start  httpd.service

Hemen sertifikanın olduğu dizine erişelim.

root@ayhanarda [~/letsencrypt]# cd /etc/letsencrypt/live/
root@ayhanarda [/etc/letsencrypt/live]# ls -al
total 12
drwx—— 3 root root 4096 Mar  4 16:13 ./
drwxr-xr-x 8 root root 4096 Mar  4 16:13 ../
drwxr-xr-x 2 root root 4096 Mar  4 16:13 ayhanarda.com
root@ayhanarda [/etc/letsencrypt/live]# cd ayhanarda.com/
root@ayhanarda [/etc/letsencrypt/live/ayhanarda.com]# ls -al
total 8
drwxr-xr-x 2 root root 4096 Mar  4 16:13 ./
drwx—— 3 root root 4096 Mar  4 16:13 ../
lrwxrwxrwx 1 root root   34 Mar  4 16:13 cert.pem -> ../../archive/ayhanarda.com/cert1.pem
lrwxrwxrwx 1 root root   35 Mar  4 16:13 chain.pem -> ../../archive/ayhanarda.com/chain1.pem
lrwxrwxrwx 1 root root   39 Mar  4 16:13 fullchain.pem -> ../../archive/ayhanarda.com/fullchain1.pem
lrwxrwxrwx 1 root root   37 Mar  4 16:13 privkey.pem -> ../../archive/ayhanarda.com/privkey1.pem

Görüldüğü üzere tüm sertifikalar burada , cat komutu ile okunabilir durumda , hemen whm panele erişip Install an SSL Certificate on a Domain bölümüne girelim.

Şimdi aşağıdaki resmi inceleyip resim üzerinde yazdığım detayları uygulayabilir ve ssl kurulumunu tamamlayabilirsiniz.

cpanel-lets-encyrpt-ayhanarda-com

Şimdi sitenize ssl ile erişmeyi deneyebilirsiniz. Bir detay vereyim , verdiği ssl süresi 3 ay gözüküyor , bu süre sonunda muhtemelen işlemi tekrarlamak gerekecek , umarım faydalı olur. Hosterlar için… hosting müşterilerinize ücretsiz ssl şeklinde servis edip  cüzi bir miktar kurulum ücreti ile bir ürün haline getirebilirsiz.

Ayhan ARDA

0xC80003F3 -939523085 hrOutOfMemory The computer is out of memory hatası ve çözümü

0xC80003F3

Eski windows sunucularınızın update i sırasında 0xC80003F3 -939523085 hrOutOfMemory The computer is out of memory hatası alabilirsiniz , çözüm için aşağıdaki işlemleri yapınız.

Registry Editörü açınız (Regedt32.exe).

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems bölümüne erişiniz.

Windows kaydının üzerine çift tıklayıp aşağıdaki değerleri arttırınız.

SharedSection=xxxx,yyyy,zzzz şeklinde bir değer göreceksiniz , burada zzzz olarak geçen muhtemelen 256 yazan bölümü 1024 ile değiştiriniz , yyyy olarak gözüken bölümü ise eğer 32 bit işletim sistemi kullanıyor iseniz 12288 , 64 için ise 20480 olarak değiştiriniz , hepsi bu kadar şimdi tekrar update işlemini çalıştırmayı deneyebilirsiniz.

Ayhan ARDA