GNU/Linux >> Belajar Linux >  >> Linux

Cara Mencadangkan NextCloud dan memindahkannya ke server lain

Jika Anda menjalankan instance dari Data Cloud NextCloud yang populer, Anda mungkin menginginkan cara untuk mencadangkan data Anda juga. Hari ini saya menunjukkan kepada Anda cara Mencadangkan NextCloud dan cara memindahkan file Anda ke server lain. Kami akan melakukan ini dengan cara termudah, tanpa deduplikasi data, tanpa pencadangan tambahan, cukup dengan membuat file tar.gz dari data terpenting kami dan memindahkannya ke server cadangan, menimpa yang sudah ada, menggunakan Cron. Saya akan memberi Anda opsi yang tidak menimpa cadangan yang ada, tetapi juga membuat setiap cadangan satu per satu dengan tanggal.

Mari kita lihat skenario kita dulu.

Skenario

NextCloudServer =Server NextCloud kami, tentu saja..

BackupServer =Server Cadangan Kami.

Apa yang ingin kita capai? Kami ingin membuat Backup di NextCloudServer dan memindahkannya ke BackupServer kami. Untuk kedua server, kami menggunakan Ubuntu 16.04 LTS dalam contoh ini.

Jadi di mana untuk memulai? Pertama-tama kita perlu memasang folder BackupServer di server NextCloud.

Mari kita asumsikan server cadangan kita memiliki folder bernama "backup", yang tentu saja perlu Anda buat di BackupServer Anda.

Jadi mari kita asumsikan path ke BackupServer kita termasuk folder backup adalah:

//BackupServer.com/backups

Langkah 1 - Mengatur NextCloud ke Mode Pemeliharaan

Untuk memastikan integritas data, pertama-tama kita akan mengatur NextCloud ke Maintenance Mode. Ini memastikan bahwa tidak ada yang bekerja secara aktif di NextCloud dan mengurangi risiko cadangan yang rusak.

cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode – on

Langkah 2 - Memasang Server Cadangan

Di NextCloudServer Anda buat direktori baru. Anda dapat membuatnya di mana pun Anda inginkan, untuk contoh ini, kami menggunakan yang berikut:

mkdir /mnt/cifs/backups/nextcloud

Untuk dapat me-mount share CIFS, Anda harus menginstal cifs-utils, jadi kami melakukannya terlebih dahulu.

apt-get update
apt-get install cifs-utils

Memasang drive secara manual

Pertama, kita akan membuat file tempat kita menyimpan kredensial ke server cadangan kita, jadi kita tidak perlu menggunakannya sebagai teks yang jelas dalam skrip kita.

nano /etc/backup-credentials.txt

Dan masukkan kredensial Anda seperti pada contoh di bawah ini:

Tekan CTRL+O untuk menyimpan dan CTRL+X untuk keluar.

Sekarang kita perlu menyesuaikan izin:

chmod 600 /etc/backup-credentials.txt

Setelah ini, kita akan memasang BackupServer secara manual.

mount -t cifs -o credentials=/etc/backup-crendetials.txt //BackupServer.com/backups /mnt/cifs/backups/nextcloud

Ini seharusnya sudah memasang folder //BackupServer.com/backups Anda ke /mnt/cifs/backups/nextcloud.

Anda dapat memverifikasi ini dengan menggunakan perintah berikut:

df -h

Jika Anda akan me-restart NextCloudServer Anda sekarang, mount akan hilang, karena kami baru saja menambahkannya secara manual. Anda dapat secara otomatis memetakan drive dengan memodifikasi file /etc/fstab atau cukup memasukkan perintah mount dari atas ke dalam cronjob Anda, yang merupakan opsi yang akan kami pilih.

Saya secara khusus memilih opsi ini untuk menghindari kesalahan saat memulai ulang. Jika drive tidak tersedia saat server melakukan boot ulang, drive mungkin masuk ke mode Darurat dan tidak akan muncul. Ada beberapa cara untuk mengatasinya dengan menggunakan opsi nofail atau noauto di dalam file fstab, tetapi saya tidak akan membahasnya dan memilih cara yang aman dan mudah. Jika Anda ingin memasang drive secara otomatis dengan memodifikasi file fstab Anda, lakukan pencarian Google tentang cara melakukannya, tetapi cerdaslah dalam mengedit file fstab Anda karena dapat mencegah server Anda melakukan booting.

