Backups dengan shell scripts: Perbedaan antara revisi

Dari Catatan Pak Samsul
Loncat ke navigasi Loncat ke pencarian
kTidak ada ringkasan suntingan
kTidak ada ringkasan suntingan
Baris 4: Baris 4:
  $sudo nano /usr/bin/backup-db.sh
  $sudo nano /usr/bin/backup-db.sh


Silahkan isi backup-db.sh dengan scripts berikut :  
Silahkan isi backup-db.sh dengan scripts berikut<span> </span>:  


  #!/bin/bash
  #!/bin/bash
Baris 42: Baris 42:
  #Selesai
  #Selesai


Penjelasan Sintak pada Script tersebut :  
Penjelasan Sintak pada Script tersebut<span> </span>:  
  $ backup_files: daftar variabel direktori mana yang ingin Anda backup. Daftar tersebut harus disesuaikan dengan kebutuhan Anda.
  $ backup_files: daftar variabel direktori mana yang ingin Anda backup. Daftar tersebut harus disesuaikan dengan kebutuhan Anda.
 
  $ day: variabel yang menahan hari dalam seminggu (Senin, Selasa, Rabu, dll). Ini digunakan untuk membuat file arsip untuk setiap hari dalam seminggu,  
  $ day: variabel yang menahan hari dalam seminggu (Senin, Selasa, Rabu, dll). Ini digunakan untuk membuat file arsip untuk setiap hari dalam seminggu,memberikan riwayat cadangan tujuh hari. Ada cara lain untuk melakukannya termasuk menggunakan utilitas tanggal.
memberikan riwayat cadangan tujuh hari. Ada cara lain untuk melakukannya termasuk menggunakan utilitas tanggal.
 
  $ hostname: variabel yang berisi nama host singkat dari sistem. Menggunakan nama host di nama file arsip memberi Anda opsi untuk menempatkan file arsip harian dari beberapa sistem di direktori yang sama.
  $ hostname: variabel yang berisi nama host singkat dari sistem. Menggunakan nama host di nama file arsip memberi Anda opsi untuk menempatkan file arsip  
 
harian dari beberapa sistem di direktori yang sama.
  $ archive_file: nama file arsip lengkap.
  $ archive_file: nama file arsip lengkap.
 
  $ dest: tujuan file arsip. Direktori perlu dibuat dan dalam hal ini dipasang sebelum menjalankan skrip cadangan. Lihat ??? untuk mengetahui detail  
  $ dest: tujuan file arsip. Direktori perlu dibuat dan dalam hal ini dipasang sebelum menjalankan skrip cadangan. Lihat ??? untuk mengetahui detail penggunaan NFS .pesan status: pesan opsional dicetak ke konsol menggunakan utilitas echo.
penggunaan NFS .
 
pesan status: pesan opsional dicetak ke konsol menggunakan utilitas echo.
  tar czf $ dest / $ archive_file $ backup_files: perintah tar yang digunakan untuk membuat file arsip.
  tar czf $ dest / $ archive_file $ backup_files: perintah tar yang digunakan untuk membuat file arsip.
 
  c: membuat arsip.
  c: membuat arsip.
 
  z: filter arsip melalui utilitas gzip yang mengompresi arsip.
  z: filter arsip melalui utilitas gzip yang mengompresi arsip.
 
  f: output ke file arsip. Jika tidak, keluaran tar akan dikirim ke STDOUT.
  f: output ke file arsip. Jika tidak, keluaran tar akan dikirim ke STDOUT.
ls -lh $ dest: pernyataan opsional mencetak daftar panjang -l dalam format -h yang dapat dibaca manusia dari direktori tujuan. Ini berguna untuk pemeriksaan ukuran file cepat dari file arsip. Pemeriksaan ini seharusnya tidak menggantikan pengujian file arsip.
   
   
ls -lh $ dest: pernyataan opsional mencetak daftar panjang -l dalam format -h yang dapat dibaca manusia dari direktori tujuan. Ini berguna untuk
'''Menjalankan Script'''
pemeriksaan ukuran file cepat dari file arsip. Pemeriksaan ini seharusnya tidak menggantikan pengujian file arsip.
 
Menjalankan Script
Menjalankan dari Terminal
Menjalankan dari Terminal
Cara termudah untuk menjalankan skrip cadangan di atas adalah dengan menyalin dan menempelkan konten ke dalam file. backup.shsebagai contoh. File harus dapat dieksekusi:
Cara termudah untuk menjalankan skrip cadangan di atas adalah dengan menyalin dan menempelkan konten ke dalam file. backup.shsebagai contoh. File harus dapat dieksekusi:
  chmod u+x backup.sh
  chmod u+x backup.sh
Baris 77: Baris 73:
  sudo ./backup.sh //Ini adalah cara yang bagus untuk menguji skrip untuk memastikan semuanya berfungsi seperti yang diharapkan.
  sudo ./backup.sh //Ini adalah cara yang bagus untuk menguji skrip untuk memastikan semuanya berfungsi seperti yang diharapkan.


Mengeksekusi dengan cron
'''Mengeksekusi dengan cron'''
 
Utilitas cron dapat digunakan untuk mengotomatiskan eksekusi skrip. Daemon cron memungkinkan eksekusi skrip, atau perintah, pada waktu dan tanggal tertentu.
Utilitas cron dapat digunakan untuk mengotomatiskan eksekusi skrip. Daemon cron memungkinkan eksekusi skrip, atau perintah, pada waktu dan tanggal tertentu.


cron dikonfigurasi melalui entri dalam crontabfile. crontabfile dipisahkan menjadi beberapa bidang:
cron dikonfigurasi melalui entri dalam crontabfile. crontab file dipisahkan menjadi beberapa bidang:


  # m h dom mon dow  command
  # m h dom mon dow  command
m: menit saat perintah dijalankan, antara 0 dan 59.
 
h: jam saat perintah dijalankan, antara 0 dan 23.
* m: menit saat perintah dijalankan, antara 0 dan 59
dom: hari dari bulan perintah dijalankan.
* h: jam saat perintah dijalankan, antara 0 dan 23.
mon: bulan saat perintah dijalankan, antara 1 dan 12.
* dom: hari dari bulan perintah dijalankan.
dow: hari dalam seminggu saat perintah dijalankan, antara 0 dan 7. Minggu dapat ditentukan dengan menggunakan 0 atau 7, kedua nilai tersebut valid.
* mon: bulan saat perintah dijalankan, antara 1 dan 12.
perintah: perintah untuk dieksekusi.
* dow: hari dalam seminggu saat perintah dijalankan, antara 0 dan 7. Minggu dapat ditentukan dengan menggunakan 0 atau 7, kedua nilai tersebut valid.
* ''command:'' perintah untuk dieksekusi.
 


Untuk menambah atau mengubah entri dalam crontabfile, perintah crontab -e harus digunakan. Selain itu, konten crontabfile dapat dilihat menggunakan perintah crontab -l.
Untuk menambah atau mengubah entri dalam crontabfile, perintah crontab -e harus digunakan. Selain itu, konten crontabfile dapat dilihat menggunakan perintah crontab -l.
Baris 95: Baris 94:


sudo crontab -e
sudo crontab -e
Catatan
 
 
'''Catatan'''


Menggunakan sudo dengan perintah crontab -e mengedit crontab pengguna root . Ini diperlukan jika Anda mencadangkan direktori yang hanya dapat diakses oleh pengguna root.
Menggunakan sudo dengan perintah crontab -e mengedit crontab pengguna root . Ini diperlukan jika Anda mencadangkan direktori yang hanya dapat diakses oleh pengguna root.
Baris 101: Baris 102:
Tambahkan entri berikut ke crontabfile:
Tambahkan entri berikut ke crontabfile:


# m h dom mon dow  command
m h dom mon dow  command
 
0 0 * * * bash /usr/local/bin/backup.sh
0 0 * * * bash /usr/local/bin/backup.sh
The backup.shScript sekarang akan dieksekusi setiap hari pukul 12.00 WIB.
The backup.shScript sekarang akan dieksekusi setiap hari pukul 12.00 WIB.


Catatan
 
'''Catatan'''


Skrip backup.sh perlu disalin ke /usr/local/bin/direktori agar entri ini dapat dijalankan dengan benar. Skrip dapat berada di mana saja di sistem file, cukup ubah jalur skrip dengan benar.
Skrip backup.sh perlu disalin ke /usr/local/bin/direktori agar entri ini dapat dijalankan dengan benar. Skrip dapat berada di mana saja di sistem file, cukup ubah jalur skrip dengan benar.
Baris 111: Baris 114:
Untuk opsi crontab yang lebih mendalam, lihat Referensi .
Untuk opsi crontab yang lebih mendalam, lihat Referensi .


Memulihkan dari Arsip
'''Memulihkan dari Arsip'''
 
Setelah arsip dibuat, penting untuk menguji arsip tersebut. Arsip dapat diuji dengan membuat daftar file di dalamnya, tetapi tes terbaik adalah mengembalikan file dari arsip.
Setelah arsip dibuat, penting untuk menguji arsip tersebut. Arsip dapat diuji dengan membuat daftar file di dalamnya, tetapi tes terbaik adalah mengembalikan file dari arsip.


Baris 117: Baris 121:
  tar -tzvf /mnt/backup/host-Monday.tgz //Untuk memulihkan file dari arsip ke direktori lain, masukkan:
  tar -tzvf /mnt/backup/host-Monday.tgz //Untuk memulihkan file dari arsip ke direktori lain, masukkan:


  tar -xzvf /mnt/backup/host-Monday.tgz -C /tmp etc/hosts //The -C pilihan untuk tar pengalihan file diekstrak ke direktori tertentu. Contoh di atas akan mengekstrak /etc/hostsfile ke /tmp/etc/hosts. tar membuat ulang struktur direktori yang dikandungnya.
  tar -xzvf /mnt/backup/host-Monday.tgz -C /tmp etc/hosts  
 
The -C pilihan untuk tar pengalihan file diekstrak ke direktori tertentu. Contoh di atas akan mengekstrak /etc/hostsfile ke /tmp/etc/hosts. tar membuat ulang struktur direktori yang dikandungnya.


Juga, perhatikan bahwa "/" terdepan tertinggal dari jalur file yang akan dipulihkan.
Juga, perhatikan bahwa "/" terdepan tertinggal dari jalur file yang akan dipulihkan.
Baris 124: Baris 130:


  cd /
  cd /
  sudo tar -xzvf /mnt/backup/host-Monday.tgz //Ini akan menimpa file yang saat ini ada di sistem file.
  sudo tar -xzvf /mnt/backup/host-Monday.tgz
Referensi :  
 
Ini akan menimpa file yang saat ini ada di sistem file.
Referensi<span> </span>:  


https://ubuntu.com/server/docs/backups-shell-scripts
https://ubuntu.com/server/docs/backups-shell-scripts

Revisi per 21 Maret 2021 15.04

Backup directory /var/www pada server

Buat Script pada /usr/bin

$sudo nano /usr/bin/backup-db.sh

Silahkan isi backup-db.sh dengan scripts berikut :

#!/bin/bash
####################################
#
# Backup to NFS mount script.
#
####################################

# What to backup. 
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# Where to backup to.
dest="/mnt/backup"

# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Print start status message.
echo "Backing up $backup_files to $dest/$archive_file"
date
echo

# Backup the files using tar.
tar czf $dest/$archive_file $backup_files

# Print end status message.
echo
echo "Backup finished"
date

# Long listing of files in $dest to check file sizes.
ls -lh $dest

#Selesai

Penjelasan Sintak pada Script tersebut :

$ backup_files: daftar variabel direktori mana yang ingin Anda backup. Daftar tersebut harus disesuaikan dengan kebutuhan Anda.
$ day: variabel yang menahan hari dalam seminggu (Senin, Selasa, Rabu, dll). Ini digunakan untuk membuat file arsip untuk setiap hari dalam seminggu,memberikan riwayat cadangan tujuh hari. Ada cara lain untuk melakukannya termasuk menggunakan utilitas tanggal.
$ hostname: variabel yang berisi nama host singkat dari sistem. Menggunakan nama host di nama file arsip memberi Anda opsi untuk menempatkan file arsip harian dari beberapa sistem di direktori yang sama.
$ archive_file: nama file arsip lengkap.
$ dest: tujuan file arsip. Direktori perlu dibuat dan dalam hal ini dipasang sebelum menjalankan skrip cadangan. Lihat ??? untuk mengetahui detail penggunaan NFS .pesan status: pesan opsional dicetak ke konsol menggunakan utilitas echo.
tar czf $ dest / $ archive_file $ backup_files: perintah tar yang digunakan untuk membuat file arsip.
c: membuat arsip.
z: filter arsip melalui utilitas gzip yang mengompresi arsip.
f: output ke file arsip. Jika tidak, keluaran tar akan dikirim ke STDOUT.
ls -lh $ dest: pernyataan opsional mencetak daftar panjang -l dalam format -h yang dapat dibaca manusia dari direktori tujuan. Ini berguna untuk pemeriksaan ukuran file cepat dari file arsip. Pemeriksaan ini seharusnya tidak menggantikan pengujian file arsip.

