SSH Oturumu Üzerinden Ağ Üzerinden tar Komutu Nasıl Kullanılır

Linux veya Unix benzeri sistemde çalışan güvenli ssh oturumu üzerinden tar komutunu nasıl kullanırım? SSH tabanlı ağ bağlantısı üzerinden tar arşivini nasıl çıkarırım?
GNU versiyonu tar arşivleme yardımcı programı (ve diğer eski tar sürümleri) ssh oturumu üzerinden ağ üzerinden kullanılabilir. Güvensiz bağlantı nedeniyle telnet/nc komutunu kullanmayın. Arşiv oluşturmak için Unix/Linux pipe’larını kullanabilirsiniz. Linux, BSD/macOS veya Unix benzeri sistemde arşiv oluşturmak için tar komutunu ssh üzerinden güvenli bir şekilde nasıl kullanacağımıza dair bazı örneklere bakalım.
ssh üzerinden tar komutu kullanmak için sözdizimi
Box’a ssh ile bağlanıp tar komutunu çalıştırmak için sözdizimi şu şekildedir:ssh user@box tar czf - /dir1/ > /destination/file.tar.gz
VEYAssh user@box 'cd /dir1/ && tar -cf - file | gzip -9' >file.tar.gz
Aşağıdaki komut /wwwdata dizinini ssh oturumu üzerinden dumpserver.nixcraft.in (IP 192.168.1.201) host’una yedekler:# tar zcvf - /wwwdata | ssh [email protected] "cat > /backup/wwwdata.tar.gz"
VEYA# tar zcvf - /wwwdata | ssh [email protected] "cat > /backup/wwwdata.tar.gz"
Örnek çıktı:
tar: Removing leading `/' from member names
/wwwdata/
/wwwdata/n/nixcraft.in/
/wwwdata/c/cyberciti.biz/
....
..
...
Password:
Bu örnekte /data2/ dizinini gpg ile arşivleyin:$ tar zcf - /data2/ | gpg -e | ssh vivek@nas03 'cat - > data2-dd-mm-yyyy.tar.gz.gpg'
Lütfen ssh komutunu sudo veya pseudo-terminal tahsisi gerektiren başka bir komutla kullanırken şu şekilde okunan bir hata alabileceğinizi unutmayın:
sudo: sorry, you must have a tty to run sudo
Bu sorundan kaçınmak için ssh komutuna -t seçeneğini iletin:# tar zcvf - /wwwdata | ssh-t[email protected] "sudocat > /backup/wwwdata.tar.gz"
ssh oturumları üzerinden tar komutunun kullanımı
Uzak makineden (server1.cyberciti.biz) yerel sisteme kopyalama şu şekildedir:$ cd /path/local/dir/$ ssh [email protected] 'tar zcf - /some/dir' | tar zxf -
tar ve ssh kullanarak Linux sistem sabit disk yedekleme/yansıtma
/dev/sdvf adlı tüm sabit disk sürücüsünü yerel makineden uzak AWS EC2 bulut yedekleme sunucusuna kopyalayalım:# dd if=/dev/sdvf | ssh backupimg@vpc-aws-mumbai-backup-001 'dd of=prod-disk-hostname-sdvf-dd-mm-yyyy.img'
Sunucudaki imajdan yerel bir sürücüyü geri yüklemek için komutu tersine çevirin. Örneğin, uzak AWS EC2 bulut yedekleme sunucusunda saklanan imajdan yerel bir sabit disk sürücüsünü şu şekilde geri yükleyebiliriz:# ssh backupimg@vpc-aws-mumbai-backup-001 'dd if=prod-disk-hostname-sdvf-dd-mm-yyyy.img' | dd of=/dev/sdvf
Verileri yeni bir Linux sistemine taşıma
scp ve dizin yapısını kopyalayan diğer komutların sorunu, Sembolik bağlantıların, özel cihazların, soketlerin, adlandırılmış pipe’ların ve diğer şeylerin kopyalanmamasıdır. Bu nedenle, ssh üzerinden tar kullanıyoruz. Örneğin, nuc-box’tan tüm verileri kopyalayın. x230 dizüstü bilgisayarda terminali açın ve ssh komutunu tar komutuyla birlikte çalıştırın:$ ssh vivek@nuc-box 'tar czf - /home/vivek' | tar xvzf - -C /home/vivek
Tape device için SSH oturumu üzerinden ağ üzerinden tar komutunu kullanın
Linux altındaki varsayılan ilk SCSI tape sürücüsü /dev/st0’dır. Linux altında kullanılan tape sürücülerinin adlandırma kuralı hakkında buradan
daha fazla bilgi edinebilirsiniz. Netlik amacıyla dd komutunu da kullanabilirsiniz:# tar cvzf - /wwwdata | ssh [email protected] "dd of=/backup/wwwdata.tar.gz"
Yedeği uzak tape cihazına dökmek de mümkündür:# tar cvzf - /wwwdata | ssh [email protected] "cat > /dev/nst0"
Tape’i geri sarmak için mt komutunu
kullanabilir ve ardından cat komutunu
kullanarak dökebilirsiniz:# tar cvzf - /wwwdata | ssh [email protected] $(mt -f /dev/nst0 rewind; cat > /dev/nst0)$
ssh üzerinden tar nasıl çıkarılır
Sözdizimi oldukça basittir:$ cat my-data.tar.gz | ssh [email protected] "tar zxvf -"cat my-data.tar.gz | ssh [email protected] "cd /path/to/dest/; tar zxvf -"
Bu örnekte, uzak makineden yerel dizine ssh oturumu üzerinden tar yedeğini geri yükleyin:# cd /# ssh [email protected] "cat /backup/wwwdata.tar.gz" | tar zxvf -
Yukarıdaki komutu cron job’larında
veya scriptlerde kullanmak istiyorsanız, şifreleri kaldırmak için SSH anahtarlarını
düşünün.
İlerleme çubuğu ile SSH üzerinden tar nasıl yapılır
pv komutu bir pipeline üzerinden verilerin ilerlemesini görmenizi sağlar
. Yani sözdizimi şudur:$ cd /dir/to/backup/$ tar zcf - . | pv | ssh [email protected] "cat > /backups/box42/backup-dd-mm-yyyy.tgz"$ cd /tmp/data/$ tar zcf - . | \pv | \ssh vivek@centos7 "cat > /tmp/data.tgz"
ssh üzerinden tar’ın bazı örnekleri daha:
$ tar cvjf - * | ssh vivek@nixcraft "(cd /dest/; tar xjf -)"$ tar cvzf - mydir/ | ssh vivek@backupbox "cat > /backups/myfile.tgz"$ tar cvzf - /var/www/html | ssh [email protected] "dd of=/backups/www.tar.gz"$ ssh vivek@box2 "cat /backups/www.tar.gz" | tar xvzf -$ tar cvjf - * | ssh [email protected] "(cd /dest/; tar xjf - )"
Daha fazla bilgi için tar komutu/ssh komutu/bash komutu man sayfasını okuduğunuzdan emin olun:$ man tar$ man bash$ man ssh
SSHFS – bir FUSE filesystem hakkında not
Uzak bir dizini bağlamak ve tar komutunu çalıştırmak için sshfs kullanabilirsiniz
:mkdir /data/sshfs [email protected]:/ /data/tar -zcvf /data/file.tar.gz /home/vivek/
Sonuç
Arşivleri, dosyaları ve imajları güvenli bir şekilde aktarmak için tar komutunu ssh oturumları üzerinden nasıl kullanacağınızı öğrendiniz. Daha fazla bilgi için GNU/tar ana sayfasına buradan bakın.
**Kaynak : How To Use tar Command Through Network Over SSH Session