Pilihan ada di tangan Anda.

Langkah 3 - Membuat cadangan

Baiklah, sekarang setelah kita memasang mount, kita perlu mencari tahu file mana yang perlu kita backup.

Kita perlu membuat cadangan:

  • Direktori utama, terletak di /var/www/nextcloud
  • Direktori data, secara default terletak di /var/www/nextcloud/data tetapi disarankan untuk memindahkannya ke lokasi lain tidak di dalam folder /www/, tetapi saya akan menunjukkan cara menemukannya.
  • Database SQL

Mencadangkan direktori utama

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .

Pikiran itu. pada akhirnya, itu milik perintah. Itu saja untuk itu.

Mencadangkan direktori data

Jadi jika direktori data Anda tidak berada di lokasi default, Anda dapat menemukannya dengan membuka file konfigurasi nextcloud:

nano /var/www/nextcloud/config/config.php

Anda dapat meninggalkan file dengan menekan CTRL+X.

Seperti yang Anda lihat, ini menunjukkan di mana direktori data Anda berada. Jadi gunakan jalur ini untuk mencadangkannya. Perhatikan juga bahwa ada tertulis jenis database yang digunakan NextCloud Anda, yang relevan untuk langkah selanjutnya.

Baiklah, untuk membuat cadangan direktori data Anda, jalankan:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_DataDir.tar.gz -C /var/lib/nextcloud/data .

Sesuaikan jalur  /var/lib/nextcloud/data ke jalur Anda sendiri! Pikiran itu. pada akhirnya, itu milik perintah. Ini bisa memakan waktu lama untuk diselesaikan.

Mencadangkan database

Ok, jadi ada beberapa database yang bisa digunakan NextCloud, dalam contoh ini kita asumsikan kita menggunakan MySQL. Jika penginstalan Anda menggunakan database yang berbeda, Anda harus mencari perintah yang sesuai untuk Anda di Google.

Untuk melakukan dump database ini dengan cara yang aman tanpa permintaan sandi dalam tugas Cron, pertama-tama kita harus membuat /  atau memodifikasi file .my.cnf yang terletak di direktori ~/.

nano ~/.my.cnf

Mungkin saja file tersebut sudah ada dan memiliki entri, tergantung pada konfigurasi server Anda, jangan khawatir, cukup tambahkan baris di bawah teks yang ada.

[mysqldump]
user = yourDBusername
password = yourDBpassword

Tekan CTRL+O untuk menyimpan dan CTRL+X untuk keluar.

Jika Anda tidak tahu Nama Pengguna atau Kata Sandi DB Anda - Ada tertulis di dalam config.php Anda yang telah kita lihat sebelumnya.

Selanjutnya, kita perlu menyesuaikan hak akses file:

chmod 600 ~/.my.cnf

Sekarang Anda siap menjalankan dump database Anda tanpa memasukkan kata sandi.

Anda dapat menjalankan SQL Dump dengan mengetik:

mysqldump – single-transaction -h localhost -u nextcloud > /mnt/cifs/backups/nextcloud/NextcloudBackup_DB.sql

Baiklah, sekarang kami membuat cadangan dari 3 file terpenting. Mari kita verifikasi jika semuanya ada.

Kami CD di direktori cadangan kami dan juga akan menjalankan df -h lagi untuk memverifikasi bahwa ruang benar-benar terisi.

cd /mnt/cifs/backups/nextcloud
df -h

Dan benar saja:

Kami juga dapat menjalankan ls di dalam direktori cadangan kami untuk memverifikasi bahwa file tersebut ada di sana:

ls

Dan itu saja untuk proses backup. Sekarang kita tahu semuanya berfungsi, dan sekarang kita dapat mengotomatiskan seluruh proses menggunakan Cron. Tapi pertama-tama, kita harus menonaktifkan mode Maintenace lagi.

Langkah 4 - Menonaktifkan mode Pemeliharaan

Cepat dan mudah:

cd /var/www/nextcloud 
sudo -u www-data php occ maintenance:mode – off

Langkah 5 - Membuat tugas Cron

