16 February 2020

Bash Script: Simple Backup Script


Jom buat simple bash script utk backup fail/folder dkt linux korang. Aku xnk buat full backup. Just nak backup benda penting2 je..mcm fail2 yang mgkin akan berubah dari masa kesemasa or aku edit tp terlupa plak nk buat backup dulu. Selalu terkena nie..uhuhu

Plan aku:

Simpan backup dekat sini: /root/backup
Nama fail backup tue nnt set: hostname-tahun-bulan-hari.tgz

[A list of date command format codes rujuk: https://www.cyberciti.biz/faq/unix-linux-getting-current-date-in-bash-ksh-shell-script/]

Script nie simple je, save as: /root/backup.sh

Ok nie script dia....



#!/bin/bash
###################
## Backup Script ##
###################

# What to backup.
backup_files1="/etc/letsencrypt/live"
backup_files2="/etc/nginx"
backup_files3="/etc/hostname"
backup_files4="/etc/hosts"
backup_files5="/etc/rc.local"
backup_files6="/etc/sysctl.conf"
backup_files7="/usr/share/iptables"
backup_files8="/var/spool/cron/crontabs/root"

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

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

# Print start status message.
echo "Backing up $backup_files1 to $dest/$archive_file"
echo "Backing up $backup_files2 to $dest/$archive_file"
echo "Backing up $backup_files3 to $dest/$archive_file"
echo "Backing up $backup_files4 to $dest/$archive_file"
echo "Backing up $backup_files5 to $dest/$archive_file"
echo "Backing up $backup_files6 to $dest/$archive_file"
echo "Backing up $backup_files7 to $dest/$archive_file"
echo "Backing up $backup_files8 to $dest/$archive_file"
date
echo

# Backup the files using tar.
tar fczP $dest/$archive_file $backup_files1 $backup_files2 $backup_files3 $backup_files4 $backup_files5 $backup_files6 $backup_files7 $backup_files8

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

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


nie aku set ade 8 lokasi nk backup..korang bleh laa edit ikut kehendak korang..simple je nie, xde fungsi siap email backup, alert klu ade prblem..xde2..keep it simple.

Bila run dia jadi mcm nie:


Ok g check backup ade ke tak?

 Cun!


Nnt jgn lupe chmod +x dan set dkt cron, aku nk backup setiap 1hb bulan, sekali je
so dlm cron letak, 0 0 1 * * /root/backup.sh

Nak set masa cron, bleh rujuk : https://crontab.guru/every-month

No comments:

Post a Comment