komut satırımızdan aldığımız verileri kimi zaman mailboxımıza atmak isteyebiliriz veya otomatik çalışan test sonuçlarının mailimize gelmesini de.. Ancak çok kullanılan mail sunucularının (gmail, yahoo, vb..) artık güvenilir kaynaktan gelmeyen mailleri spam dahi saymadığı ve direkt yok saydığı bir gerçek. Bu yüzden bu işlemleri smtp üzerinden yapmak gibi bir gereksinim doğuyor.
Bu işin windows platformunda nasıl yapıldığını kısaca http://www.dubluve.net/2013/08/01/windows-komut-satirindan-mail-gonderimi/ yazımızda anlatmıştık. Şimdi sıra mac’te ve Linux sistemlerde. Örneği gmail üzerinden vereceğim.
1. Adım : Postfix main.cf dosyasını düzenleyelim
sudo vim /etc/postfix/main.cf
sizin main.cf dosyanız farklı bir yerlerde olabilir tabi ki. Bir zahmet bulunuz.
Daha sonra commentlenmiş relayhosts yazısının hemen altına
relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_use_tls = yes
2. Adım : sasl_password dosyası yoksa oluşturalım
sudo vim /etc/postfix/sasl_passwd
içerisine aşağıdakini yazalım
[smtp.gmail.com]:587 [email protected]:password
3. Adım : bir kaç izin ve service restart felan..
sudo chmod 600 /etc/postfix/sasl_passwd sudo postmap /etc/postfix/sasl_passwd sudo launchctl stop org.postfix.master sudo launchctl start org.postfix.master
bu launchctl sadece mac için geçerli. (mail’in konsol üzerinden gönderimlerde hizmet olarak çalışması gerekmiyor diye hatırlıyorum.)
4. Adım : Deneyelim :
echo "bu bir test maili bakalım gidecek mi?" | mail "[email protected]"
Bu işlem sonrasında mail gerçekten gmaile düşüyorsa tamamdır. Tabi sizin bu ayarlarınızı yaptığınız mail adresinizi SMTP olarak kullanmanız gerekiyor. (Bu tıpkı elektrikli ev aletlerin içinden çıkan olası arıza durumlarında yapılacaklar listesindeki “fişi taktığınıza emin olun” maddesine denk düşüyor sanırım)
Bu işi Linux için şöyle yapanlar da mevcut. Onu da şu an türkçeleştirmeye mecalim yoktur. Buyrunuz linki : http://tecadmin.net/send-email-smtp-server-linux-command-line-ssmtp/
]]>Bilgisayarı yeniden başlattım, ardından komut satırından apt-get update yapmak istedim. Aldığım hata;
"E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem."
Sebebi kurmak istediğim paketlerin dpkg ayarları ile ilgiliymiş. Bu aşamada tekrar update-manager açıp güncellemeyi oradan yapmaya çalışırsanız, üstte anlattığım durum tekrar karşınıza çıkacak ve bilgisayarı yeniden başlatmak zorunda kalacaksınız.
Durumu çözebilmek için ilk önce şu komutu çalıştırıp, kurulması yarım kalan paketleri fixliyoruz.
sudo apt-get install -f
Ardından şu komutu çalıştırarak dpkg konfigurasyonunu düzenleyip, iptal ettiğimiz paketleri kuruyoruz.
sudo dpkg --configure -a]]>
GitHub Pages, projelerinize vs. websitesi oluşturabildiğiniz GitHub reponuzda host edilen, dolayısıyla terminalden git ile kontrol edebileceğiniz bir yapıdır.
Peki Jekyll’nin GitHub ile olayı nedir? Oluşturduğunuz bir GitHub Page içerisine, Jekyll push ettiğiniz takdirde, bir adet blogunuz olmakta. İşin özeti tamamen bu aslında.
Hızlıca bu işlemleri yapmak istiyorsanız, şu linke tıklamanız yeterli. Adım adım ne yapacağınız yazıyor, ancak ben kısaca bahsedeyim.
İlk olarak github içerisinde {{username}}.github.com isminde bir repo oluşturuyorsunuz. Ardından bilgisayarınızda Jekyll’i clonelayıp, remote set-url ile oluşturduğunuz repoya gönderiyorsunuz. Ve {{username}}.github.io adresiniz yaklaşık bir 10 dakika içerisinde açılmış oluyor.
Linkini verdiğim sitede layoutları bootstrap ile yapılmış bir Jekyll var. Eğer isterseniz tabi ki kendiniz de temasını şeklini felan düzenleyebilirsiniz. Ayrıca eğer isterseniz mevcut bir Jekyll’den clonelayıp kendiniz bir tane oluşturabilirsiniz. Burada bir liste var örneğin : https://github.com/jekyll/jekyll/wiki/Sites
Postların tamamı, _posts klasörünün altında bulunuyor. Eğer terminalden rake post title=”deneme” derseniz, _posts klasörünün altında, current-date-deneme.md isminde bir dosya oluşuyor. Bu dosyayı herhangi bir editör ile düzenlediğinizde bir adet post yazmış oluyorsunuz. Ancak bu şekilde yapmak zorunda değilsiniz, _posts altında herhangi bir dosya oluşturup onu {{username}}.github.io/{{dosya_adi}} şeklinde veya bir klasör oluşturup ardından onun altında dosya oluşturup {{username}}.github.io/{{klasör}}/{{dosya_adi}} şeklinde çalıştırabilirsiniz.
Jekyll’i localde çalıştırabilmek için bilgisayarınızda ayrıca ruby kurulu olması gerekiyor. Onu da buradaki yazımda anlatmıştım, belki yardımcı olabilir.
Ayrıca localde çalışırken başıma gelen bir olay; _config.yml dosyası jekyll serve dediğinizde load oluyor. Üzerinde değişiklik yaptığınızda tekrar jekyll serve demeniz gerekiyor.
Localde çalışırken başıma gelen bir başka hata ise şu şekildeydi : runner.rb:365:in `require_program’: program version required (Commander::Runner::CommandError)
Çözümü ise : sudo gem install json
Jekyll’nin asıl amacı, yazılımcıların kod yazar gibi blog içeriği oluşturmalarıymış. Ufak bir araştırma yaptığımda kullanan sayısının bir hayli çok olduğunu da gördüm.
]]>Boot ayarlarından USB’ye öncelik verdik ve içerisinde Ubuntu bulunan usb ile bilgisayarı başlattık. Install etmeden çalıştırdık. Ardından terminali açtık. Aşağıdaki komutları çalıştırdıktan sonra bilgisayarı restart ettik.
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update sudo apt-get install -y boot-repair && boot-repair
Bu şekilde sorunu halletmiş olduk.
]]>grep -l 'aratilacak_dizgi' * | xargs sed -e 's/aratilacak_dizgi/yeni_dizgi/' -i
sadece grep -l ‘aratilacak_dizgi’ ile içinde ‘aratilacak_dizgi’ olan dosyaları listeleyebilrsiniz. sed komutu ile de replace işlemini yapmış oluyoruz.
Umarım işinize yarar.
]]>aşağıdaki kod bulunulan klasördeki 10 Megabayt üstü dosyaları listeler
find . -size +10M -ls
aşağıdaki kod bulunulan klasördeki 10 kilobayt üstü dosyaları listeler
find . -size +10k -ls]]>
Sanal sunucu yani virtual host ayarlarının nasıl yapılacağına bakalım şimdi.
Örnek olarak, web sitelerimi barındırdığım dizin /home/khantunckale/sites
Bunun içerisinde test diye bir klasörümüz olsun, içerisinde de index.html olsun.
cd /home/khantunckale/sites mkdir test gedit test/index.html /*düzenleyip içine bişeyler yazalım*/
Amacımız, buradaki index.html dosyasını browserımız üzerinden http://www.test/ olarak çağırmak.
Şimdi nginx ayarlarını yapalım.
Önce ayarları yapmak için nginx’in sites-available klasörüne gidiyoruz.
cd /etc/nginx/sites-available
Default config dosyasının bir kopyasını oluşturuyoruz.
cp default test
Ardından bu dosyayı bir editör ile açıp düzenleyelim. (gedit, nano vs.) Ben kendi ayarlarımı şu şekilde yaptım.
server {
server_name www.test;
access_log /home/khantunckale/sites/test/access.log;
error_log /home/khantunckale/sites/test/error.log;
root /home/khantunckale/sites/test/public_html;
location / {
index index.html index.htm index.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /host/web/emfw/public_html$fastcgi_script_name;
}
}
server_name : sitemizi çağırdığımız adres.
root : sitenin index dosyasının olduğu dizin.
access_log ve error_log parametreleri de yukarıda göründüğü üzere loglarla ilgilidir.
Bu dosyayı kaydettiğiniz zaman, sitemiz sadece uygun durumda olur (available). Sitemizi aktifleştirmek için, sites-enabled klasörüne bir sembolink link yaratmamız gerekiyor. O yüzden şu komutu çalıştırmalıyız.
ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/test
Ardından da service nginx restart diyelim.
]]>Kullanımı sırasında regex işlemlerine izin vermektedir. Yani data paketleri içerisinde arama da yapabiliyoruz. HTTP, SMTP, FTP gibi her türlü ağ trafiğini izlemek ve analiz etmek için kullanılmaktadır. Ayrıca kaynak ve port seçmemize de olanak sağlıyor.
Kurulumu şu şekildedir;
apt-get install ngrep
Kullanımı için bir kaç örnek vermek gerekirse;
ngrep -d any port 80
80. port ile ilgili tüm trafiği ekrana basacaktır. -d parametresi host üzerinde bulunan tüm network interfaceleri üzerindeki trafiği görmek için eklenmiştir, özelleştirmek için -d eth0 diyerek özel bir interface üzerindeki trafiği görebiliriz.
Çıktıları gözümüze biraz karmaşık gelebilir. O yüzden, çıktıları satır satır görmek için, -W Byline parametresini de ekleyebiliriz.
ngrep -d any -W Byline port 80
Detayları için bu sayfayı ziyaret edebilirsiniz : http://ngrep.sourceforge.net/usage.html
]]>Bir shell script olduğu için, bu scripti kullanıcılara ait programların olduğu dizine (usr/local/bin) koyarak, kurulumunu yapmış oluruz. Kullanabilmek için ek olarak gawk paketini de kurmamız gerekmekte.
Aşağıdaki komutları uyguladığımızda kurulum tamamlanır;
apt-get install gawk cd /usr/local/bin && wget -Nc smxi.org/inxi && chmod +x inxi
Kullanımı ise şu şekilde; eğer tüm sistem bileşenleri ile ilgili bilgiyi aklmak istiyorsak inxi -F , sadece CPU bilgisini almak istiyorsak inxi -f , network adaptörü ile ilgili bilgiyi almak istiyorsak inxi -n , kullandığımız makinenin bilgilerini almak istiyorsak inxi -M komutları ile görebiliyoruz.
Parametre listesinin tamamı burada mevcut; https://code.google.com/p/inxi/wiki/inxi
]]>top
Burada liste oldukça kabarık olabilir. Bir programı sonlandırmak için ilgili programın PID bilgisine sahip olmalıyız. Eğer listemiz kabarık ve PID‘i göremediysek aşağıdaki wheeling singles komutu çalıştırdığımızda aradığımız programın PID değerini bize verir.
pidoff program_name (örnek pidoff milwaukee wi web cam filezilla) - (örnek sonuç 1744)
Çalışan bir hizmet veya programı kapatmak içinde aşağıdaki komutu kullanıyoruz.
kill PID (örnek kill 1744)
Umarım faydalı olmuştur.
]]>