GNU/Linux >> Belajar Linux >  >> Linux

Cara mengkonfigurasi cadangan dengan rsync di Ubuntu 18.04

Rsync (Sinkronisasi jarak jauh) adalah alat untuk menyalin dan menyinkronkan file dan folder di server yang sama atau di antara mesin yang berbeda di Linux.

Yang membedakan Rsync dari "salin dan tempel" klasik adalah alat ini secara otomatis mengenali dokumen mana yang berbeda antara dua folder, sehingga mempercepat proses penyalinan dari folder sumber ke tujuan.

Dalam artikel ini Anda akan mempelajari cara menginstal, mengkonfigurasi, dan menggunakan Rsync di Linux Ubuntu 18.04 untuk menyinkronkan file dan folder serta menjadwalkan pencadangan berkala server Anda.

Instalasi

Paket rsync sudah ada di Repositori Ubuntu Resmi. Untuk menginstalnya ketik:

$ sudo apt install rsync

Sintaks

$ rsync options /path/source/ /path/destination/

Opsi yang tersedia adalah:

  • -v:file dan folder yang disalin akan ditampilkan di shell

  • -r:untuk menyalin folder dan isinya

  • -h:alih-alih menampilkan ukuran file yang disalin dalam byte, format yang mudah dibaca akan ditampilkan (bukan 14.167.396 byte , 14,17 Mb akan terlihat)

  • -z:untuk mengompresi data yang ditransfer

  • -a:menampilkan informasi asli file, seperti stempel waktu, izin, pemilik, dll.

  • -u:saat menyalin,

  • --delete:rsync akan menghapus file di folder tujuan yang tidak ada di folder sumber.

  • --kecualikan:file atau folder tertentu akan diabaikan saat menyalin.

  • --progress:menunjukkan persentase proses penyalinan dan waktu yang tersisa.

  • --existing:hanya file yang sudah ada di folder tujuan yang akan disalin.

Menyinkronkan dua folder di komputer yang sama

Menyalin dari satu folder ke folder lain dilakukan dengan perintah "rsync" diikuti dengan folder sumber (dari mana item disalin) dan folder tujuan. Terlepas dari kenyataan bahwa folder yang akan disalin berisi folder di dalamnya, menambahkan tag ke tag "-r" lebih disukai:

 $ rsync -r path/source path/destination

Seluruh folder "sumber" disalin di folder "tujuan".

 $ rsync -r ~/source/ ~/destination

Konten folder "sumber" disalin ke folder "tujuan".

Hati-hati dengan perbedaan kedua perintah tersebut:dengan menulis "/" setelah folder sumber, sistem diperintahkan untuk menyalin file-file yang terdapat dalam folder tersebut.

Tidak memasukkan “/” menyiratkan pemilihan seluruh folder dan, akibatnya, pembuatan salinan folder sumber di folder tujuan.

Menyalin file dengan format tunggal

Rsync juga mengizinkan penyalinan jenis file tertentu saja, dengan menentukan format atau nama.

Dengan asumsi bahwa file dalam format "txt", semua file dalam format ini dapat disalin dengan mengetik:

