-
-
Save hoangclinh/f0e3f1d102e898f4ecd9edbc67d4e5c2 to your computer and use it in GitHub Desktop.
Revisions
-
igalic revised this gist
Mar 22, 2014 . 1 changed file with 23 additions and 20 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -15,19 +15,17 @@ run_as_zimbra() { chroot --userspec zimbra:zimbra / "${@}" } source ~zimbra/bin/zmshutil ; zmsetvars export PATH=${zimbra_home}/bin:$PATH:${zimbra_home}/libexec # global variables we'll use... store_backup=/opt/zbackup/store index_backup=/opt/zbackup/index config_backup=/opt/zbackup/config keystore_backup=/opt/zbackup/keystore mysql_backup=/opt/zbackup/mysql/mysql_dbs.sql.gz ldap_backup=/opt/zbackup/ldap # Parse options... case $1 in @@ -37,21 +35,21 @@ esac cp="rsync ${verbose} -HaS" ## step one, stop the world. /etc/init.d/zimbra stop ## restore mysql mkdir -p ~zimbra/backup/mysql_binlog/ run_as_zimbra mysql.server restart databases=( $( run_as_zimbra mysql --batch --skip-column-names -u root --password=${mysql_root_password} -e "show databases" \ | awk '!/(information|performance)_schema|mysql/{print $1}' ) ) for db in "${databases[@]}" ; do run_as_zimbra mysql ${verbose} --batch --skip-column-names -u root --password=${mysql_root_password} -e "drop database ${db};" sleep 0.1; done gunzip < ${mysql_backup} | run_as_zimbra mysql ${verbose} --quick --batch -u root --password=${mysql_root_password} run_as_zimbra mysql.server stop # restore ldap.. @@ -62,18 +60,23 @@ run_as_zimbra zmslapadd -c ${ldap_backup}/ldap-config.bak run_as_zimbra zmslapadd ${ldap_backup}/ldap.bak # Restore configurations.. rm ${verbose} -rf ${zimbra_home}/conf rm ${verbose} -rf ${zimbra_home}/.saveconfig ${cp} ${config_backup}/conf ${zimbra_home}/. # the following / after saveconfig is important ${cp} ${config_backup}/saveconfig/ ${zimbra_home}/.saveconfig # restore keystores ${cp} ${keystore_backup}/keystore ${zimbra_home}/mailboxd/etc/. ${cp} ${keystore_backup}/cacerts ${zimbra_home}/java/jre/lib/security/. zmlocalconfig -e zimbra_uid=$( id -u zimbra) zmlocalconfig -e mailboxd_keystore_password=1sGyXAm3j # Restore mail store # --delete delete extraneous files from dest dirs ${cp} --delete ${store_backup} ${zimbra_home}/. ${cp} --delete ${index_backup} ${zimbra_home}/. zmfixperms ${verbose} --extended -
igalic revised this gist
Mar 21, 2014 . 1 changed file with 32 additions and 19 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,5 +1,15 @@ #!/bin/bash # sources # https://wiki.zimbra.com/wiki/LDAP_data_import_export # http://wiki.zimbra.com/wiki/Mysql_Crash_Recovery # http://wiki.zimbra.com/wiki/CLI_zmvolume set -e # set limits as per zmslapadd ulimit -n 32768 ulimit -c unlimited ulimit -v unlimited # utility functions run_as_zimbra() { chroot --userspec zimbra:zimbra / "${@}" @@ -11,29 +21,31 @@ source ~zimbra/bin/zmshutil ; zmsetvars # global variables we'll use... store_backup=/opt/zimbra.restorable/store index_backup=/opt/zimbra.restorable/store config_backup=/opt/zimbra.restorable mysql_backup=/opt/zldapbackup ldap_backup=/opt/zldapbackup zimbra_path=/opt/zimbra configs=( conf .saveconfig jdk-1.7.0_45/jre/lib/security/cacerts jetty-distribution-7.6.12.v20130726/etc/keystore ) # Parse options... case $1 in -v|--verbose|--debug) verbose=--verbose esac cp="rsync ${verbose} -HaS" ### step one, stop the world. /etc/init.d/zimbra stop ## restore mysql mkdir -p ~zimbra/backup/mysql_binlog/ run_as_zimbra mysql.server restart databases=( $( run_as_zimbra mysql --batch --skip-column-names -u root --password=${mysql_root_password} -e "show databases" \ | awk '!/(information|performance)_schema/{print $1}' ) ) for db in "${databases[@]}" ; do run_as_zimbra mysql ${verbose} --batch --skip-column-names -u root --password=${mysql_root_password} -e "drop database ${db};" sleep 0.1; @@ -45,31 +57,32 @@ run_as_zimbra mysql.server stop # restore ldap.. rm ${verbose} -rf ~zimbra/data/ldap/config rm ${verbose} -rf ~zimbra/data/ldap/mdb run_as_zimbra mkdir -p ~zimbra/data/ldap/config ~zimbra/data/ldap/mdb/db ~zimbra/data/ldap/accesslog/db run_as_zimbra zmslapadd -c ${ldap_backup}/ldap-config.bak run_as_zimbra zmslapadd ${ldap_backup}/ldap.bak # Restore configurations.. for item in ${configs[@]} ; do rm ${verbose} -rf ${zimbra_path}/${item} ${cp} ${config_backup}/${item} ${zimbra_path}/${item} done zmlocalconfig -e zimbra_uid=$( id -u zimbra) zmlocalconfig -e mailboxd_keystore_password=1sGyXAm3j # Restore mail store rm ${verbose} -rf ${zimbra_path}/store ${cp} ${store_backup} ${zimbra_path}/. ${cp} ${index_backup} ${zimbra_path}/. zmfixperms ${verbose} --extended ## start /etc/init.d/zimbra restart # make sure compression is on for id in $( run_as_zimbra zmvolume -l | awk '/Volume id:/{print $3}' ) ; do run_as_zimbra zmvolume -e -id "${id}" -c true done -
igalic revised this gist
Mar 21, 2014 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,5 +1,5 @@ #!/bin/bash set -e # utility functions run_as_zimbra() { chroot --userspec zimbra:zimbra / "${@}" @@ -18,7 +18,7 @@ zimbra_path=/opt/zimbra/ configs=( conf .saveconfig java/jre/lib/security/cacerts mailboxd/etc/keystore ) cp="rsync ${verbose} -HaS" # Parse options... case $1 in -
igalic revised this gist
Mar 21, 2014 . 1 changed file with 10 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -16,7 +16,7 @@ mysql_backup=/opt/zldapbackup/ ldap_backup=/opt/zldapbackup/ zimbra_path=/opt/zimbra/ configs=( conf .saveconfig java/jre/lib/security/cacerts mailboxd/etc/keystore ) cp=rsync ${verbose} -HaS @@ -61,6 +61,15 @@ zmlocalconfig -e mailboxd_keystore_password=1sGyXAm3j # Restore mail store rm ${verbose} -rf ${zimbra_path}/store ${cp} ${store_backup}/store ${zimbra_path}/ ${cp} ${store_backup}/index ${zimbra_path}/ zmfixperms ${verbose} --extended ## start run_as_zimbra zmcontrol start # make sure compression is on... zmvolume -e -id 0 -c true zmvolume -e -id 1 -c true -
igalic created this gist
Mar 21, 2014 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,66 @@ #!/bin/bash # utility functions run_as_zimbra() { chroot --userspec zimbra:zimbra / "${@}" } export PATH=/opt/zimbra/bin:$PATH:/opt/zimbra/libexec source ~zimbra/bin/zmshutil ; zmsetvars # global variables we'll use... store_backup=/opt/zimbra.restorable/store config_backup=/opt/zimbra.restorable/ mysql_backup=/opt/zldapbackup/ ldap_backup=/opt/zldapbackup/ zimbra_path=/opt/zimbra/ configs=( conf .saveconfig java/jre/lib/security/cacerts ) cp=rsync ${verbose} -HaS # Parse options... case $1 in -v|--verbose|--debug) verbose=--verbose esac ## step one, stop the world. run_as_zimbra zmcontrol stop # restore mysql run_as_zimbra mysql.server restart databases=( $( run_as_zimbra mysql --batch --skip-column-names -u root --password=${mysql_root_password} -e "show databases" \ | awk '!/(information|performance)_schema|mysql/{print $1}' ) ) for db in "${databases[@]}" ; do run_as_zimbra mysql ${verbose} --batch --skip-column-names -u root --password=${mysql_root_password} -e "drop database ${db};" sleep 0.1; done run_as_zimbra mysql ${verbose} --batch -u root --password=${mysql_root_password} < "${mysql_backup}/mysql_dbs.sql" run_as_zimbra mysql.server stop # restore ldap.. rm ${verbose} -rf ~zimbra/data/ldap/config rm ${verbose} -rf ~zimbra/data/ldap/mdb run_as_zimbra mkdir -p ~zimbra/data/ldap/config ~zimbra/data/ldap/mdb/db run_as_zimbra zmslapadd -c ${ldap_backup}/ldap-config.bak run_as_zimbra zmslapadd ${ldap_backup}/ldap.bak # Restore configurations.. for item in ${configs[@]} ; do rm ${verbose} -rf ${zimbra_path}/${item} ${cp} ${config_backup}/${item} ${zimbra_path}/ done zmlocalconfig -e zimbra_uid=$( id -u zimbra) zmlocalconfig -e mailboxd_keystore_password=1sGyXAm3j # Restore mail store rm ${verbose} -rf ${zimbra_path}/store ${cp} ${store_backup}/store ${zimbra_path}/ zmfixperms ${verbose} --extended