Skip to content

Instantly share code, notes, and snippets.

@sayz
Created August 7, 2011 11:51
Show Gist options
  • Save sayz/1130312 to your computer and use it in GitHub Desktop.
Save sayz/1130312 to your computer and use it in GitHub Desktop.
linux sistem yönetimi kampında tuttuğum notlar...

##useradd komutu.

-c "açıklama"

ex: -c "müdür bey"

-s kabukı-adı

ex: -s /bin/bash

-d ev-dizini => home'dan farklı bir dizin istiyorsak

ex: -d /mnt/test

-m => otomatik ev dizini oluşturmak için

-M => ev dizini oluşturmasını engelliyoruz.

-p parola => gerçek sistem üzerinde pek kullanılmaz, çünkü açık olarak belirtmek güvenlik açısından sakıncalı, bırakın kullanıcı kendi oluştursun :-)

ex: -p 123456

-e yyyy-mm-dd => kullanıcının hangi tarihe kadar sistemde var olması gerektiğini belirtmek için.

ex: -e 2011-12-26

-g grup-adı => kullanıcının grubunu(1 tane) belirlemek için

ex: -g video

-G grup1, grup2 => kullanıcıya 1'den fazla grup eklemek için kullanılır

-u id-no

ex: -u 1003

-U => kullanıcı ile aynı isimde grup ekler

-b base-dir => kullanıcının ismiyle bir dizin oluşturulacakken, o dizinin kök dizinini belirlemek için kullanılır. ex: useradd -m -b /mnt name

sonuç:mnt'nin altında "name" isminde bir dizin yaratacak.

##usermod komutu

oluşturulmuş kullanıcıların bilgilerini modifiye etmye yarar. (bkz. man usermod)

#chfn

kullanıcı'nın tam adını değiştirmek için kullanılan komuttur.

notlar:

find / -user kullanıcı1 komutu ile kullanıcın sahip olduğu tüm dosyaları buluyoruz. bir kullanıcıyı sildikten sonra sistemdeki o kullanıcıya ait tüm dosyaları bulup onları da silmek gerekebilir, o zaman bu komutu kullanırız.

###fdisk

bölüm tablolarını idare etmemizi sağlar.

-l parametresi ile bölüm tablolarını listeleriz

!!!DİKKAT: fdisk çok tehlikeli bir komuttur, tüm hard diski uçurabilirsiniz!!!

disk formatlama:

fdisk /dev/sdb (enter)
Command(m for help): p (enter) ==>
Command(m for help): d (enter) ==> (silme komutu)
Command(m for help): n (enter) ==> (yeni bölüm oluşturma komutu)
Command action
	e extended(genişletilebilen partition)
	p primary partition(1-4)(işletim sistemi kurulabilen partition)
p (enter)
Partition number(1-4): 1 ==> partition numarasını veriyoruz
First cylinder(1-250, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-250, default 250): +1G (enter)
Command(m for help): w (enter) ==> (diskin üstüne yazma komutu) 
`a` paramtresi ile diski bootable yapabiliriz.

burada hata verebilir, o yüzden bir diski formatlamak için öncelikle diski sistemden umount etmemiz lazım. burdan sonra hemen diski mount edemeyiz(windows mantığı ile düşünmemek lazım) çünkü diskin üstünde dosya sistemi oluşturmadık. şimdi linux'a uygun bir dosya sistemi ile diski biçimlendireceğiz. şöyle ki:

mkfs.ext2 /dev/sdb1
mkfs.ext3 /dev/sdb2

şimdi bağlayabiliriz:

mkdir /hedef/dizin
mkdir /hedef/dizin2
mount -t ext2 /dev/sdb1 /hedef/dizin
mount -t ext3 /dev/sdb2 /hedef/dizin2

###df

sistem disklerinin ne kadarının kullanıldığı hakkında bilgi verir, -h parametresi ile disk boyutlarını insanların okuyabileceği şekilde gösterir. alternatif olarak:

$cat /proc/partition

-t <dosya_sistemi> parametresi ile belirli bir dosya sistemine göre listeleyebiliriz. -T parametresi ile normalde gözükmeyen dosya sistemi tiplerini gösterebiliriz.

###umount diski sistemden ayırmak için kullanılır

umount /dev/sdc1

###mount diski sisteme bağlamak için kullanılır

mount /dev/sdc1 /mnt/disk

not: eğer flash disk'in sistemi cat /proc/filesystems komutunun çıktısındaki sistemlerden birisi değilse bağlayamayız.

ex: örneğin iso dosyası indirdik ve içini görmek istiyoruz, bunun için windows'taki gibi program falan kurmaya gerek yok şöyle bir komutla yapabiliriz:

#mount -t iso9660 -o loop,user /isolar/ubuntu.iso /hedef/dizin

##tar

tar tek başına bir dosya sıkıştırma yöntemi değil, sadece dosyaları toplama yapar. örneğin tar dosyaları bir çuvala toplar birisi de gelir üstüne basar.

tar -cf arsiv.tar dosya_veya dizin: bu komut dosyayı sıkıştırmadan sadece toplar. tarı'ın neler yaptığını ekrana bastırmak için -v parametresi kullanılır. çıktısı şu: arsiv.tar

-c arşiv oluşturur. -f hangi dosyaya yazılacağını belirtir. -r ile arşive yeni dosya ekleyebiliriz.

-x parametresi ile arşivi açabiliriz. -C parametresi ile arşivin açılacağı yolu verebiliriz.

-t parametresi arşivi açmadan içini gösterir.

##gzip

gzip dosya_adi: gzip ile sıkıştırma için.

-d: arşivi açmak için.

-1: hızlı sıkıştırma

-9: en iyi şekilde sıkıştır.

##bzip

bzip2 dosya_adi

-z: zorla sıkıştırma

-t: sıkıştırma taklidi

-d: arşivi açma

##tar.gz

tar czvf arsiv_adi.tar.bz2 sıkıştırılacak_dizin_dosya: sıkıştırma için

tar xzvf arsiv_adi.tar.gz: çıkarmak için

##tar.bz

tar cjvf arsiv_adi.tar.bz2 sıkıştırılacak_dizin_dosya: sıkıştırma için

tar zxvf arsiv_adi.tar.bz2: çıkarmak için

##top

sistemimizde çalışan prosesleri canlı olarak takip etmemizi sağlar.

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
8759 sayz      20   0  107m 6544 1608 S   17  0.2   0:00.50 bash
3289 sayz      25   5 1295m 372m  30m S   16 12.9   8:41.72 chromium-browse
1325 root      20   0  197m  62m  11m S    5  2.2   7:39.15 Xorg
3423 sayz      20   0  184m  70m  17m S    4  2.4   8:05.58 npviewer.bin
3311 sayz      20   0  970m  44m  21m S    2  1.5   1:08.53 chromium-browse
3058 sayz      20   0 28740 2144 1076 S    1  0.1   0:05.83 tmux

yukarıdaki şekildekine benzer bir görünümü vardır, burada ilk sütun proses ID, ikinci sütun prosesin sahibini, üçüncü sütun da proses önceliğini gösterir.

##pstree

çalışan prosesleri ağaç yapısı şeklinde gösteren uygulamacıktır, ana proses, çocuk proses şeklinde.

##kill

çalışan bir prosesi sonlandırmaya(öldürmeye) yarar.

kill proses_id

##killall

PID ile değil de proses ismi ile prosesleri sonlandırmak için kullanılır.

-I ile büyük küçük harf duyarsız olur.

-u kullanıcı_adı ile belirli bir kullanıcıya ait prosesleri sonlandırır.

##pkill

pkill proses_adi şeklinde

sinyaller:

kill -1 pross_id: conf dosyalarını vs. kaldırmaz.

kill -9 pross_id: çalışan prosesleri öldürürken, conf dosyaları ve kullanılan sanal belleği de boşaltır.

kill -15 pross_id: prosess bu sinyali reddebilir, isterse sonlanabilir, isterse sonlanmaz.

#debian paket sistemi

debian'da 4 sürüm mevcuttur: (aslında 3 ana sürüm vardır experimental sayılmazsa)

  • experimental

    • unstable

      • testing

        • stable

her sürüm'de main, contrib, non-free şeklinde 3 ayrı depo vardır.

main: sistemin ana paketleri bu depoda bulunur.

contrib: katkıcılar tarafından sağlanan paketler bu depoda bulunur.

nonfree:özgür olmayan dağıtımlar bu depoda bulunur.

/etc/apt/sources.list dosyasında depo kaynaklarının listesi vardır.

debian'ın sürümü ile ilgili bilgileri /etc/debian_version dosyasında bulabiliriz. ya da daha genel olarak lsb_release -a komutunu kullanabiliriz.

##apt kullanarak paket yönetimi

debian'ın paket yöneticisi apt dir.

apt-get: paket kurmaya, kaldırmaya , sistemi güncellemeye yarayan araç.

apt-cache search aranacak_kelime: sistemde paket sorgulamak için kullanılan komuttur. sadece paket isimlerinde değil, açıklamalarında da arama yapar.

apt-cache show paket_adı: belirli bir paket hakkında bilgi alabilmeye yarar.

bu komutun içeriği: içerikte adı, sınıfı, ne işe yaradığı, hangi sağlayıcıdan geldiği yazar. ayrıca:

Replaces: paket-adı paketi kurulduğunda eğer burada yazan paket sistemde varsa kaldırılacaktır. Depends: paket bağımlılıkları burada

apt-get remove paket_adı: paket kaldırmaya yarar. (ayrıca -s parametresi verirsek bize olacakları simüle eder)

apt-get autoremove: genel bir sitem temizliği yapar, fazlalık, sistemin ihtiyacı olmayan paketleri sistemden kaldırır.

apt-get purge paket_adı: normalde bir programı kaldırdırdığımızda /etc altındaki conf dosyaları silinmez, bunları da sistemden silmek için purge seçeneği kullanılır.

apt-get update: sistemin güncellemelerini kontrol ediyor ve bir veri tabanına kaydediyor.

apt-get uprage: update'in sunduğu güncel bilgilerden yararlanarak yükseltme yapıyor.

Bir paket kuracağınız zaman APT gerekli dosyaları /etc/apt/sources.list dosyanızda belirtilen host'lardan alır ve yerel bir dizin (/var/cache/apt/archives/) altında saklar. Ardından kurulumu buradaki dosyalar üzerinden gerçekleştirir. Zamanla dosyaların tutulduğu yerel dizinin boyutları artmaya ve gereksiz yer kaplamaya başlar.

apt-get clean: lock dosyaları haricinde /var/cache/apt/archives/ ve /var/cache/apt/archives/partial/ dizinlerindeki tüm dosyları siler.

apt-get autoclean: apt-get autoclean ise sadece artık indirilmesi mümkün olmayan dosyaları siler.

##dpkg kullanarak paket yönetimi

dpkg -i paket_adi.deb şeklinde paket kurulumunu yapabiliriz ama önce kuracağımız paketi ve bağımlılıklarını internetten indirmeliyiz.

not: bağımlılıkları elle kurmalıyız, apt-get install'da olduğu gibi otomatik olarak bağımlılıklar kurulmaz.

dpkg -r paket_adi: paketi kaldırma.

dpkg -P paket_adi: bağımlılıkları da kaldırır.

dpkg -l: sistemde kurulu olan tüm paketleri listeler.

dpkg -s paket_adi: paketin sistemdeki durumunu kontrol eder.

dpkg -I paket_adi.deb: indirdiğimiz deb paketi hakkında bilgi almak için kullanılan komuttur.

dpkg -c paket_adi.deb: indirdiğimiz ama sistemde kurmadığımız deb paketinin içeriğini gösterir.

dpkg -L paket_adi: sistemde kurulu bir paketin içeriğini gösterir.

dpkg -S /binary/dosyanın/yolu: bu binary dosyanın hangi paket tarafından kurulduğunu gösterir.

#Red-Hat paket sistemi

##yum ile paket yönetimi

yum install paket_adi

yum update: güncelledikten sonra hemen yükleme(upgrade) yapmak için.

yum check-update: apt-get update komutu ile aynı, sadece güncelleme yapar.

yum upgrade: yum check-update komutundan sonra paketleri kurmak için kullanılan komuttur.

yum remove paket_adi: paket'i kaldırmak için.

yum clean all: genel bir sitem temizliği yapar, fazlalık, sistemin ihtiyacı olmayan paketleri sistemden kaldırır.

yum install sec*: "sec" ile başlayan paketleri kurar.

yum search paket_adi: paket arama komutu.

yum list: tüm paketleri listelemek için

yum list installed: sadece yüklü olan paketleri listeler

yum list updates: sadece güncelleme gelen paketleri listeler.

yum update paket_adi: sadece güncellenecek paketi güncellemek için kullanılan kmut.

yum -y update: burada -y yes anlamındadır.

yum grouplist: paket listelerini gösterir.

yum groupinstall paket_grubu: belli bir paket grubunu kurma komutu.

yum groupupdate paket_grubu: belli bir paket grubunu update etme komutu.

yum list recent:yum için kullandığımız depoya yeni eklenen paketleri görme.

yum info paket_adi: paketler hakkında bilgi alma.

yum --enablerepos='depo_adi' install paket_adi

yum repolist all: depolar hakkında bilgi edinme komutu.

##rpm ile pket yönetimi

rpm -q paket_adi: paketin tam adini veriyor.

rpm -qf /binary/dosya örneğin /bin/ls'in hangi pake tarafından kurulduğunu bize söyler.

rpm -qi paket_adi: paket hakkında ayrıntılı bilgi almak için kullanılır.

rpm -ql paket_adi: paketin sistemde nerelere ne kuracağını gösterir.

rpm -qc paket_adi:paketin sisteme nerelere hangi conf dosyalarını atacağını gösterir.

rpm -qd paket_adi:paketin sisteme nerelere hangi doküman dosyalarını atacağını gösterir.

rpm -qa: rpm tarafından kurulan paketleri gösterir.

rpm -q --whatrequires paket_adi: paketin bağımlılıklarını listeler.

rpm -V paket_adi: paket hakkında bütünlük kontrolü yapıyor, sorun olup olmadığını gösterir.

rpm -Va: sistem için bütünlük kontrolü yapar. sistemdeki paket tam inmiş mi inmemiş mi falan.

  • S: dosya boyutu değişmiş.

  • L: dosyanın linki değişmiş(kısayol deişmiş)

  • missing: silinmiş dosyalar var.

  • T: dosya tarihi değiştirilmiş.(düzenlenme)

  • M: dosya izinleri değişmiş.

  • U: dosya sahibi değişmiş.

  • G: dosya grubu değişmiş

  • 5: checksum değişmiş.

  • D: aygıt numaraları değişmiş.

. . . . . . . . .

S M 5 D L U G T

rpm -i paket_adi.rpm

  • -- test: taklit kurulum yapar.

  • -v: verbose

  • --forse: zorla kurulum yapar.

  • --nodeps: bağımlılıkları gözardı eder.

  • --replacefiles:

rpm -ivh paket_adi.rpm: kurulum düzeyini gösterir.

rpm ivh paket_adi1.rpm paket_adi2.rpm: şeklinde 1'den fazla paket kurulabilir.

rpm -Uvh paket_adi.rpm: herhangi bir paketi güncelleyeceksek U parametresini kullanıyoruz.

rpm -Uvh -oldpackage eski_paket_adi.rpm: paketin eski sürümüne döner.

rpm -evh paket_adi: kaldırma yapıyor.

rpm -ev --test paket_adi: taklit kaldırma yapıyor.

#zamanlanmış görevler

* * * * * Çalistirilacak Komut
- - - - -
| | | | |
| | | | +----- haftanin günü (0 - 6) (Pazar=0)
| | | +------- ay (1 - 12)
| | +--------- ayin günü (1 - 31)
| +----------- saat (0 - 23)
+------------- dakika (0 - 59)

örneğin;

her ayın 3. günü saat 3'te: 0 3 3 * *

sadece yılbaşı gecesi 00:30 da: 30 0 1 1 *

her 5 dk'da bir: */5 * * * *

zamanlanmış bir görev girmek için crontab -e komutunu giriyoruz. ve çıkan dosyada en sona cron görevimizi ekliyoruz.

örnekler;

  • 12:30, 6:30, 18:30, 20:30 saatlerinde.

30 0,6,18,20 * * * echo "hello dude" >> /home/sayz/cron.txt

  • 4,7->12,14,16saatlerinde

0 4,7-12,14,16 * * * echo "hello dude" >> /home/sayz/cron.txt

  • Pazartesi-Cuma arası 8:00-17:00 saatleri arası

0 8-17 * * 1-5 echo "hello dude" >> /home/sayz/cron.txt

  • mart ayının 21'inde 6 satte bir

* */6 21 3 * echo "hello dude" >> /home/sayz/cron.txt

  • ocak ile şubat arasında haftanın p.tesi, salı, çarşamba günleri saat 1 ile 9 arasında yarımlarda 2 saatte bir çalışacak cron.

30 1-9/2 * 1-2 1-3 echo "hello dude" >> /home/sayz/cron.txt

  • ikiye bölünebilen ayların 3'e bölünebilen günlerinde, eğer bu gün pazartesiye geliyorsa sabah 8'den 12'ye kadar 7dk'da bir cron tanımlayınız.

*/7 8-12 3-31/3 2-12/2 1

#sistem kayıtları

sistemde sistem loglarını tutmak için çeşitli araçlar vardır.

  • syslog -ng

  • rsyslog (emre hocanın tavsiyesi)

  • syslogd

ayar dosyası: /etc/rsyslog.conf

sistem kayıtları /var/log altında tutulur.

auth: kullanıcı tanıma kayıtları.

authpriv: özel kullanıcı tanıma kayıtları.

cron: cron kayıtlarının bulunduğu dizin.

dmesg: kernel mesajlarının bulunduğu kayıt dosyası.

deamon: kullanııc süreçlerinin ve TCP kayıtlarının bulunduğu dosya.

kern: Kernel mesajlarını içerir.

lpr: yazıcı kayıtları

mail: mail kayıtları

news: haber gruplarının kayıtları

syslog: sistem kayıt servislerinin kayıtları

user: kullanıcılar ile ilgili süreçlerin kayıtları

Xorg: X grafik arabirim kayıtları

gdm: oturum giriş ekranı ile ilgili işlemlerin kayıtları

messages çoğu uygulamanın kayıtlarının bulunduğu dosya

öncelik | değeri | açıklama

debug: 1 hata ayıklama mesajları.

info: 2 bilgilendirme mesajları.

notice: 3 önemli durum mesajları.

warning: 4 uyarı mesajları.

err: 5 hata mesajları.

crit: 6 ciddi, kritik mesajları

alert: 7 acil durum

emergency:8 sistem devre dışı

örneğin;

*.=debug: * işareti sistem kayıtlarının hepsini ifade eder. = öncelik işaretidir, debug kısmı ise öncelik değeridir.

bir log dosyasındaki satırları tanıyalım:

mesela Jul 23 16:30:53 ezelterex kernel: [23797.749540] satırında sütünlar şöyledir;

tarih host uygulama adı : uygulamanın mesajı

##AĞ(network) nedir?

: Bilgisayarların çeşitli bağlantı mekanazmalarıyla birbirlerine bağlanmasına denir.

  • LAN(Local Area Network)

  • MAN(Metropolition Area Network)

  • WAN(WorldWide Area Network)

OSI Katmanları(Open System Interconnection):

  • L1 - Fiziksel Katman: Paketlerin sinyale dönüştürüldüğü ya da sinyallerin anlayabileceği paketlere gönüştürüldüğü donanımsal, fiziksel katmandır.

  • L2 - Veri paylaşım katmanı(Datalink): Ağ yapısının ve topolojisinin anlaşıldığı, paketlerde veri bütünlük kontrolünün yapıldığı, hataların tespit edildiği katmandır.

  • L3 - Ağ katmanı: Ağların birbiri ile haberleşebildiği, bağlantıların sağlandığı katmandır. Örneğin ip bilgisi 3 katmanda alınır.

  • L4 - Taşıma Katmanı: Hatadan arındırılmış paketler bir üst katmana taşınır.

  • L5 - Oturum Katmanı: Bilgisayarlar arası iletişim için bağlantıların sağlandığı katmandır.

  • L6 - Sunum Katmanı: Paketler bilgiye dönüşmeye başlar. Karakter setleri gibi şeyler ayarlanır. Şifrelenmiş bilgiler varsa bunlar, bu katmanda çözümlenir.

  • L7 - Uygulama katmanı: Uygulamaların ağ iletişimini sağladığı katmandır. Ayrıca kullanıcıya en yakın katmandır.

