Products & Services Submit a ticket My Tickets
Selamat datang
Masuk  Mendaftar

Panduan Backup database dan source code pada VPS anda menggunakan shell script

Tutorial Backup Database PostgreSQL

untuk hal ini, silahkan buat shell script dengan nama backup_script.sh (ketik vim backup_script.sh)

#!/bin/bash
# Location to place backups.
backup_dir="/home/globalway/Dropbox/"
#String to append to the name of the backup files
backup_date=`date +%d-%m-%Y`
#Numbers of days you want to keep copie of your databases
number_of_days=30
databases=`PGPASSWORD="xxxxx" psql -l -t -U 'xxxx' | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`
for i in $databases; do
if [ "$i" == "prpo_production" ]; then
echo Dumping $i to $backup_dir$i\_$backup_date
PGPASSWORD="xxxxx" pg_dump -Fc -U 'xxxx' $i > $backup_dir$i\_$backup_date
fi
done
find $backup_dir -type f -prune -mtime +$number_of_days -exec rm -f {} \;


pastikan anda menyesuaikan dan mengganti tulisan yang tebal. script diatas akan melakukan / menyimpan backup 30 hari terakhir saja.

backup_dir : tempat dimana file database akan disimpan
PGPASSWORD : password user database
-U : username database yang digunakan
number_of_days : di isi bebas, default adalah 30 hari yang artinya script akan melakukan backup 30 hari terakhir saja, selebihnya akan terhapus otomatis.

setelah backup_script.sh tersimpan pada /root/backup_script.sh
hal selanjutnya adalah membuat cronjob agar file backup selalu di running setiap hari.
ketik crontab -e dan masukan syntax dibawah ini

0 18 * * * /root/backup_script.sh  >> /root/cron.log 2>&1

maka backup_script.sh akan running setiap hari pada pukul 6 malam. untuk log nya bisa dilihat di /root/cron.log

Tutorial Backup Database MySQL / MariaDB

silahkan buat shell script dengan nama backup_script.sh (ketik vim backup_script.sh)

#!/bin/sh
now="$(date +'%d_%m_%Y_%H_%M_%S')"
filename="db_backup_$now".gz
backupfolder="/root/database"
fullpathbackupfile="$backupfolder/$filename"
logfile="$backupfolder/"backup_log_"$(date +'%Y_%m')".txt
echo "mysqldump started at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
mysqldump --user=root --password=xxxx --default-character-set=utf8 nama_database | gzip > "$fullpathbackupfile"
echo "mysqldump finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
chown root "$fullpathbackupfile"
chown root "$logfile"
echo "file permission changed" >> "$logfile"
find "$backupfolder" -name db_backup_* -mtime +8 -exec rm {} \;
echo "old files deleted" >> "$logfile"
echo "operation finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
echo "*****************" >> "$logfile"
exit 0


tulisan tebal silahkan disesuaikan dengan kondisi vps masing-masing termasuk user dan passwordnya.
script diatas akan menyimpan database yg terbakup selama kurang lbh 10 hari kebelakang, selebihnya akan terhapus otomatis.

letakan backup_script.sh pada /root/backup_script.sh
buatlah cronjob untuk running script diatas setiap hari dengan cara ketik crontab -e dan masukan syntax dibawah ini:


0 0 * * * /root/backup_script.sh >> /root/backup_database.log 2>&1

maka script tersebut akan di running setiap hari pukul 00:00, untuk log dapat dilihat di /root/backup_database.log

Apakah jawaban ini bermanfaat? Ya Tidak

Send feedback
Maaf kami tidak bisa membantu. Bantu kami mengembangkan artikel ini dengan umpan balik Anda.