Cara Menggunakan Perintah tar Melalui Jaringan Melalui Sesi SSH

Bagaimana cara menggunakan perintah tar melalui sesi ssh yang aman di sistem Linux atau Unix-like? Bagaimana cara mengekstrak arsip tar melalui koneksi jaringan berbasis SSH?
Versi GNU dari utilitas pengarsipan tar (dan versi lama tar lainnya) dapat digunakan melalui jaringan melalui sesi ssh. Jangan gunakan perintah telnet/nc karena koneksi tidak aman. Anda dapat menggunakan pipes Unix/Linux untuk membuat arsip. Mari kita lihat beberapa contoh cara menggunakan perintah tar melalui ssh secara aman untuk membuat arsip di sistem Linux, BSD/macOS atau Unix-like.
Sintaks untuk menggunakan perintah tar melalui ssh
Sintaksnya adalah sebagai berikut untuk ssh ke box dan menjalankan perintah tar:ssh user@box tar czf - /dir1/ > /destination/file.tar.gz
ATAUssh user@box 'cd /dir1/ && tar -cf - file | gzip -9' >file.tar.gz
Perintah berikut mem-backup direktori /wwwdata ke host dumpserver.nixcraft.in (IP 192.168.1.201) melalui sesi ssh:# tar zcvf - /wwwdata | ssh [email protected] "cat > /backup/wwwdata.tar.gz"
ATAU# tar zcvf - /wwwdata | ssh [email protected] "cat > /backup/wwwdata.tar.gz"
Output contoh:
tar: Removing leading `/' from member names
/wwwdata/
/wwwdata/n/nixcraft.in/
/wwwdata/c/cyberciti.biz/
....
..
...
Password:
Dalam contoh ini, arsip /data2/ dengan gpg:$ tar zcf - /data2/ | gpg -e | ssh vivek@nas03 'cat - > data2-dd-mm-yyyy.tar.gz.gpg'
Perlu dicatat bahwa Anda mungkin mendapatkan error yang berbunyi sebagai berikut dengan perintah ssh ketika menggunakan sudo atau perintah lain yang memerlukan alokasi pseudo-terminal:
sudo: sorry, you must have a tty to run sudo
Untuk menghindari masalah ini, berikan opsi -t ke perintah ssh:# tar zcvf - /wwwdata | ssh-t[email protected] "sudocat > /backup/wwwdata.tar.gz"
Penggunaan perintah tar melalui sesi ssh
Menyalin dari mesin remote (server1.cyberciti.biz) ke sistem lokal adalah sebagai berikut:$ cd /path/local/dir/$ ssh [email protected] 'tar zcf - /some/dir' | tar zxf -
Backup/mirror hard drive sistem Linux menggunakan tar dan ssh
Mari kita salin seluruh hard disk drive bernama /dev/sdvf dari mesin lokal ke server backup cloud AWS EC2 remote:# dd if=/dev/sdvf | ssh backupimg@vpc-aws-mumbai-backup-001 'dd of=prod-disk-hostname-sdvf-dd-mm-yyyy.img'
Untuk restore drive lokal dari image di server, balikkan perintahnya. Misalnya, kita dapat restore hard disk drive lokal dari image yang disimpan di server backup cloud AWS EC2 remote sebagai berikut:# ssh backupimg@vpc-aws-mumbai-backup-001 'dd if=prod-disk-hostname-sdvf-dd-mm-yyyy.img' | dd of=/dev/sdvf
Memindahkan data ke sistem Linux baru
Masalah dengan scp dan perintah lain yang menyalin struktur direktori adalah Symbolic link, special device, socket, named pipe, dan hal lain tidak disalin. Oleh karena itu, kita menggunakan tar melalui ssh. Misalnya, salin semua data dari nuc-box. Buka terminal di laptop x230 dan jalankan perintah ssh bersama dengan perintah tar:$ ssh vivek@nuc-box 'tar czf - /home/vivek' | tar xvzf - -C /home/vivek
Menggunakan perintah tar melalui jaringan melalui sesi SSH untuk tape device
Tape drive SCSI pertama default di bawah Linux adalah /dev/st0. Anda dapat membaca lebih lanjut tentang konvensi penamaan tape drive yang digunakan di bawah Linux di sini
. Anda juga dapat menggunakan perintah dd untuk tujuan kejelasan:# tar cvzf - /wwwdata | ssh [email protected] "dd of=/backup/wwwdata.tar.gz"
Dimungkinkan juga untuk dump backup ke remote tape device:# tar cvzf - /wwwdata | ssh [email protected] "cat > /dev/nst0"
Seseorang dapat menggunakan perintah mt untuk rewind tape
dan kemudian dump menggunakan perintah cat
:# tar cvzf - /wwwdata | ssh [email protected] $(mt -f /dev/nst0 rewind; cat > /dev/nst0)$
Cara mengekstrak tar melalui ssh
Sintaksnya cukup sederhana:$ cat my-data.tar.gz | ssh [email protected] "tar zxvf -"cat my-data.tar.gz | ssh [email protected] "cd /path/to/dest/; tar zxvf -"
Dalam contoh ini, restore backup tar melalui sesi ssh dari mesin remote ke direktori lokal:# cd /# ssh [email protected] "cat /backup/wwwdata.tar.gz" | tar zxvf -
Jika Anda ingin menggunakan perintah di atas dalam cron job
atau script, pertimbangkan SSH key
untuk menghilangkan password.
Cara tar melalui SSH dengan progress bar
Perintah pv memungkinkan Anda melihat progress data
melalui pipeline. Jadi sintaksnya adalah:$ 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"
Beberapa contoh lainnya tar melalui ssh:
$ 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 - )"
Pastikan Anda membaca halaman manual perintah tar/ssh/bash untuk info lebih lanjut:$ man tar$ man bash$ man ssh
A note about SSHFS – a FUSE filesystem
You can use sshfs to mount a remote directory and run tar command
:mkdir /data/sshfs [email protected]:/ /data/tar -zcvf /data/file.tar.gz /home/vivek/
Conclusion
You learned how to use the tar command over ssh sessions to transfer archives, files, and images securely. See GNU/tar home page here for more info .
**Source : How To Use tar Command Through Network Over SSH Session