5, 6 ve 7. katmanlardaki işlevleri ugulamalar yerine getirdiği için bu katmanlara uygulama katmanları denir.

Ağ topolojileri

  • İstemci-Sunucu Mimarisi:

  • Özdeş Mimari

IP Adresleri

11000000.10101000.00000001.01000001 = d.168.1.65 ==> IPv4 adreslerleri 32 bittir.

188.241.116.112 = 10111100.11110001.01110100.01110000

IP sınıfları

A sınıfı ağlar 1.0.0.0'dan 127.0.0.0'a kadar olan ağları kapsar. ilk kısım ağ kısmıdır geri kalan kısım makine sayısının belirler.

B sınıfı ağlar 128.0.0.0'dan 191.255.0.0'a kadar olan ağları içermektedir. ilk 2 kısım ağ kısmıdır.

C sınıfı ağlar 192.0.0.0 ile 223.255.255.0 arasını kapsar.

Subnet Hesaplama

TODO

örnekler;

194.100.94.0 ile başlayan 255'lik network'ü 2 farklı networke parçalayın.

10.50.0.0 ile başlayan networkü 12 ayrı fakültemiz var bu fakültelere paylaştıralım.

o zaman subnet'imiz 255.255.11100000.00000000 olacak buradan da: 255.255.240.0 ana subnetimiz olacak.

2^^12(0 sayısı kadar) = 4096 adetlik 12 tane IP network ağımız olacak.

##NAT(Network Address Translation)

Bir Network içerisinde olan IP'nin başka bir network'den belli bir IP'yi almasına kısaca NAT diyoruz.

özel IP adresleri:

10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)

Linux üzerinde desteklenen protokoller:

  • TCP/IP

  • IPX - Netware

  • Appletalk

  • Samba


##Linux Üzerinde Network Yönetimi

###netstat

  • bağlantıları listeler

  • routing tablosunu gösterir

  • istatistikleri gösterir

-a: dinlediği tüm bağlantıalrı(aktif ya da aktif olmayan) listeler

-p: dinlenen bağlantıların sistem üzerindeki PID'lerini gösterir.

-t: TCP protokolünü listeler.

-u: UDP protokolünü listeler.

-n: IP adreslerini yazdırır.(çözümleme yapmaz.)

-c: her saniye çıktı güncellenir.

-l: sadece dinlenenleri listeler.

-s: istatistikleri yazdırır.

-r: routing tablosunu gösterir.

-i: interfaceleri listeler.

flags:

U: interface up

D: interface down

G: Routing gateway

H: sadece tek host ulaşabilir

M: modified

interfaces flags

B: broadcast'i ayarlanmış

L: looppack olduğunu gösterir

U: interface UP

R: interface çalışır durumda

M: tüm paketler kabul edilir

P: Point-to-Point bağlantı(VPN)


Mac adresi: hexadecimal 48 bitlik bir adres.

00:19:99:8e:93:1b

ilk 3 kısım üretici firma, diğer 3 kısım aygıt ID.


bir ağ arayüzünü kapatmak için ifconfig eth0 down, tekrar bunu açmak için de ifconfig eth0 up komutunu veririz.

bir arayüze kendimiz ip vermek için: ifconfig eth0 10.1.1.1 netmask 255.255.0.0 şeklinde ip verebiliriz. netmask ile subnet veriyoruz.


DHCP(Dynamic Host Configuration Protocol): sistem yöneticisinin elle tek tek ip adresi girmemek için kullandığı bir sistemdir. otomatik ip vermeye yarar.


network araçları:

ping ip_adresi veya host_adı: bir ip'ye ping atmak için.

traceroute www.kernel.org: bir host'a gidiş yolunu öğrenmek için

mtr --curses www.google.com: gönderilen paketlerdeki veri kaybını gösterir.

nslookup ip_adresi: nameserverları araştırmak için kullanılır.

fingere username kullanıcı hakkında bilgi almak için.

#yedekleme

elle yedekleme için tar'ı kullanıyoruz, biz dosyaları bir araya toplamak için örneğin cp programını da kullanabilirdik ama bu sefer ne olacaktı? dosyaların izinleri, sahipleri falan değişmiş olacaktı, o yüzden yedek alırken tar kullanırız.