Sekarang kita pada dasarnya membuat pekerjaan Cron yang menjalankan semua perintah yang baru saja kita jalankan secara manual pada tanggal tertentu yang kita tetapkan. Anda harus mempelajari setidaknya dasar-dasar pekerjaan Cron sebelum mencoba ini secara membabi buta. Saya memiliki tutorial singkat dan informatif l tentang itu, termasuk video .

Saya ingin tugas Cron saya berjalan setiap hari Minggu, mulai pukul 20:59.

Kami membuat Cron dengan memodifikasi file crontab:

crontab -e

Sekarang kita tahu bahwa pencadangan Direktori Data akan memakan waktu paling lama, jadi kita akan menjalankan ini sebagai perintah terakhir.

59 20 * * 7 cd /var/www/nextcloud; sudo -u www-data php occ maintenance:mode – on
0 21 * * 7 mount -t cifs -o credentials=/etc/backup-credentials.txt //BackupServer/backup /mnt/cifs/backups/nextcloud
05 21 * * 7 tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .
30 21 * * 7 mysqldump – single-transaction -h localhost -u nextcloud > /mnt/cifs/backups/nextcloud/NextcloudBackup_DB.sql
00 22 * * 7 tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_DataDir.tar.gz -C /var/lib/nextcloud/data .
00 02 * * 1 cd /var/www/nextcloud; sudo -u www-data php occ maintenance:mode – off

Mari kita cepat menelusuri setiap baris untuk menghilangkan kebingungan.

  • Setiap Minggu 20:59: Aktifkan mode Pemeliharaan
  • Setiap Minggu pukul 21:00: Pastikan BackupServer kita sudah di-mount/remount
  • Setiap Minggu 21:05: Cadangkan Direktori File NextCloud kami
  • Setiap Minggu pukul 21:30: Cadangkan Basis Data SQL Kami
  • Setiap Minggu pukul 22:00: Cadangkan Direktori Data besar kami
  • Setiap Senin pukul 02:00: Nonaktifkan mode Pemeliharaan

Sekarang Anda dapat melihat bahwa saya memberi skrip cukup waktu antara Pencadangan Direktori Data terakhir dan meninggalkan mode Pemeliharaan.

CTRL+O untuk menyimpan dan CTRL+X untuk keluar.

Jika Anda ingin memvalidasi bahwa skrip sedang berjalan, cukup navigasikan ke folder cadangan pada hari Senin dan jalankan.

ls -la

Untuk memverifikasi bahwa file memiliki tanggal yang benar.

Dan itu saja. Seperti yang saya katakan, ini adalah cara sederhana dan mudah untuk membuat Cadangan. Jika Anda ingin membuat cadangan tambahan atau menerapkan deduplikasi data, Anda harus melihat sesuatu seperti Rsync atau Borgbackup.

Seperti yang dijanjikan, opsi untuk membuat file individual tanpa menimpanya ada di bawah.

Langkah 6 (OPSIONAL) - Menggunakan nama file individual

Sangat mudah untuk melakukannya, tetapi perlu diingat bahwa ini akan mengisi ruang hard drive Anda dengan cukup cepat tergantung pada seberapa sering Anda menjalankan pencadangan. Kami cukup membuat nama file individual dengan menambahkan opsi tanggal di perintah pencadangan kami.

Jadi alih-alih menggunakan perintah ini:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .

Anda akan menggunakan ini:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir_`date +"%Y%m%d"`.tar.gz -C /var/www/nextcloud .

Ini akan menambahkan tanggal ke nama file dengan tanggal spesifik pembuatannya.

Anda cukup mengulangi langkah ini untuk semua cadangan lainnya juga. Saya akan mengajari Anda cara memulihkan cadangan di tutorial mendatang.


Linux
  1. Apa itu Server Web, dan Bagaimana Cara Kerja Server Web?

  2. Cara Mencadangkan dan Memulihkan Repositori SVN di Linux

  3. Bagaimana Cara Ssh Ke Server Menggunakan Server Lain??

  1. Pelajari cara menyalin file dan folder dari/ke server lain

  2. Cara Mencadangkan dan Memulihkan Basis Data di PostgreSQL

  3. Cara memindahkan /usr dan /var ke Partisi atau Disk Lain

  1. Cara Membuat Cadangan

  2. Cara Mencadangkan dan Memulihkan Basis Data Postgres

  3. Bagaimana cara memindahkan (dan menimpa) semua file dari satu direktori ke direktori lain?