Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ```
- #!/bin/bash
- HOSTNAME=""
- USERNAME=""
- PASSWORD=""
- DATABASE=""
- # mysql or postgresql
- SERVER_TYPE="postgresql"
- BACKUP_DIR="/tmp/backup"
- DAYS_TO_KEEP=7
- export PGPASSWORD="$PASSWORD"
- function init() {
- if [[ ! -d $BACKUP_DIR ]]; then
- echo
- echo "The directory $BACKUP_DIR not found!"
- echo
- exit 1
- else
- for (( i = 0; i < $DAYS_TO_KEEP; i++ )); do
- if [[ ! -d "$BACKUP_DIR/$i" ]]; then
- mkdir "$BACKUP_DIR/$i"
- fi
- done
- fi
- }
- function perform_backup() {
- echo "perform backup!"
- if [[ ! -d "$BACKUP_DIR/0" ]]; then
- mkdir "$BACKUP_DIR/0"
- fi
- if [ "$SERVER_TYPE" == "mysql" ]; then
- elif [ "$SERVER_TYPE" == "postgresql" ]; then
- pg_dump --host=$HOSTNAME --port=5432 --username=$USERNAME --no-password $DATABASE | xz -c > $BACKUP_DIR/0/$DATABASE-prod-$(date +\%Y\%m\%d-\%H\%M).sql.xz
- fi
- }
- function remove_expired_backup() {
- echo "remove expired backups!"
- for (( i = $DAYS_TO_KEEP-1; i>=0; i-- )); do
- mv "$BACKUP_DIR/$i" "$BACKUP_DIR/$((i+1))"
- done
- rm -rf "$BACKUP_DIR/$DAYS_TO_KEEP"
- }
- function upload_to_qiniu() {
- if [ -d "$BACKUP_DIR/1" ]; then
- echo "upload!"
- fi
- }
- init
- remove_expired_backup
- perform_backup
- upload_to_qiniu
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement