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 filesbackup_date=`date +%d-%m-%Y`#Numbers of days you want to keep copie of your databasesnumber_of_days=30databases=`PGPASSWORD="xxxxx" psql -l -t -U 'xxxx' | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`for i in $databases; doif [ "$i" == "prpo_production" ]; thenecho Dumping $i to $backup_dir$i\_$backup_datePGPASSWORD="xxxxx" pg_dump -Fc -U 'xxxx' $i > $backup_dir$i\_$backup_datefidonefind $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 ini0 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/shnow="$(date +'%d_%m_%Y_%H_%M_%S')"filename="db_backup_$now".gzbackupfolder="/root/database"fullpathbackupfile="$backupfolder/$filename"logfile="$backupfolder/"backup_log_"$(date +'%Y_%m')".txtecho "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