Привожу скрипт для бекапа с комментариями.
Для архивирования бекапов используется многопоточный архиватор pigz а так же Cygwin.
Для архивирования бекапов используется многопоточный архиватор pigz а так же Cygwin.
#!/bin/bash
#Shared Variables
backup_date=`date +'%y%m%d'`
backup_dir="/cygdrive/c/Temp/test_svn_backup"
backup_dir_unix=`cygpath -u "$backup_dir"`
# Mysql Function
fn_mysql() {
mysql_root="root"
mysql_password="root"
echo "Starting export MySQL ..."
# получаем список баз mySQL и бекапим все, кроме information
mysql -u"$mysql_root" -p"$mysql_password" --protocol tcp -s -N -e "show databases;"| grep -v information | while read line;do
echo Backing up mysql schema: $line
mysqldump $line -u"$mysql_root" -p"$mysql_password" --protocol tcp | pigz -f -9 > $backup_dir_unix/mysql_"$line"_"$backup_date".tgz
done
}
#End MySQL
# Postrges Function
fn_postgres() {
# экспортируем в переменные окружения имя пользователя и пароль.
export PGUSER=postgres
export PGPASSWORD=postgres
postgres_bin="/cygdrive/c/Program Files/PostgreSQL/8.3/bin"
psql_tool="/cygdrive/c/Program Files/PostgreSQL/8.3/bin/psql.exe"
cd "$postgres_bin"
echo "Starting Postgres backup ..."
# получаем список баз делаем Vacuum и бекапим все
./psql -l -t -q |awk {'print $1'}| sed '/^$/d' | while read line; do
echo "Vacuuming DB: " $line ..
./vacuumdb.exe $name
echo "Backing up DB: " $line ..
./pg_dump $line | pigz -f -9 > $backup_dir_unix/PSQL_"$line"_"$backup_date".tgz
done
}
#End Postgres
# SVN Function
# -------------------------------
fn_svn() {
svn_repo="/cygdrive/c/Program Files/BitNami Redmine Stack/subversion/repos"
svnadmin_tool="/cygdrive/c/Program Files/BitNami Redmine Stack/subversion/bin/svnadmin.exe"
cd "$svn_repo"
# идем в репозитарии, т.к имя директории совпадает с именем репозитория пробегаемся по всем и бекапим
ls | while read line; do
echo Backing up Repository: $line
"$svnadmin_tool" dump $line | pigz -f -9 > $backup_dir_unix/Repo_"$line"_"$backup_date".tgz
done
}
#End SVN
# MAIN BODY
# Выбираем что будем бекапить
fn_postgres
fn_svn
fn_mysql
Если статья была вам полезна - кликните на баннер или кнопку Donate :)
Комментариев нет:
Отправить комментарий