[Çözüldü] tar.gz sıkıştırma hakkında

Başlatan furina, 09 Haziran 2015 - 14:34:59

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

furina

Merhaba,

Forumu aradım genel olarak hep tar.gz dosyasından kurulumla ilgili sorular var. Benim yapmak istediğim şu /home dizininin altındaki klasörleri tar.gz ile herbiri ayrı bir tar.gz dosyası olacak şekilde sıkıştırmak istiyorum. Bunu nasıl yapabilirim?

Yardımcı olabilirseniz sevinirim.

ekremsenturk

#1
Arşiv yöneticisi ile yapabilirsin.

turkerataturk

ubuntu storedan 7zip yükle dosya sağ tık-sıkıştır
''Mustafa Kemal ATATÜRK''

heartsmagic

Sorunun soruluş şekline göre uçbirimden yapılış şeklini verelim:
for i in *;do tar czvf $i.tar.gz $i;done

1. /home dizin dediğin umarım kullanıcıya ait ev dizini değildir. /home dizini sistem üzerindeki tüm kullanıcıların ev dizinlerinin bulunduğu dizindir.
/home
        -> ali
        -> veli
        -> ayşe

gibi. Haliyle burada başka dosya veya dizin olmaz, olmamalı. Kullanıcıya ait ev dizini /home/ali dizinidir. Eğer sorun buna yönelikse değiştirmen gerekmekte.

2. Eğer ilk maddedeki gibi değile durum yani değiştirmen gerekiyorsa ve sadece dizinleri istiyorsan bunu belirt. Farklı öneriler gelecektir öyle olursa.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

furina

örnek olsun diye öyle yazdım aslında durum /home/backup klasörünün altındaki klasörlerle ilgili. Başka makinelerden toplanan yedekleri klasör klasör sıkıştırıp başka bir makineye kopyalatmam lazım.

Reverser


XFCE ROCKS !
Powered by Thunar & XFWM4



heartsmagic

Alıntı yapılan: furinaörnek olsun diye öyle yazdım aslında durum /home/backup klasörünün altındaki klasörlerle ilgili. Başka makinelerden toplanan yedekleri klasör klasör sıkıştırıp başka bir makineye kopyalatmam lazım.
Sıkıştırma kısmı hazır o zaman :) Parça parça aktarma bize sorunu, tamamını aktar. Örneğin /home/backup dizini altında sadece sıkıştırılacak dizinler mi olacak? Eğer böyleyse sıkıştırma kısmı hazır, basit bir betik hazırlayarak başka makineye gönderme kısmına çalışabilirsin. Cidden hiç kabuk bilgim yok ve yardım istiyorum diyorsan yine elimizden geleni yaparız, fakat ayrıntı lazım bize. Örneğin backup dizininde farklı dosya ve dizinler de olacaksa işler biraz daha değişir. Eğer yoksa sıkıştırma komutunun altına iki satır daha eklenerek olay çözülebilir. scp + rm. Hatta rsync kullanılabilecekse tek komut topluluğu bile olabilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

furina

Sıkıştırma kısmı dediğiniz gibi tamam. Elinize sağlık çok teşekkür ediyorum. Kopyalatma kısmını ben halledebilirim ancak bahsedilen diskte yer problemi olmaya başladığı için sıkıştırdığı dosya tamamlandıktan sonra sıkıştırma yaptığı klasörü sildirmek istiyorum. Bunun içinde yardımcı olabilirseniz sevinirim.

heartsmagic

Biraz tembellik mi yapıyoruz? :) Hani bu tür bir soruyu sorduğuna göre bir yerde bu türde iş yapıyor veya yapacak olman lazım. Kalıcı bir iş olacaksa Linux üzerinde çalışman, acilen kabuk programlamaya bakmanı öneriyorum. Bu sorduğun şeyler o kadar basit ki esasında, öğrendikten sonra anlayacaksın. Tamamen öğrenmene bile gerek yok, biraz biraz temeli anlasan işin düştükçe Google sana yardım eder :)

for i in *;do tar czvf $i.tar.gz $i && rm -rf $i;done

Satır gittikçe büyüyor, hiç verimli değil yani. Senin bir betik yazman lazım güzel güzel bence. Gerçi cidden tek dizin varsa, sadece işlem yapılacak dizinler iniyorsa buraya sadece tek bir satırda halledebilirsin işi.