$ rsync path/source_folder/*.txt path/destination_folder

Dengan "* .txt" Anda secara tegas meminta salinan "semua file .pdf".

Menyalin file pada protokol SSH antara dua mesin

Anda juga dapat menggunakan protokol SSH untuk menyalin file dan folder dari komputer Anda ke komputer lain. Penggunaan protokol ini menjamin bahwa, selama transfer, semua file dienkripsi dan, oleh karena itu, tidak seorang pun dapat membacanya.

Perintah memerlukan opsi "-e ssh" diikuti dengan sumber dan tujuan salinan.

$ rsync -r ssh path/source/ [email protected]_machine:/path/destination/

Password pengguna yang mengakses mesin target akan diperlukan.

Menyalin file berdasarkan ukuran

Rsync memfilter file yang akan disalin juga berdasarkan ukuran yang ditempati pada disk.

$ rsync --max-size=15k path/source_folder/*.* path/destination_folder/*.*

Hanya file yang lebih kecil dari 15Kb yang akan disalin.

File yang lebih besar akan diabaikan.

$ rsync --min-size=20k ~/source_folder/*.* ~/destination_folder/*.*

Hanya file yang lebih besar dari 20Kb yang akan disalin.
File yang lebih kecil akan diabaikan.

Mengecualikan file dari penyalinan berdasarkan ekstensi

Jika Anda tidak ingin menyalin beberapa jenis file, Anda dapat menggunakan tag “--exclude” untuk mengecualikan beberapa file dari penyalinan berdasarkan ekstensi.

Pada contoh di bawah, file dalam format .PDF tidak akan disalin dari folder "sumber" ke folder "tujuan".

$ rsync -r --exclude="*.pdf" path/source_folder/ path/destination_folder

Menghapus konten dari folder sumber setelah transfer

Demikian juga konsep "cut and paste", dengan rsync file dapat dipindahkan dari folder sumber ke folder tujuan. Dalam hal ini, file disalin di folder tujuan dan kemudian dihapus dari folder sumber.

$ rsync -r --remove-source-files path/source_folder path/destination_folder

Menyetel batas kecepatan transfer

Jika menyalin melalui jaringan, Anda mungkin perlu menetapkan batas kecepatan unggah untuk file Anda. Dalam hal ini, gunakan tag "--bwlimit =KBPS", ganti "KBPS" dengan kecepatan transfer yang diinginkan.

$ rsync --bwlimit=KBPS -r ssh source_path/folder [email protected]_receiver:/destination_path

Ganti "KBPS" dengan nilai kecepatan transfer maksimum yang dinyatakan dalam KB / dtk (2048 KB/dtk =2MB/dtk)

Membuat salinan berkala dan otomatis

Jika menggunakan rsync untuk membuat cadangan tetapi tidak ingin mengetikkan perintah setiap saat, ada alat yang cocok untuk Anda:Cron.

Sudah ada di Ubuntu 18.04, layanan ini memungkinkan untuk mengatur beberapa "aturan" untuk pengulangan beberapa perintah secara berkala.

Untuk mulai membuat aturan dan kemudian mulai menyiapkan proses penyalinan otomatis, ketik:

$ crontab -e

Editor teks tempat untuk menunjukkan perintah mana yang harus diulang secara teratur akan terbuka. Setelah mengatur aturan, simpan dan tutup.

Cara mengkonfigurasi crontab

Penulisan crontab harus mengikuti sintaks yang tepat, menetapkan 6 parameter berurutan:

 m h dom mon dow command
  • m:menit (0-59)

  • h:jam (0-23)

  • dom:hari dalam sebulan (1-31)

  • sen:bulan (1-12)

  • bawah:hari dalam seminggu (0:minggu - 6:sabtu)

  • perintah:perintah untuk dijalankan

    Contoh kemungkinan konfigurasi:

     30 * * * * rsync path/source/*.pdf path/destination

    (setiap bulan, setiap hari dan setiap jam selama 30 menit, semua file ".pdf" di folder "sumber" akan disalin di folder "tujuan")

    */2 * * * * rsync path/source/*.pdf path/destination ( semua file .pdf ada di folder "source" di folder "destination" disalin setiap hari dalam sebulan, setiap 2 menit)

    50 8 * * 1,3 rsync path/source/*.pdf path/destination (perintah untuk menyalin file .pdf di folder "source" di "destination" folder dijalankan dari Senin hingga Rabu pukul 8:50)

    Setelah disimpan dan ditutup editor, untuk melihat daftar crontab ketik:

    $ crontab -l

    Linux
    1. Bagaimana Cara Menghapus Semua File Dengan Ekstensi Tertentu Di Folder Tertentu?

    2. Bagaimana Cara Selektif Membungkam Rsync?

    3. Bagaimana Cara Mencadangkan Telepon Ubuntu?

    1. Cara Mengonfigurasi Firewall dengan UFW di Ubuntu 18.04

    2. Cara Mentransfer File di Linux dengan SCP dan Rsync

    3. Bagaimana cara menyalin folder dengan file ke folder lain di Unix/Linux?

    1. Cara Mentransfer File dengan Rsync melalui SSH

    2. Cara Mengecualikan File dan Direktori dengan Rsync

    3. Bagaimana saya bisa mengecualikan file secara default dengan rsync?