Menjalankan Script

Menjalankan dari Terminal

Cara termudah untuk menjalankan skrip cadangan di atas adalah dengan menyalin dan menempelkan konten ke dalam file. backup.shsebagai contoh. File harus dapat dieksekusi:

chmod u+x backup.sh

Kemudian dari prompt terminal:

sudo ./backup.sh //Ini adalah cara yang bagus untuk menguji skrip untuk memastikan semuanya berfungsi seperti yang diharapkan.

Mengeksekusi dengan cron

Utilitas cron dapat digunakan untuk mengotomatiskan eksekusi skrip. Daemon cron memungkinkan eksekusi skrip, atau perintah, pada waktu dan tanggal tertentu.

cron dikonfigurasi melalui entri dalam crontabfile. crontab file dipisahkan menjadi beberapa bidang:

# m h dom mon dow   command
  • m: menit saat perintah dijalankan, antara 0 dan 59
  • h: jam saat perintah dijalankan, antara 0 dan 23.
  • dom: hari dari bulan perintah dijalankan.
  • mon: bulan saat perintah dijalankan, antara 1 dan 12.
  • dow: hari dalam seminggu saat perintah dijalankan, antara 0 dan 7. Minggu dapat ditentukan dengan menggunakan 0 atau 7, kedua nilai tersebut valid.
  • command: perintah untuk dieksekusi.


Untuk menambah atau mengubah entri dalam crontabfile, perintah crontab -e harus digunakan. Selain itu, konten crontabfile dapat dilihat menggunakan perintah crontab -l.

Untuk menjalankan skrip backup.sh yang tercantum di atas menggunakan cron. Masukkan yang berikut ini dari prompt terminal:

sudo crontab -e


Catatan

Menggunakan sudo dengan perintah crontab -e mengedit crontab pengguna root . Ini diperlukan jika Anda mencadangkan direktori yang hanya dapat diakses oleh pengguna root.

Tambahkan entri berikut ke crontabfile:

m h dom mon dow command

0 0 * * * bash /usr/local/bin/backup.sh The backup.shScript sekarang akan dieksekusi setiap hari pukul 12.00 WIB.


Catatan

Skrip backup.sh perlu disalin ke /usr/local/bin/direktori agar entri ini dapat dijalankan dengan benar. Skrip dapat berada di mana saja di sistem file, cukup ubah jalur skrip dengan benar.

Untuk opsi crontab yang lebih mendalam, lihat Referensi .

Memulihkan dari Arsip

Setelah arsip dibuat, penting untuk menguji arsip tersebut. Arsip dapat diuji dengan membuat daftar file di dalamnya, tetapi tes terbaik adalah mengembalikan file dari arsip.

Untuk melihat daftar isi arsip. Dari tipe prompt terminal:

tar -tzvf /mnt/backup/host-Monday.tgz //Untuk memulihkan file dari arsip ke direktori lain, masukkan:
tar -xzvf /mnt/backup/host-Monday.tgz -C /tmp etc/hosts 
The -C pilihan untuk tar pengalihan file diekstrak ke direktori tertentu. Contoh di atas akan mengekstrak /etc/hostsfile ke /tmp/etc/hosts. tar membuat ulang struktur direktori yang dikandungnya.

Juga, perhatikan bahwa "/" terdepan tertinggal dari jalur file yang akan dipulihkan.

Untuk mengembalikan semua file dalam arsip masukkan yang berikut ini:

cd /
sudo tar -xzvf /mnt/backup/host-Monday.tgz
Ini akan menimpa file yang saat ini ada di sistem file.

Referensi :

https://ubuntu.com/server/docs/backups-shell-scripts