started pgsql backup script
This commit is contained in:
parent
a8af6cff54
commit
fcfeda8999
58
assets/pgsqlbackup.sh
Normal file
58
assets/pgsqlbackup.sh
Normal file
@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
# Simple script to backup postgresql databases
|
||||
|
||||
# Parent backup directory
|
||||
backup_parent_dir="/var/backups/postgresql"
|
||||
|
||||
# MySQL settings
|
||||
postgresql_user="root"
|
||||
postgresql_password="ROOTPASSWD"
|
||||
|
||||
# Read MySQL password from stdin if empty
|
||||
# if [ -z "${mysql_password}" ]; then
|
||||
# echo -n "Enter MySQL ${mysql_user} password: "
|
||||
# read -s mysql_password
|
||||
# echo
|
||||
# fi
|
||||
|
||||
# Check MySQL password
|
||||
echo exit | mysql --user=${mysql_user} --password=${mysql_password} -B 2>/dev/null
|
||||
if [ "$?" -gt 0 ]; then
|
||||
echo "MySQL ${mysql_user} password incorrect"
|
||||
exit 1
|
||||
else
|
||||
echo "MySQL ${mysql_user} password correct."
|
||||
fi
|
||||
|
||||
# Create backup directory and set permissions
|
||||
backup_date=`date +%Y_%m_%d_%H_%M`
|
||||
backup_dir="${backup_parent_dir}/${backup_date}"
|
||||
echo "Backup directory: ${backup_dir}"
|
||||
mkdir -p "${backup_dir}"
|
||||
chmod 644 "${backup_dir}"
|
||||
|
||||
# Get postgresql databases
|
||||
pgsql_databases=`echo 'show databases' | psql -h localhost -U postgres `
|
||||
|
||||
# Backup and compress each database
|
||||
for database in $mysql_databases
|
||||
do
|
||||
if [ "${database}" == "information_schema" ] || [ "${database}" == "performance_schema" ]; then
|
||||
additional_mysqldump_params="--skip-lock-tables --compact --no-autocommit "
|
||||
else
|
||||
additional_mysqldump_params=""
|
||||
fi
|
||||
echo "Creating backup of \"${database}\" database"
|
||||
mysqldump ${additional_mysqldump_params} --user=${mysql_user} --password=${mysql_password} ${database} | gzip > "${backup_dir}/${database}.sql.gz"
|
||||
chmod 644 "${backup_dir}/${database}.sql.gz"
|
||||
done
|
||||
|
||||
# compress the folder
|
||||
# tar -zcvf "${backup_dir}.tar.gz" "${backup_dir}"
|
||||
# rm -rf "${backup_dir}"
|
||||
|
||||
# Rotate backups
|
||||
# Delete files older than 30 days
|
||||
find $backup_parent_dir/ -type f -mtime +60 -delete;
|
||||
# Delete empty directories
|
||||
find $backup_parent_dir/ -type d -empty -delete;
|
Loading…
x
Reference in New Issue
Block a user