rsync ile de dizin eşleme yapabiliriz. rsync /kaynak/dizin /hedef/dizin şeklinde yapabiliriz.

-a ile dosyaları her şeyiyle birlikte kopyalar.( -rlptgoD (no -H,-A,-X))

-v hangi dosyaları kopyaladığını gösterir.

--delete ile her iki dizini tamamen aynı hale getirir(silme anlamında). kaynakta olmayıp hedefte olan dosyaları siler.

--progress: kopyalamanın durumu hakkında bilgi verir, ne kadarı kopylandı falan.(benim için müthiş)

-h: boyutları insanın okuyabileceği şekilde göster.

-z: gzip ile sıkıştırıp öyle kopyala.

genel komut şu şekilde olabilir: rsync -hvaz --progres --delete /kaynak /hedef

rsync programı aynı scp gibi kullanılabilir ama sıkıştırma yedekleme gibi artıları vardır tabii. rsync de ssh ile bağlanır. şu şekilde:

rsync user@ip_adresi:/falan/dizin/ /filan/dizin

veya

rsync /filan/dizin user@ip_adresi:/falan/dizin/


#SSH

ssh default olarak 22. porttan çalışır. bunların tamammına /etc/services dosyasından bakılabilir.


yan yol:

/etc/motd dosyası başarılı bir login'den sonra ve shell başlamadan önce kullanıcıya gösterilen mesajların tutulduğu dosyadır.

man komutunu sadece komutlar/programlar için değil etc altındaki ayar dosyaları için de kullanılabilir.

/etc/hosts dosyasında belirli bir ip adresini belirli bir isme atama yapılır.

/etc/hostname dosyasında hostname tutulur.


kill id_no ile ssh ile sisteminize bağlanmış olan kullanıcıyı öldürebilirsiniz. killall sshd diyerek hepsini öldürebiliriz.

ssh servisini kapatmak için service sshd stop açmak için de service sshd start demek yeterli. ama şöyle bi olay var:

ssh ile bağlanırken, bize her bağlandığımızda parola soruyor ama sadece parola her zaman geçerli olmayabilir. bununla birlikte anahtarlama ile de güvenlik önlemi alınabilir çünkü parola ile güvensiz(parola çalınabilir vs.) olabiliryor.

bu işlemi şu şekilde yapabiliriz:

ssh-keygen: anahtar oluşturan komuttur. bu komutla anahtarı oluşturuyoruz.

ssh-copy-id ip_adresi: bu şekilde istediğimiz bir makine'ye kendi anahtarımızı tanıtıyoruz. bundan sonra o makineye hiç parola girmeden sadece anahtarlama yöntemi ile girebiliyoruz. aynı zaman da parola da sormasını istersek anahtarımızı parola ile koruyabiliriz ssh-keygen komutunu verdiğimiz zaman bize parola oluşturmayı öneriyor istersek oluşturabiliriz orada.

ssh ip_adresi komut şeklinde karşıdaki makinede komut çalıştırabilirsiniz.

ssh -Y şeklinde -Y parametresi verirsek biz karşı sunucunun üzerindeyken, grafik arayüzden program çalıştırmayı sağlar.(harika :-))

sshfs: ağ üzerinden her hangi bir dizini kendi makinemize mount etmeye yarar. ssh ile diskleri bağlayabiliriz.

şu şekilde kullanılabilir: sshfs ip_adresi:/hedef/dizin /kendi/dizinimiz

ayırırken de direk bildiğimiz umount komutu ile ayırabiliriz. ya da

fusermount -u /kendi/dizinimiz şeklinde de ayırabiliriz.

ssh -D port_no ip_adresi şeklinde ssh'ın -D diye bir parametresi var.(müthiş bir şey :-P)

bunu yapınca karşıdaki makinede port_no nolu bir port açmış oluyoruz. ve örneğin firefox'ta network ayarlarından connetction-settings'e girince SOCKS Host ayarını 127.0.0.1, port no'sunu da port_no şeklinde ayarlarsak artık internete çıkarken kendi makinemizden değil de o makinenin port_no nolu portundan çıkış yapıyoruz. (mesai saatleri içinde facebook'a girmek için ideal bir yöntem :-))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment