Backups dengan shell scripts: Perbedaan antara revisi
kTidak ada ringkasan suntingan |
kTidak ada ringkasan suntingan |
||
(2 revisi perantara oleh pengguna yang sama tidak ditampilkan) | |||
Baris 14: | Baris 14: | ||
# What to backup. | # What to backup. | ||
backup_files=" | backup_files="/var/www" | ||
# Where to backup to. | # Where to backup to. | ||
dest="/ | dest="/home/User/backup" | ||
# Create archive filename. | # Create archive filename. | ||
Baris 66: | Baris 66: | ||
Menjalankan dari Terminal | Menjalankan dari Terminal | ||
Sebelum menjalankan perintah backup.sh terlebih dahulu memberikan attribud file tersebut dengan perintah sebagai berikut. | |||
chmod u+x backup.sh | |||
hal ini di perlukan supaya file backup.sh dapat di eksekusi. | |||
Kemudian dari | Kemudian dari terminal ketikkan perintah berikut untuk mulai menjalankan script backup.sh: | ||
sudo ./backup.sh | sudo ./backup.sh | ||
perintah tersebut berfungsi untuk menjalankan backup.sh sekaligus untuk menguji apakan script sudah bisa berjalan dengan baik apa belum. | |||
'''Mengeksekusi script backup.sh dengan cron''' | |||
'''Mengeksekusi dengan cron''' | |||
cron dikonfigurasi melalui entri dalam crontabfile. crontab file dipisahkan menjadi beberapa bidang: | 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 | *''m:'' menit saat perintah dijalankan, antara 0 dan 59 | ||
Baris 90: | Baris 88: | ||
*''command:'' perintah untuk dieksekusi. | *''command:'' perintah untuk dieksekusi. | ||
Untuk menambah atau mengubah entri dalam crontabfile, menggunakan perintah crontab -e. 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: | |||
Untuk menjalankan skrip backup.sh yang tercantum di atas menggunakan cron. Masukkan yang berikut ini dari prompt terminal: | $sudo crontab -e | ||
sudo crontab -e | |||
Tambahkan entri berikut ke crontabfile: | Tambahkan entri berikut ke crontabfile: | ||
Baris 107: | Baris 99: | ||
0 0 * * * bash /usr/local/bin/backup.sh | 0 0 * * * bash /usr/local/bin/backup.sh | ||
Script backup.sh akan dieksekusi setiap hari pukul 12.00 WIB. | |||
'''Memulihkan dari Arsip''' | '''Memulihkan dari Arsip''' | ||
Baris 121: | Baris 107: | ||
Untuk melihat daftar isi arsip. Dari tipe prompt terminal: | Untuk melihat daftar isi arsip. Dari tipe prompt terminal: | ||
tar -tzvf /mnt/backup/host-Monday.tgz | 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 | tar -xzvf /mnt/backup/host-Monday.tgz -C /tmp etc/hosts | ||
parameter -C berfungsi untuk mengarahakn file yang di ekstrak ke direktory tertentu. Contoh di atas akan mengekstrak /etc/hostsfile ke /tmp/etc/hosts. tar membuat ulang struktur direktori yang dikandungnya. | |||
Untuk mengembalikan semua file dalam arsip masukkan yang berikut ini: | Untuk mengembalikan semua file dalam arsip masukkan yang berikut ini: | ||
Baris 133: | Baris 117: | ||
cd / | cd / | ||
sudo tar -xzvf /mnt/backup/host-Monday.tgz | sudo tar -xzvf /mnt/backup/host-Monday.tgz | ||
Ini akan menimpa file yang saat ini ada di sistem file. | 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 terkini sejak 21 Maret 2021 15.36
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="/var/www" # Where to backup to. dest="/home/User/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 Sebelum menjalankan perintah backup.sh terlebih dahulu memberikan attribud file tersebut dengan perintah sebagai berikut.
chmod u+x backup.sh
hal ini di perlukan supaya file backup.sh dapat di eksekusi.
Kemudian dari terminal ketikkan perintah berikut untuk mulai menjalankan script backup.sh:
sudo ./backup.sh
perintah tersebut berfungsi untuk menjalankan backup.sh sekaligus untuk menguji apakan script sudah bisa berjalan dengan baik apa belum.
Mengeksekusi script backup.sh 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, menggunakan perintah crontab -e. 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
Tambahkan entri berikut ke crontabfile:
m h dom mon dow command 0 0 * * * bash /usr/local/bin/backup.sh
Script backup.sh akan dieksekusi setiap hari pukul 12.00 WIB.
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
parameter -C berfungsi untuk mengarahakn file yang di ekstrak ke direktory tertentu. Contoh di atas akan mengekstrak /etc/hostsfile ke /tmp/etc/hosts. tar membuat ulang struktur direktori yang dikandungnya.
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.