Пример организации холодного резервного копирования и восстановления из архива.
Можно повесить на крон и прикрутить отправку лога по мэйлу. Минусы: сервер приходится останавливать, хотя время останова минимизировано и в основном уходит на останов - подъем, но это минус.
1) Запись в кроне:
20 01 * * * /opt/script/backup/backup_full.sh > /opt/script/backup/backup.log 2>&1
2) Текст скрипта:
#!/bin/bash
# Zimbra Backup Script
# This script is intended to run from the crontab as root
# Outputs the time the backup started, for log/tracking purposes
echo Time backup started = $(date +%T)
before="$(date +%s)"
# Live sync before stopping Zimbra to minimize sync time with the services down
# Comment out the following line if you want to try single cold-sync only
echo "Syncronize beafore backup ..."
rsync -aHK --delete /opt/zimbra/ /opt/backup/zimbra
# which is the same as: /opt/zimbra /opt/backup
# Including --delete option gets rid of files in the dest folder that don't exist at the src
# this prevents logfile/extraneous bloat from building up overtime.
# Now we need to shut down Zimbra to rsync any files that were/are locked
# whilst backing up when the server was up and running.
before2="$(date +%s)"
# Kill any orphaned Zimbra processes
echo "Kill any zimbra processes ..."
ORPHANED=`ps -u zimbra -o "pid="` && kill -9 $ORPHANED
echo Time after stop Zimbra services = $(date +%T)
# Sync to backup directory
echo "Syncronize to backup directory ..."
rsync -aHK --delete /opt/zimbra/ /opt/backup/zimbra
# Restart Zimbra Services
echo Time befor start Zimbra services = $(date +%T)
echo "Start zimbra services ..."
/etc/init.d/zimbra start
echo Time after start Zimbra services = $(date +%T)
# Calculates and outputs amount of time the server was down for
after="$(date +%s)"
elapsed="$(expr $after - $before2)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo Server was down for: "$hours hours $minutes minutes $seconds seconds"
# Create a txt file in the backup directory that'll contains the current Zimbra
# server version. Handy for knowing what version of Zimbra a backup can be restored to.
su - zimbra -c "zmcontrol -v > /opt/backup/zimbra/conf/zimbra_version.txt"
# or examine your /opt/zimbra/.install_history
# Display Zimbra services status
echo Displaying Zimbra services status...
su - zimbra -c "/opt/zimbra/bin/zmcontrol status"
# Create archive of backed-up directory for offsite transfer
echo "Create archive of backed-up directory for offsite transfer..."
rm /opt/zimbra.tar.gz
tar -zcf /opt/zimbra.tar.gz -C /opt/backup/zimbra .
# Transfer file to backup server
cd /opt
curl -T /opt/zimbra.tar.gz ftp://ftpserver
# Outputs the time the backup finished
echo Time backup finished = $(date +%T)
# Calculates and outputs total time taken
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo Time taken: "$hours hours $minutes minutes $seconds seconds"
3) Скрипт для восстановления (но лучше делать все ручками):
#!/bin/bash
# Move /opt/zimbra to new location i.e. /tmp/zimbra-old
mv /opt/zimbra /opt/zimbra.old
# Uncompress the most recent backup file to the /opt/zimbra foldertar zxvf [backup file] -C /opt/zimbra
mkdir /opt/zimbra
tar zxvf zimbra.tar.gz -C /opt/zimbra
# Fix the Zimbra permissions
chown -R zimbra:zimbra /opt/zimbra
/opt/zimbra/libexec/zmfixperms
# Start all Zimbra services
/etc/init.d/zimbra start
# Check Zimbra services status
su - zimbra -c "/opt/zimbra/bin/zmcontrol status"
Отличная статья, спасибо!
Возникла пара вопросов.
1) Используется протокол smtps, но порт 25?
2) Требуется ли при этом импорт сертификата почтового сервера в keystore? Если возможно, то осветите этот момент подробнее.
Спасибо!
Еще вопрос(ы):
1) квоты
отлаживаться проще на Вашем ящике (раз у Вас тоже есть 3 письма, которые не перенеслись)
2) Среди писем, которые не перенеслись могли быть шифрованные? Например, я столкнулся с письмами из лотуса, причем шифрованными ... Имеется ввиду, что письма слались абонентам, которые могут расшифровать, а Вы к примеру были в копии ...
Иными словами Вы эти письма нашли? Есть в них что-то общее и необычное?
Мы мигрировали с Oracle CS ... Вываливались теже ошибки что и у Вас ... установка данного параметра помогла добиться 100% миграции ... Напишите плз, если не сложно, удалось ли избавиться от ошибок?
И еще, скорее всего "лишнее", но все же: какие квоты на ящики у пользователей?
Я думал, что это очевидно.
Поэтому и не писал об этой мелочи. Увиличить можно через вэб интерфейс также.
Я вообще не заморачивался - при установке mxhero он продлагает увеличить до 250 МБайт вложения. Все-таки времена диалапа прошли.
Огромное спасибо за отклик и помощь. К сожалению, "до конца" и полностью разобраться с логами пока не удалось, но куда "копать" понятно, а это главное ...
Пока есть следущее:
1)Файл лога localhost_access_logнастраивается в /tomcat/conf/server.xml
2)Следующие логи настраиваются через /opt/alfresco/tomcat/conf/logging.properties:
4)Для файла solr.logчтобы перенастроить (в том числе указать директорию где будет размещен лог-файл) параметры нужно будет редактировать war файл, поскольку настройки, которые задаются в файле: /tomcat/work/Catalina/localhost/solr/WEB-INF/classes/log4j.properties каждый раз будут перезаписываться при рестарте системы именно из war файла.
Можно повесить на крон и прикрутить отправку лога по мэйлу. Минусы: сервер приходится останавливать, хотя время останова минимизировано и в основном уходит на останов - подъем, но это минус.
1) Запись в кроне:
20 01 * * * /opt/script/backup/backup_full.sh > /opt/script/backup/backup.log 2>&1
2) Текст скрипта:
#!/bin/bash
# Zimbra Backup Script
# This script is intended to run from the crontab as root
# Outputs the time the backup started, for log/tracking purposes
echo Time backup started = $(date +%T)
before="$(date +%s)"
# Live sync before stopping Zimbra to minimize sync time with the services down
# Comment out the following line if you want to try single cold-sync only
echo "Syncronize beafore backup ..."
rsync -aHK --delete /opt/zimbra/ /opt/backup/zimbra
# which is the same as: /opt/zimbra /opt/backup
# Including --delete option gets rid of files in the dest folder that don't exist at the src
# this prevents logfile/extraneous bloat from building up overtime.
# Now we need to shut down Zimbra to rsync any files that were/are locked
# whilst backing up when the server was up and running.
before2="$(date +%s)"
# Stop Zimbra Services
echo Time befor stop Zimbra services = $(date +%T)
echo "Stop zimbra services ..."
/etc/init.d/zimbra stop
sleep 20
# Kill any orphaned Zimbra processes
echo "Kill any zimbra processes ..."
ORPHANED=`ps -u zimbra -o "pid="` && kill -9 $ORPHANED
echo Time after stop Zimbra services = $(date +%T)
# Sync to backup directory
echo "Syncronize to backup directory ..."
rsync -aHK --delete /opt/zimbra/ /opt/backup/zimbra
# Restart Zimbra Services
echo Time befor start Zimbra services = $(date +%T)
echo "Start zimbra services ..."
/etc/init.d/zimbra start
echo Time after start Zimbra services = $(date +%T)
# Calculates and outputs amount of time the server was down for
after="$(date +%s)"
elapsed="$(expr $after - $before2)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo Server was down for: "$hours hours $minutes minutes $seconds seconds"
# Create a txt file in the backup directory that'll contains the current Zimbra
# server version. Handy for knowing what version of Zimbra a backup can be restored to.
su - zimbra -c "zmcontrol -v > /opt/backup/zimbra/conf/zimbra_version.txt"
# or examine your /opt/zimbra/.install_history
# Display Zimbra services status
echo Displaying Zimbra services status...
su - zimbra -c "/opt/zimbra/bin/zmcontrol status"
# Create archive of backed-up directory for offsite transfer
echo "Create archive of backed-up directory for offsite transfer..."
rm /opt/zimbra.tar.gz
tar -zcf /opt/zimbra.tar.gz -C /opt/backup/zimbra .
# Transfer file to backup server
cd /opt
curl -T /opt/zimbra.tar.gz ftp://ftpserver
# Outputs the time the backup finished
echo Time backup finished = $(date +%T)
# Calculates and outputs total time taken
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo Time taken: "$hours hours $minutes minutes $seconds seconds"
3) Скрипт для восстановления (но лучше делать все ручками):
#!/bin/bash
# Stop Zimbra Services
echo "Stop zimbra services ..."
/etc/init.d/zimbra stop
# Kill any orphaned Zimbra processes
echo "Kill any zimbra processes ..."
ORPHANED=`ps -u zimbra -o "pid="` && kill -9 $ORPHANED
# Move /opt/zimbra to new location i.e. /tmp/zimbra-old
mv /opt/zimbra /opt/zimbra.old
# Uncompress the most recent backup file to the /opt/zimbra foldertar zxvf [backup file] -C /opt/zimbra
mkdir /opt/zimbra
tar zxvf zimbra.tar.gz -C /opt/zimbra
# Fix the Zimbra permissions
chown -R zimbra:zimbra /opt/zimbra
/opt/zimbra/libexec/zmfixperms
# Start all Zimbra services
/etc/init.d/zimbra start
# Check Zimbra services status
su - zimbra -c "/opt/zimbra/bin/zmcontrol status"
Возникла пара вопросов.
1) Используется протокол smtps, но порт 25?
2) Требуется ли при этом импорт сертификата почтового сервера в keystore? Если возможно, то осветите этот момент подробнее.
Спасибо!
1) квоты
отлаживаться проще на Вашем ящике (раз у Вас тоже есть 3 письма, которые не перенеслись)
2) Среди писем, которые не перенеслись могли быть шифрованные? Например, я столкнулся с письмами из лотуса, причем шифрованными ... Имеется ввиду, что письма слались абонентам, которые могут расшифровать, а Вы к примеру были в копии ...
Иными словами Вы эти письма нашли? Есть в них что-то общее и необычное?
И еще, скорее всего "лишнее", но все же: какие квоты на ящики у пользователей?
Since Zimbra 5.0.6 the parameter has changed to zimbraMtaMaxMessageSize
Поэтому и не писал об этой мелочи. Увиличить можно через вэб интерфейс также.
Я вообще не заморачивался - при установке mxhero он продлагает увеличить до 250 МБайт вложения. Все-таки времена диалапа прошли.
Пока есть следущее:
1) Файл лога localhost_access_log настраивается в /tomcat/conf/server.xml
2) Следующие логи настраиваются через /opt/alfresco/tomcat/conf/logging.properties:
localhost.
manager.
host-manager.
catalina.
3) Логи приложений настраиваются через файлы log4j.properties, logging.properties в каталоге соответствующих приложений, размещаются в /opt/alfresco/tomcat/webapps/<application_name>/WEB-INF/classes/:
- /opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties настраивается: alfresco.log
- /opt/alfresco/tomcat/webapps/awe/WEB-INF/classes/log4j.properties настраивается: awe.log
- /opt/alfresco/tomcat/webapps/share/WEB-INF/classes/log4j.properties настраивается: share.log
- /opt/alfresco/tomcat/webapps/wcmqs/WEB-INF/classes/log4j.xml настраивается: webquickstart.log
4) Для файла solr.log чтобы перенастроить (в том числе указать директорию где будет размещен лог-файл) параметры нужно будет редактировать war файл, поскольку настройки, которые задаются в файле: /tomcat/work/Catalina/localhost/solr/WEB-INF/classes/log4j.properties каждый раз будут перезаписываться при рестарте системы именно из war файла.
Normal 0 false false false RU X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Обычная таблица"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";}