August 14, 2013

Linux/Unix Sistemlerde Tar komutunun kullanılması

belkide linuxun temel komutları arasında gösterilebileceğimiz tar ssh üzerinden bizlere dosya sıkıştırma işlemlerini yapmamıza olanak sağlıyor pratik kolay ve hızlı olması açısından gui li sistemlerden iyidir ve en sorunsuzudur.

tar kodu linux sistemlerde dosya arşivlemeye yarar komut ile dizindeki dosyaları tek bir arşiv içinde birleştirebilirsiniz.windows da oldupu gibi dosyaları sıkıştırabilirsiniz. tar,gzip,bzip işlemlerinizide tar komutu ile rahatlıkla yapabilirsiniz.sizlere bu makalemizde detaylı olarak tar komutlarının kullanımını göstermek istiyorum.

Kullanım Şekli

# tar  [options]  [name of tar file to be created] [list of files & directories to be included]

 

Komutlar

  1. -A, --catenate, --concatenate : bir arşive tar dosyası eklemenizi sağlar
  2. -c, --create : yeni arşiv oluşturur
  3. -d, --diff, --compare : arşiv ve dosya sistemi arasındaki farklılıkların tespiti
  4. --delete : Arşiv siler
  5. -r, --append : arşivin sonuna belirttiğiniz dosyaları ekler
  6.  -t, --list : arşiv içerisindekileri listeler
  7. --test-label : arşivin test edilmesi işleminde kullanılır
  8. -u, --update : sadece kopyasını değil yenisini ekler
  9. -x, --extract, --get : arşivi dosyaya çıkartır.

komutlar bu şekildedir ama genelde farklı farklı kullanıldıgı görülmektedir. alttaki örnekler ile daha iyi anlayacaksınız.

 

örnek 1 Arşiv oluşturmak

# tar  cvf    /usr/backup.tar       /dosya1 /dosya2

yukarıdaki komut dosya 1 ve dosya 2 deki tüm içeriği backup.tar şeklinde arşivliyecektir.

 

Örnek 2 dosyaları çıkartmak

# tar  xpvf   backup.tar  -C   /tmp/

yukarıdaki komut backup dosyasını ctmp klasörüne çıkartıcaktır.

 

Örnek 3 Dosyaları çıkartmadan içeriğini listelemek

# tar   tvf    /mnt/backup.tar

 

Örnek 4 tarih saat gün gibi parametreler ve gzip ile sıkıştırma tekniği

#  tar  zcpvf    /tmp/backup-$(date +%d-%m-%Y).tar.gz     /dosya1 /dosya2

yada

#  tar  zcpvf    /tmp/backup-$(date +%d-%m-%Y).tgz     /etc /usr

yukarıdaki komut ile tmp dosyası içine tarihli bir şekilde yedek alınabilir.

 

Örnek 5 bzip kullanarak sistemden yedek alma işlemi

#  tar  jcpvf    /tmp/backup-$(date +%d-%m-%Y).tar.bz2     /dosya1 /dosya2

yada

#  tar  jcpvf    /tmp/backup-$(date +%d-%m-%Y).tbz    /dosya1 /dosya2

tmp dosyası içine tarih ve saat li bir yedek alınması yapılabilir.

 

Örnek 6 tar komutu ile sıkıştırılmış dosyaların açılması

#  tar  zxpvf    /tmp/backup-13-08-2013.tgz  -C  /acılmasını istediğiniz yer

yada

#  tar  jxpvf    /tmp/backup-13-08-2013.tbz  -C  /acılmasını istediğiniz yer

Örnek 7 arşivleri özel dosya ve dizinlere çıkartma işlemi

# tar  jxpvf  backup-12-08-2013.tbz    etc/passwd

yada

#  tar jxpvf backup-12-08-2013.tbz    etc/apache2

 

Örnek 8 -r komutu ile mevcut arşiv için yeni dosya veya dizin eklemek

#  tar rvf  /tmp/backup-13-08-2013.tar   smc-0.2.0-38

yedek içerisine belirlemiş olduğunu dosyayı eklemek için kullanılır.

 

Örnek 9 yedek alırken belirli dosyaların hariç tutulması

# tar  -zcpvf   etc-$(date +%d-%m-%Y).tgz  --exclude /etc/sysconfig/network-scripts/  /etc/

Görüldüğü gibi etc klasöründen yedek alıyor ancak /etc/sysconfig/network-scripts yedeklenmiyor.

bir dizinin yedeğini almak zorunda kalıpda içerisindeki belli dosyaların yedeğinizin boyutunu şişirmesini istemiyorsanız işte bu kod tam size göre

# tar  -zcpvf   etc-$(date +%d-%m-%Y).tgz  -X  /root/exclude.txt   /etc/

içerik hakkında bilgi edinilebilir.

 

Örnek 10 tar yedekleri ile -X - T Seçenekleri

-T : adlara göre ayıklama işlemi

-X : dosyadaki listelenen hariç

Bazen, yedeklenecek dosya ve yedekten dışlanacak bazı dosyaları belirtmek isteyebilirsiniz.

oluşturun /root/include.txt

/etc
/home

oluşturun /root/exclude.txt

/etc/sysconfig/network-scripts
/etc/fstab

Şimdide aşağıdaki komutu kullanarak yedek almaya çalışın

# tar -zcpvf backup-$(date +%d-%m-%Y).tgz -T /root/include.txt -X /root/exclude.txt

bu komut txt dosyası içinde belirttiğiniz dosya ve dizinleri include.txt demiştik yedekliyecek ve belirlenen diğer txt deki dosyaları yedeklemeyecek yani exclude.txt dekileri.