Project

General

Profile

Скрипты в помощь администратору

Мы благодарим всех, кто помогал нам! Поскольку каждый скрипт мог проходить через много «рук», то мы пока не знаем, как корректно сформировать список наших благодарностей и ссылок на источники. Есть предложения, замечания — напишите, мы не оставляем почту без внимая. Адрес —

Хотите поделить своим скриптом — присылайте. Для указания авторства, напишите, пожалуйста, как Вас представить.

Backup MySQL

При использовании обращаем внимание на:

  • shell — в первой строке, здесь bash
  • rDir — Каталог с дампами. Пример создания есть в шапке скрипта
  • uName, uPass — от имени какого пользователя выполняется. Например, есть пользователь, которому доступны ВСЕ базы на серваке, но только по чтению.
  • Имена схем для архивирования сознательно прописаны в явном виде. Пока так, поскольку название зависит от админа и от других вещей, например — ограничений по длине
  • Владелец архивов — пользователь gf
  • Права на каталог — 750, на файлы — 440
#!/bin/bash
#
#       Предполагаемый каталог для дампов - mkdir -p /var/backups/mysql/docero
#       С правами - chmod 750 /var/backups/mysql/docero
#       И от имени нашего пользователя - chown gf:gf /var/backups/mysql/docero
#
#       Требуются программы - gzip, zcat
#
cTime=`date '+%Y%m%d-%H%M%S'`
rDir=/var/backups/mysql/docero

#       Пользователь и пароль для доступа к MySQL
uName="root" 
uPass="" 

#       Если запуск ночью, то можно включить проверку. Пример для ВСЕХ баз.
#
#       mysqlcheck -u ${uName} -h localhost -s -e -1 -A --pass=${uPass}
#

mysqldump -F --opt -B docero_012050 -h localhost -u ${uName} --pass=${uPass} \                  
        |gzip -9c >${rDir}/docero_content.${cTime}.sql.gz                                       
mysqldump -F --opt -B docero -h localhost -u ${uName} --pass=${uPass} \                         
        |gzip -9c >${rDir}/docero.${cTime}.sql.gz                                               

chmod 440 \                                                                                         
        ${rDir}/docero_content.${cTime}.sql.gz \                                                
        ${rDir}/docero.${cTime}.sql.gz                                                          

#                                                                                                   
#       Как восстановить, пример:                                                                   
#                                                                                                   
#       su - gf  -c "asadmin stop-domain domain1"                                                   
#       echo "drop database docero_0120509 ;" |mysql -u root --pass=ПАРОЛЬ                      
#       echo "drop database docero ;" |mysql -u root --pass=ПАРОЛЬ                              
#       zcat "docero_content.НУЖНОЕ_ВРЕМЯ.sql.gz" |mysql -u root --pass=ПАРОЛЬ                  
#       zcat "docero.НУЖНОЕ_ВРЕМЯ.sql.gz" |mysql -u root --pass=ПАРОЛЬ                          
#       su - gf  -c "asadmin start-domain domain1" 
#

Старт/стоп/статус для FreeBSD

Создадим стартовый скрипт для GlassFish (взят отсюда http://freebie.miraclenet.co.th/server/fbsd_glassfish.html и немного исправлен)

  • shell — /bin/sh
  • пользователь — gf
#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/jail,v 1.43.2.1 2009/08/03 08:13:06 kensmith Exp $
#

# PROVIDE: glassfish
# REQUIRE: LOGIN cleanvar sshd mysqld
# KEYWORD: shutdown

# WARNING: This script deals with untrusted data (the data and
# processes inside the jails) and care must be taken when changing the
# code related to this!  If you have any doubt whether a change is
# correct and have security impact, please get the patch reviewed by
# the FreeBSD Security Team prior to commit.

. /etc/rc.subr

name="glassfish" 

rcvar=`set_rcvar`
start_cmd="glassfish_start" 
stop_cmd="glassfish_stop" 
glassfish_user=gf
glassfish_admin=/home/${glassfish_user}/glassfish/bin/asadmin
glassfish_passwordfile=/home/${glassfish_user}/glassfish/config/password.txt

glassfish_start()
{
        echo 'Starting glassfishi domains:'
        for _glassfish_domain in ${glassfish_domains}
        do
                /usr/bin/su -l ${glassfish_user} -c "${glassfish_admin} start-domain ${_glassfish_domain}" 
        done
        echo '.'

        echo 'Start glassfish nodeagents:'
        for _glassfish_nodeagent in ${glassfish_nodeagents}
        do
                /usr/bin/su -l ${glassfish_user} -c "${glassfish_admin} start-node-agent --user admin --passwordfile ${glassfish_passwordfile} ${_glassfish_nodeagent}" 
        done
        echo '.'
}

glassfish_stop()
{
        echo 'Stopping glassfish:'

        echo 'Stop glassfish nodeagents:'
        for _glassfish_nodeagent in ${glassfish_nodeagents}
        do
                /usr/bin/su -l ${glassfish_user} -c "${glassfish_admin} stop-node-agent ${_glassfish_nodeagent}" 
        done
        echo '.'

        echo 'Stop glassfish domains:'
        for _glassfish_domain in ${glassfish_domains}
        do
                /usr/bin/su -l ${glassfish_user} -c "${glassfish_admin} stop-domain ${_glassfish_domain}" 
        done
        echo '.'
}

glassfish_status()
{
        /usr/bin/su -l ${glassfish_user} -c "${glassfish_admin} list-domains" 
        /usr/bin/su -l ${glassfish_user} -c "${glassfish_admin} list-node-agents" 
}

load_rc_config $name
cmd="$1" 

case "${cmd}" in
status | onestatus)
        glassfish_status
        ;;
*)
        run_rc_command "${cmd}" 
        ;;
esac

делаем его исполняемым и переносим в каталог /usr/local/etc/rc.d/

chmod u+x glassfish
mv ./glassfish /usr/local/etc/rc.d/

добавляем в /etc/rc.conf строки
glassfish_enable=”YES”
glassfish_domains="domain1"

стартуем домен командой /usr/local/etc/rc.d/glassfish start (также доступны команды stop, restart, status)