Cara Menggunakan Perintah tar Melalui Jaringan Melalui Sesi SSH

4 menit baca

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
ATAU
ssh 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

Bagikan artikel ini

Merasa terbantu? Bagikan kepada yang lain.

comments powered by Disqus