!/bin/bash
Variabel
DB_USER=”bani”
DB_NAME=”vendoretail”
BACKUP_DIR=”/path/to/backup”
DATE=$(date +\%Y\%m\%d)
Buat direktori backup jika belum ada
mkdir -p “$BACKUP_DIR”
Proses backup
pg_dump -U $DB_USER -d $DB_NAME > “$BACKUP_DIR/${DB_NAME}_$DATE.sql”
Hapus file backup yang lebih tua dari 7 hari
find “$BACKUP_DIR” -type f -name “${DB_NAME}_*.sql” -mtime +7 -exec rm {} \;
LOG_FILE=”/path/to/backup.log”
Log hasil
{
echo “Backup started at $(date)”
pg_dump -U $DB_USER -d $DB_NAME > “$BACKUP_DIR/${DB_NAME}_$DATE.sql”
echo “Backup completed at $(date)”
echo “Old backups deleted at $(date)”
} >> “$LOG_FILE” 2>&1
beri akses file sh
chmod +x /path/to/backup_pgsql.sh
add cron
crontab -e
0 6 * * * /path/to/backup_pgsql.sh