for i in *;do tar czvf $i.tar.gz $i && scp $i.tar.gz kullanıcı@sunucu:/hedef/dizin && rm -rf $i;done

Gördüğün gibi pek şık olmuyor, betik güzel olur buna. Ayrıca yukarıdaki komut .tar.gz dosyalarını silmiyor, onları da sunucuya gönderdikten sonra silmek istiyorsan küçük değişiklikler olabilir.

Hop, döndük yine başa. Lütfen tam olarak ne yapmak istediğini anlat :)

1. Tamam bir dizin var ve buradaki dizinler sıkıştırılacak.
2. Sonra bunların bir başka yere gönderileceğini öğrendik.
3. Yer kalmadı :)
4. Karşı taraf nasıl bir yer? Benim son örneğim karşı tarafın bir Linux olduğunu ve senin scp kullanacağını ön görerek yazıldı. Windows mu? Linux ama sen scp değil de örneğin dinozor olan FTP mi kullanacaksın? Kullanma :) Yok, scp değil de rsync mi olacak? Bak o güzel olabilir, tek elden hem gönderir hem de kaynak dosyayı sildirirsin. scp ile böyle bir imkân yok.

Ayrıntı, ayrıntı :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

furina

Tekrar teşekkür ediyorum. Aslında özel bir firmada çalışıyorum ve Ubuntu server kullanarak dns, web, ftp, backup, router, log server, mail hizmetlerini veriyorum zaten. Daha önce hiç programlama tarafıyla uğraşmadığım için ihtiyacım olmamıştı ve etrafımda da hep programcılar vardı. Böyle küçük ihtiyaçlar oldukça onlardan istiyordum.

Ayrıntı kısmı ise windows makinelerin c$ ve d$ ına bağlanarak çektiğimiz dataları linux makinede depoluyoruz. buradaki datayı sıkıştırıp klasörleri sildikten sonra sıkışmış olan dosyaları bir windows makineye kopyalayacağım orada da Netapp' a gitmiş olacak. Bana klasörleri ayrı ayrı sıkıştırma ve onları sildirme kısmı lazımdı sağolasın o kısmı sen halletin :) geri kalan windows makineye kopyalatma kısmı için windows tarafına smb ile bağlantı yapıp cron ile bir komut vermem lazım onu da ben halledebiliyorum. Yine eline sağlık.

Ayrıca bir not olarak belirtmek istiyorum. 6.06 versiyonundan beri  ubuntu linux kullanıyorum ve çok memnunum. Burada Ubuntu öncelikli olmak üzere diğer dağıtımlara verilen destek çok önemli. Çünkü gördüğüm kadarıyla diğer dağıtımlara ait destek kısmı Türkiye'de fazla gelişmemiş. Bu aralar Fedora 22 deniyorum ama destek için yine buradaki kaynakları okuyorum :D. Umarım buradaki bu ortam hiç bozulmaz. Elinize sağlık.

heartsmagic

Rica ederiz. Ayrıca eğer yanlış anlaşıldıysam kusura bakma. Çalışmaların, çalıştığın yer konusunda ısrarcı değildim esasında, tam olarak ne yapmak istediğin konusunda ısrarcıydım. Tekrar bakınca sorguya çeker gibi olmuş :) Meramım şuydu yani, "Bir makineden çalıştığım Linux makineye dizinler gelecek, ben sıkıştıracağım, dizinler silinecek arşiv dosyaları da karşıdaki X sistemli makineye Y yoluyla gönderilecek."
Son söylediklerinden sonra bu net olarak ortaya çıktı:

Linux: (cron) arşivleme-silme-gönderme  -> Windows (samba)

Biraz daha ayrıntısı da arşivlenecek dizinde başka dizinlerin, dosyaların falan olup olmamasıydı. Zira bu bilgiler betik veya komutlar için gereken şeylerdi.
İşlerinde kolaylıklar sana, kabuk programlama çok zor değil azıcık bakarsan aşina olursun. Olmadı forum her zaman açık, benden çok daha tecrübeli kabuk programlayıcı arkadaşlar var. İlla ki bir çözüm bulunur.
Güzel sözlerin için de teşekkürler.

Son olarak da, eğer sorun senin için çözüldüyse şöyle bir uygulamamız var: cozuldukonusu
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

furina

Olay benim için tamamlandı. Artık gerisi benim işim. Yine aklıma takılan şeyler olursa sorarım. Kolay gelsin. ;)