Komut satırından Linux makine zaman dilimini değiştirmek
Bu dokumanda redhat-config-date kullanmadan nasıl komut satırından sistem zaman diliminin değiştirilmesini öğrenceksiniz.
Zaman diliminizi değiştirmek için ilk olarak /etc/sysconfig/clock dosyasına direk erişebiliyor olmanız gerekmektedir.
#ZONE="America/New_York"
ZONE="GMT"
UTC=false
ARC=false
Not: Eger sisteminizin BIOS’u “UTC set to true” seklinde ise olmasi gerekiyorsa UTC’ yi “true” olacak sekilde ayarlayiniz. Eger bu deger “false” seklinde ise sizde false” olacak sekilde ayarlamaniz gerekmektedir. UTC deki ayarlar daima BIOS ayarlarinizi yansitacak sekilde olmak durumundadir.
Belirli bir bolgenin saat dilimi ayarlamak istediginizde bu ZONE (bolge)yi /usr/share/zoneinfo de yer alan bilgi ile iliskilendirerek yapmalisiniz. Cunku secmek istediginiz zaman dilimi, sehir, dogru sekilde bu dosyada yer almaktadir.
Ornegin Shanghai saat dilimi Asia dosya klasorunde yer alamaktadir ve siz ZONE’yi yazarken asagidaki sekilde yazmaniz gerekmektedir:
ZONE="Asia/Shanghai"
Veya belki siz zaman diliminizi Doğu Brezilya olarak ayarlamak isteyebilirsiniz:
ZONE="Brazil/East"
Son olarak dosyayi kaydedelim /etc/sysconfig/clock. Sistemin birsonraki yeniden baslatilmasinda sistem otomatik olarak belirlenen saat diliminde acilacaktir.
Makine uzerinde zamandiliminin degistirilmesi /etc/localtime dosyasina sembolink verilmesi ile olmaktadir. Su sekilde yapilmaktadir:
Eger siz saat zaman diliminizi “Asia/Baku” olarak ayarlamak istiyorsaniz asagidaki sekilde /etc/localtime dostasina baglanti olusturmalisiniz:
# ln -sf /usr/share/zoneinfo/Asia/Baku /etc/localtime
Simdi “date” komutunu yazarak yeni zaman dilimimizi ve zamanimizi gorebiliriz:
# date
Thu Aug 10 10:06:23 BRT 2009
MAC OSX’te GNU Privacy Guard (GnuPG)
GnuPG Temel Komutlari
Linuxta uyguladigim e-mail sign ve encryption ozelligini apple mail de de eklemenin zamani geldi. Cok basit olan bu islemi 5 dk icerinde bitirecegiz.
Asagidaki web adreslerine giderek bizim icin gerekli olan MACGPG ve GPGMail yazilmlarini indiriyoruz.
http://sourceforge.net/projects/macgpg/files/
http://www.gpgmail.org/download/index.html
Sirasiyla MACGPG ve GPGMail paketlerini kurduktan sonra kendi anahtarimizi olusturabiliriz.
Not: Eger aciksa Apple mailinizi kapatiniz.
Kendi anahtarimizi olusturmanin zamani, Asagidaki komutu kullanarak ve yonergeyi izleyerek kendi anahtarimizi olusturalim.
gpg --gen-key
Hepsi bu kadar. Simdi mailimizi acip kullanmaya baslayabiliriz.
Asagida yazacagim cok kullanisli komutlarin yaninda, bu komutlardan cok daha fazlasini gpg --help diyerek bulabilirsiniz.
Iste en cok kullacagimiz komutlar ve kullanimlari:
Yeni bir anahtar cifti olusturmak:
gpg --gen-key
Anahtari uzaktaki bir sunucuya yuklemek:
Buradaki ornekte anahtarimi pgp.mit.edu sunucusuna yukluyoruz. $KEYID yazan yere kendi anahtar ID’mizi yazacagiz.
gpg --send-keys --keyserver pgp.mit.edu $KEYID
Anahtari iptal etmek:
Iptal sertifikasini olusturmak:
gpg --gen-revoke $KEYID
Sertifikayi $FILE adinda kaydedebiliriz.
Iptal sertifikasini iceri aktarmak:
gpg --import $FILE
Anahtarin duzgun olarak iptal edildigini kontrol etmek:
gpg --list-sigs $KEYID
Ilk satirda “[revoked]” veya ikinci satirda “rev” diyebiliriz,
Veya:
gpg --edit-key $KEYID
“trust: -/r” diyebiliriz.
Iptal anahtarini yuklemek:
gpg --send-keys --keyserver pgp.mit.edu $KEYID
Tum anahtarlari listelemek:
gpg --list-keys
Belirli bir anahtari listelemek:
gpg --list-keys $NAME
veya:
gpg --list-keys $KEYID
Public anahtari disari aktarmak (Export) (text file olarak):
gpg --export --armor $KEYID > pubkey.txt
Private anahtari disari aktarmak (text file olarak):
gpg --export-secret-keys --armor $KEYID > pubkey.txt
Public veya Private anahtari iceri aktarmak:
gpg --import $FILE
gpg --recv-keys --keyserver pgp.mit.edu $KEYID
Anahtari interaktif olarak guncelleme:
gpg --edit-key $KEYID
Simetrik sifreleme (cok kuvvetli):
gpg --cipher-algo RIJNDAEL256 -o $CRYPT-FILE -c $PLAIN-FILE
Simetrik sifrelemeyi cozmek:
gpg --cipher-algo RIJNDAEL256 -o $PLAIN-FILE --decrypt $CRYPT-FILE
iotop – Kullanımı kolay I/O monitorü
CPU kullanımı için top komutu nasıl kullanım değerlerini gösteriyorsa, iotop da benzer şekilde I/O kullanımı gösteren bir komuttur. Linux çekirdeğinden (çekirdek 2.6.20 ve daha sonrasında mevcuttur) I/O kullanım bilgisini çıktısını izler ve sistem üzerinde işleyen anlık I/O kullanımını bir tabloda gösterir.
Debian sisteme iotop yüklemek:
# apt-get install iotop
Sadece paket ismini yazarak yükleme yapmamız yeterlidir.
iotop kullanımı:
Teminal ekranınıza iotop yazmanız çalıştırmak için yeterlidir. Sonrasında düzenli olarak anlık güncellenen tablodan işlemci ve I/O miktarını kullanımını görebilirsiniz; Okuma ve yazma hızını byte per second değeri olarak, ve I/O için beklenen, takaslanında harcanan zamanı ve yüzde olarak görebilirsiniz.
# iotop
iotop CONFIG_TASK_DELAY_ACCT ve CONFIG_TASK_IO_ACCOUNTING seçeneklerinin çekirdekte aktive edilmesine ihtiyaç duymaktadır.
Debian 5.0 (Lenny ‘e) gnash nasıl yüklenir?
Gnash bir GNU Flash film oynatıcısıdır. Flash Macromedia (şirket daha sonra Adobe şirketi tarafından satın alınmıştır) tarafından bulunmuş animasyon dosya biçimidir.
Flash genişletilerek audio ve video içeriği eklenebilir hale getirilmiştir ve programlar ActionScript’te (bir ECMAScript uygun dilinde) yazılmıştır. Gnash temeli GameSWF’ye dayanmaktadır ve birçok SWF v7 özelliğini destklemektedir. Ayrıca bazı SWF V8 ve V9özellikleride desteklenmektedir.
Gnash Özellikleri;
Tekbaşına Çalışma- Gnash tek başına flash videolarını oynatabilmektedir.
Browser plugin - Gnash aynı zamanda Mozilla türevleri web browserlarda, örneğin Firefox, plugin olarak çalışabilmektedir. Ek olarak Gnash aynı zamanda Konqueror için de destek vermektedir.
SWF v7+ uygunluğu - Gnash flash videolarını oynatabilmektedir.
Video Akışı - Gnash popüler video paylaşım siteleri Lulu.tv veya YouTube.com gibi sitelerin video akışını destekler.
XML Mesaj Sunucusu -Gnash aynı zamanda Flash Format özelliklerinde belirtilmiş olan XML tabanlı mesaj sistemini destekler.
Yüksek Kalite Çıktısı – Gnash masa üstünde grafiklerin işlenmesi için OpenGL kullanmaktadır ve AntiGrain (AGG) entegre çerçeve arabelleği sadece araçlar için yer almaktadır.
Özgür Yazılım - Gnash 100% özgür yazılımdır. Daha fazla bilgi için GPL’e bakabilirsiniz, Free Software Foundation web sayfasında GPL bilgisi yer almaktadır.
Gelişmiş Güvenlik - Gnash tüm ağ bağlantılarına daha fazla önem verir, ve kullanıcıya kontrol erişimleri için izin verir.
Genişletilebilir - Gnash kendi yazmış olduğunuz ActionScriptleri destekler. Siz herhangi bir development kütüphanesi için kitap (wrapper) yazabilir ve bunu oynatıcının içerisine koyabilirsiniz.
Lenny ‘e Gnash Yüklemek
İlk olarak /etc/apt/sources.list dosyasını güncellememiz gerekiyor.
# vi /etc/apt/sources.list
aşağıdaki depoyu sources.list dosyasına ekleyelim
deb http://debian.jones.dk/ lenny gnash
Kaydedelim ve çıkalım.
Sistemimizi güncelleyelim ve
# apt-get update
gnash ve mozilla plugin’lerini yükleyelim;
# apt-get install gnash gnash-common gnash-cygnal gnash-tools mozilla-plugin-gnash
# apt-get clean
Blogofractal
Kaynak: http://xkcd.com/124/
Bash geçmiş dosyasına tarih ve zaman bilgisi eklemek
Bu çok yararlı ipucu; eğer birden fazla insanın bakımını yaptığı veya kullandığı debian masaüstü, sunucu sistemlerinde veya servis sağlayıcı iseniz ve birden fazla makineyi yönetiyor ve bir değişiklik yaptığınızda her zaman yaptığınızı hatırlayamıyor iseniz sizin işinize çok yarayacak bir özelliktir.
Eğer bu özellikleri herkes için kullanılabilir yapmak istiyorsanız /etc/bash.bashrc dosyasını kullanmalısınız.
#vi $HOME/.bashrc
İlk olarak $HOME/.bashrc dosyanızı editlemeniz gerekmektedir.
Aşağıdaki satırı ekleyiniz:
export HISTTIMEFORMAT=”%h/%d - %H:%M:%S “
Kaydedip dosyadan çıkalım.
Bir soraki history komutu çıktısında;
574 tail -f /var/log/maillog
575 mailq | tail -15
576 tail -f /var/log/maillog
577 less /var/log/maillog
yerine aşağıdaki gibi bir çıktı alacaksınız:
1002 May/09 - 11:46:16 grep log /var/log/maillog
1003 Apr/09 - 14:17:40 passwd test
1004 Apr/09 - 14:50:28 history 15
Bazı history dosyası kullanım ipuçları:
History içerisinde en etkili arama yolu “Ctrl R” tulşarına basarak arama seçeneğinde istediğiniz komutu yazmanızdır. En güncel olandan eskiye doğru olan sıralama için yazdığınız kelimeden sonra “Ctrl R” tuşlarına tekrar basarak o kelime ile ilgili olan diğer geçmiş komutları görebilirsiniz.
Eğer komut kullanımını iki kez kaydetmek istemiyorsanız aşağıdaki parametreyi kullabilirsiniz. ($HOME/.bashrc)
HISTCONTROL=ignoreboth
Eğer history dosyasının boyutunu büyütmek isterseniz bashrc dosyasının içerisinde aşağıdaki parametreyi kullanmanız veya olan değeri değiştirmeniz yeterlidir. ($HOME/.bashrc)
HISTSIZE=500
SSH veya SCP nin birden fazla makinede çalıştırılması
Eğer sizde benim gibi birden fazla Debian GNU/Linux çalıştırıyorsanız ve zaman zaman tüm bu makineler için bir veya birkaç komutu çalıştırmanız gerekiyordur. Tüm makineler üzerinde aynı komutu çalıştırmanın çeşitli yolları vardır, tüm makinelere bağlanıp elle çalıştırmak gibi, veya daha karmaşık çözümleri kullanmak gibi; CFEngine veya Puppet. Bunların arasında yazdığınız tek komutu tüm makinlerde çalıştırmak için pssh kullanabilirsiniz.
pssh paketi size bu çözümü sunun bir araçtır, SSH bağlantılarını birden fazla makinede paralel olarak kullanmanıza izin veririr.
Debian paket deposunu araştırdığınızda benzer birçok çözümü görebilirsiniz:
me@home:~$ apt-cache search cluster ssh clusterssh - administer multiple ssh or rsh shells simultaneously dish - the diligence/distributed shell for parallel sysadmin dsh - dancer's shell, or distributed shell kanif - cluster management and administration swiss army knife libtaktuk2 - C bindings for taktuk libtaktuk2-dev - C bindings for taktuk (development files) pssh - Parallel versions of SSH-based tools taktuk - efficient, large scale, parallel remote execution of commands
Öncelikle pssh paketini yükleyelim. Bu paket ile birlikte birkaç yeni komut gelir.
# apt-get install pssh
parallel-slurp
Bu komut birden fazla uzak makineden dosyaların yerel sisteminize kopyalamınızı sağlar. Kısaca bunun kullanımını aşağıda göstereceğim.
parallel-ssh
Bu komut yerel makinenizde yazmış olduğunuz komutun paralel olarak uzak sistemlerde çalışmasını sağlar. Bunu komutunda kullanımını aşağıda kısaca göstereceğim.
parallel-nuke
Bu komut birden fazla uzak sistemde işlemlern öldürülmesini sağlar.
parallel-scp
Bu komut parallel-slurp ‘un tersidir ve birden fazla uzak sisteme dosya, veya dosyalar, kopyalamayı sağlar.
Genel Kullanım
pssh paketi ile birlikte yüklenen herbir yeni komut bir text dosyasnda bulunan listedeki makine isimlerini okur. Bu otomatik kullanım biraz komut-satırı çözümleme işlemini kolaylaştırmak için yapılmıştır.
Birden fazla makine üzerinde konut çalıştırılması
En basit kullanım; herbir makine üzerinde basitçe çalıştırmak ve rapor çıktısı almamaktır. Örneğin hosts.txt ,dosyada verilen numara ve makine ismi vardır, dosyasını çalıştırmak:
me@home:~$ parallel-ssh -h hosts.txt uptime
[1] 18:29:35 [SUCCESS] gold.my.flat 22 [2] 18:29:35 [SUCCESS] silver.my.flat 22
Bu komut “uptime” komut çıktısını bizim istediğimiz gibi bize göstermez. İstediğimiz gibi bir çıktı almak için “-i” (inline) flag (bayrak) eklememiz gerekmektedir:
me@home:~$ parallel-ssh -i -h hosts.txt uptime
[1] 18:30:29 [SUCCESS] gold.my.flat 22 18:30:29 up 36 days, 5:21, 5 users, load average: 0.39, 0.24, 0.23 [2] 18:30:29 [SUCCESS] silver.my.flat 22 18:30:29 up 36 days, 4:45, 1 user, load average: 0.04, 0.02, 0.00
En basit komutlar için bu iyi bir çözümdür fakat bazı zaman mümkün olan tüm çıktıları toplamak istediğiniz zaman bu yeterli olmaz. Burada çıktı (output) parametresini de kullanmanız gerkmektedir. Basitçe çıktı (output) ” -o path” dir. Herbir sistem için çıktılar aşağıdaki şekilde dosyaya yazılır.
me@home:~$ parallel-ssh -o uptime.out -h hosts.txt uptime
[1] 18:32:30 [SUCCESS] gold.my.flat 22 [2] 18:32:30 [SUCCESS] silver.my.flat 22 me@home:~$ ls uptime.output/ gold.my.flat silver.my.flat me@home:~$ cat uptime.out/silver.my.flat 18:32:30 up 36 days, 4:47, 1 user, load average: 0.00, 0.01, 0.00
Burada sizin kullanbileceğiniz birçok seçenek vardır. örneğin bağlanılan kullanıcı adları ve farklı port numaraları kullanımı gibi. Seçenekleri görmek için parallel-ssh komutunu hiçbir parametre olmadan kullanmanız yeterlidir.
Birden fazla makineden dosya kopyalanması
Kopyalanan dosyaların çalışması gösterdiğimiz komutların çalışması gibidir. Sadece farkı yerel dizini özellikle belirtmenizdir, böylelikle uzak sistemden kopyalanan dosya tekrar üzerine yazılmaz.
Böylece, /etc/motd dosyasını herbir hosts.txt dosyamızdan kendi sistemimize kopyalayarak çalıştırırız.
me@home:~$ parallel-slurp -h hosts.txt -L local.dir /etc/motd motd [1] 18:39:39 [SUCCESS] gold.my.flat 22 [2] 18:39:39 [SUCCESS] silver.my.flat 22
Bu bize /etc/motd dosyasını local.dir dizini içerisinde motd adı ile adlandırarak kendi sistemimize kopyalar.
me@home:~$ tree local.dir/ local.dir/ |-- gold.my.flat | `-- motd `-- silver.my.flat `-- motd 2 directories, 2 files
Yukarıda gördüğünüz gibi kopyaladığımız yerdeki herbir makine adı için bir seviye alt kategori oluşturulmuştur.
Bu aracı verimli bir şekilde kullanmak için birçok seçenek vardır, biraz manuel dokumanına bakarak işinize yarayan birçok özelliği bulabilirsiniz, örneğin -r (recursive) seçeneği hepimizin scp kullanırken kullandığı, aşina olduğumuz bir parametredir.
UYARI: parallel-slurp sadece birden fazla makineden kendi makinenize kopyalama içindir. Birden fazla makineye kopya yapmak için parallel-scp aracını kullanınız.
Sonuç olarak bu araç hali hazırda SSH key tabanlı yetkilendirmye sahip birden fazla sistem yönetiminde kullanılabilir.
Debianda kendi isimlendirmemizi nasıl yaparız? (aliases)
Aliases yada türkçe ismiyle yeniden isimlendirme bazı komular için kısa yollardır. Örneğin, eğer mevcut bulunduğunuz dizin /usr/bin ve /var/cache/apt/archive dizinine hızlaca geçmek isterseniz “cd /var/cache/apt/archive” yazmanız gerekmektedir. Fakat bu uzun ve zaman kaybına sebep olan bir yoldur. Bu durumda aliases yardımıza gelir. Siz sadece “archive” veya “pak” yazarak istediğimiz dizine gideriz.
İlk olarak ~/.bashrc dosyasını düzenleyelim
#vi ~/.bashrc
ve aşağıdaki 3 satırı içerdiğinden emin olalım. (Eğer yoksa bunları ekleyelim)
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Kendi ~/.bashrc dosyamızı düzenledikten sonra kendi aliases’ larımızı yazabiliriz.
#vi ~/.bash_aliases
Örnekler:
alias dld=’cd ~/downloads’
alias x11=’nano /etc/X11/XF86Config-4′
alias pak=’cd /var/cache/apt/archives’
Dosyayı kaydedelim ve çıkalım.
Yukarıdaki örnekte, “dld”, “x11″ ve “pak” komutları çalıştırılabilme haklarına sahip olmalıdırlar.
Güvenlik Duvarınızda IPv6 açık mı?
Eğer birçok insan gibi, IPv6 deneylerine başladıysanız; ilk olarak cihazlarınızda IPv6 desteğini açarak ve ayarlarını yaparak kullanmaya başlarsınız ve cihazlarınızın ayarlarını tamamladıktan sonra güvenlik duvarınız aklınıza gelir. Güvenlik duvarınızı güncelleyerek burada da IPv6 testleri yapacaksınızdır. Şanssız birisiyseniz bu konudaki süprizlere hazırlıklı olsun.
Debian GNU/Linux standart kullanıcıları tarafında kullanılan güvenlik duvarı aracı iptables ‘dir. Bu araç güvenlik duvarınıza kurallar eklemenize, listelemenize ve güncellemenize izin verir ve birçok online rehberde ve www.debian-administration.org sitesinde belgelendirilmiştir. (Buradan yeterli bilgiye ulaşabilirsiniz.)
Tek bir güvenilir IP adresi dışında (1.2.3.4) dışında sunucunuza doğru gelen 22. port bağlantılarına izin verilmemelidir.
# allow me to connect from my static IP
iptables -A INPUT -p tcp --dport 22 --src 1.2.3.4 -j ACCEPT
# drop the rest of the world
iptables -A INPUT -p tcp --dport 22 -j DROP
Makinenize gelen 22.port bağlantılarını durdurmada yeterli olacağını düşünüyorsunuz, fakat IPv6 ya erişilebilir olduğunda aslında erişimin herkese açık olduğunun farkına varacaksınız. İşte o zaman şans yanınızda olsun.
telnet -6 www.example.org 22
Trying 2002:5f10:fff::1...
Connected to www.example.org
Escape character is '^]'.
SSH-2.0-OpenSSH_4.3p2 Debian-9etch3
Burada biz 22. port bağlantısına izin verdiğimizi görüyoruz, halbuki bizim istediğimiz bu değildi. Neden? Çünkü iptables sadece IPv4 ile ilgilenmektedir.
Ayarladığımız kuralların IPv6 ‘da da kullanabilmek için ip6tables kullanmamız gerekmektedir:
ip6tables -A INPUT -p tcp --dport 22 -j DROP
Şimdi güvende olabilirsiniz, ve port 22 ye gelen IPv6 bağlantı istekleri reddedilecektir. ip6tables aynı iptables gibi çalışmaktadır ve yeni birşey öğrenmenize gerek yoktur.
Eğer sizin hali hazırda bulunan bir basit güvenlik duvarı scriptiniz var ise bunu mevcut sisteme uyarlamak için çok fazla çalışmanıza ve güncelleme yapmanıza gerek yoktur, küçük birkaç dğişiklik ve güncelleme ile scriptiniz IPv6 ya hazır hale gelecektir. Eğer kullandığınız bir güvenlik duvarı paketi var ise, örneğin shorewall gibi, bunun için bir uyarlama yapmanıza gerek yoktur, fakat kesinlikle test etmeli ve çalıştığından emin olmalısınız.
renameutils ile kolay dosya adlandırmak
Dosyaların hepsini teker teker elle adlandırmak kadar işkence veren veya amalelik yaptıran başka bir durum yoktur. Ve birçoğumuzda şarkı veya resim adlarmamızda bunu yapmak zorunda kalmışızdır. renameutils bizi tam olarak amalelikten kurtarmasada tüm dosyaları tek bir ekranda aynı anda değiştirme olanağı sağlıyor, Enter qmv, diyerek renameutils’i bir parçası olarak çalıştıracağız.
İlkolarak Rename Utils ‘i aşağıdakı komut ile debian makinamıza yükleyelim.
#aptitude install renameutils
Yükleme işlemi tamamlanmıştır.
qmv kullanarak;
Aşağıdaki biçimde mp3 dosyalrımızın adlandırıldığını farzedelim:
$ ls
track10.mp3 track12.mp3 track2.mp3 track4.mp3 track6.mp3 track8.mp3
track11.mp3 track1.mp3 track3.mp3 track5.mp3 track7.mp3 track9.mp3
qmv bize bu dosyaları text editöründe editlememizi sağlıyor, öntanımlı editör olarak $EDITOR tanımlıdır fakat eğer biz istersek bunu değiştirebiliriz.
$ qmv --editor=emacs *
Genel biçimde 2 kolon vardır ve original dosya ismi sol tarafta ve hedef dosya ismi sağ tarafta,
$ ls
01-Kill_The_lights.mp3 05-Redstars.mp3 09-To_Die_For.mp3
02-Goodnight.mp3 06-Looking_Glass.mp3 10-Walking_With_Strangers.mp3
03-Falling_Down.mp3 07-Science.mp3 11-Weekend.mp3
04-Unfamilliar.mp3 08-Remember_Me.mp3 12-Movie.mp3
Tabiki bir çok kısayolu bul/değiştir gibi regular expressions kullanbilirsiniz, fakat dosyalara öntanımlı biçimde bir isimlendirme yaparken qmv kendi kozunu oynar
qmv -f destination-only *
Şimdi M-x replace-string kullanarak (veya siziz kullandığınız başka bir editörü kullanarak) ‘-’ ile ‘-The_Birthday_Massacre-Walking_With_Strangers-’ yer değiştirerek ve album adı ve band adını eklemiş olalım. Burada kullandığımız bazı editörler bunun çok daha fazlasını tabiki yapabilirler.




