Android

Bagaimana untuk memindahkan fail dengan rsync ke atas ssh

Use SSH Keys, Cron and Rsync to Automatically Backup a Linux PC to a Synology NAS!

Use SSH Keys, Cron and Rsync to Automatically Backup a Linux PC to a Synology NAS!

Isi kandungan:

Anonim

Apabila ia datang untuk memindahkan fail antara sistem pada rangkaian, pengguna Linux dan Unix mempunyai banyak alat yang mereka gunakan.

Protokol yang paling popular untuk pemindahan data adalah SSH dan FTP. Manakala FTP adalah sangat popular, sentiasa lebih suka menggunakan SSH kerana ia adalah cara yang paling selamat untuk memindahkan fail anda.

Terdapat alat khusus untuk pemindahan fail ke atas SSH seperti scp dan sftp tetapi tidak ada yang mempunyai semua ciri yang disediakan rsync . rsync boleh digunakan untuk mencerminkan data, backup tambahan, menyalin fail antara sistem dan sebagainya.

Dalam tutorial ini, kami akan menerangkan bagaimana untuk menyalin fail dengan rsync melalui SSH.

Keperluan

  • Utiliti rsync mesti dipasang pada kedua-dua destinasi dan sistem sumber. Sekiranya ia tidak dipasang, anda boleh memasangnya menggunakan pengurus pakej pengedaran anda:

    Ubuntu dan Debian:

    sudo apt install rsync

    CentOS dan Fedora:

    sudo yum install rsync

    Akses SSH ke komputer jauh.

    Pengguna menjalankan rsync perintah dan SSH pengguna jauh mesti mempunyai kebenaran yang sesuai untuk membaca dan fail tulis.

Menggunakan rsync untuk Transfer Files over SSH

Dengan rsync , anda boleh memindahkan fail dan direktori lebih SSH dari dan ke pelayan jauh.

Sintaks umum untuk memindahkan fail dengan rsync adalah seperti berikut:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

Di mana SRC adalah direktori sumber, DEST adalah direktori destinasi USER adalah nama pengguna SSH jauh dan HOST adalah hos SSH jauh atau Alamat IP.

Versi rsync yang lebih baru dikonfigurasikan untuk menggunakan SSH sebagai shell jauh lalai supaya anda boleh meninggalkan pilihan -e ssh .

Sebagai contoh, untuk memindahkan fail /opt/file.zip tunggal dari sistem setempat ke direktori /var/www/ pada sistem jauh dengan IP 12.12.12.12 anda jalankan:

rsync -a /opt/file.zip [email protected]:/var/www/

Pilihan -a ialah mod arkib yang akan menyegerakkan direktori secara rekursif, memindahkan peranti khas dan blok, mengekalkan pautan simbolik, masa pengubahsuaian, kumpulan, pemilikan, dan kebenaran.

Sekiranya fail itu ada di pelayan jauh, ia akan ditimpa semula. Jika anda mahu menyimpan fail di bawah nama yang berbeza, nyatakan nama baru:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Untuk memindahkan data dari jarak jauh ke mesin tempatan, gunakan lokasi jauh sebagai sumber dan lokasi setempat sebagai tujuan:

rsync -a [email protected]:/var/www/file.zip /opt/

Memindahkan direktori dengan rsync ke atas SSH adalah sama seperti memindahkan fail.

Adalah penting untuk mengetahui bahawa rsync memberikan rawatan yang berbeza kepada direktori sumber dengan garis miring / . Apabila direktori sumber mempunyai garis miring, rsync akan menyalin hanya kandungan direktori sumber ke direktori destinasi. Apabila slash belakang ditinggalkan direktori sumber akan disalin dalam direktori destinasi.

Sebagai contoh untuk memindahkan direktori /opt/website/images/ ke direktori /var/www/images/ pada mesin jauh anda akan menaip:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Gunakan pilihan --delete jika anda mahu menyegerakkan direktori tempatan dan jauh. Berhati-hatilah apabila menggunakan pilihan ini kerana ia akan memadamkan fail dalam direktori destinasi jika mereka tidak wujud dalam direktori sumber.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Jika SSH di hos jauh mendengar di port selain daripada lalai 22 , tentukan port menggunakan pilihan -e . Sebagai contoh, jika SSH sedang mendengar pada port 3322 anda akan menggunakan:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Apabila memindahkan sejumlah besar data, disyorkan untuk menjalankan arahan rsync di dalam sesi skrin atau menggunakan pilihan -P yang memberitahu rsync untuk menunjukkan bar kemajuan semasa pemindahan dan menyimpan fail yang dipindahkan sebahagiannya:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Kesimpulannya

Kami telah menunjukkan anda bagaimana untuk menggunakan rsync lebih SSH untuk menyalin dan fail segerak dan direktori.

Anda juga mungkin mahu membaca bagaimana untuk mengecualikan fail atau direktori dengan rsync .

Jangan ragu untuk meninggalkan komen jika anda mempunyai sebarang pertanyaan.

terminal rsync