DenisVS

Рейтинг
644
Регистрация
01.05.2010
Sanu0074:
задача стоит в том чтобы сервер работал пару часов

Таких не бывает. Точнее, есть в природе, но это уже не SOHO, а промышленность. Любой ИБП максимум 50 минут, чаще 10-20.

Разъёмы для защиты телефона/LAN от перенапряжения. Там простой разрядник.

Пример подходящего вам блока — Ippon Smart Winner 1000. Там как раз и разъёмчик такой имеется. Але є одне "але": он уже не выпускаеся, и проработает с вашей аппаратурой около получаса.

Не жрут ваши компьютеры 750 и 1150, не беспокойтесь. Сервачок, если без видео, ватт 100 кушает. Игровой 150-300 в зависимости от режима.

Ctrl+Shift+Esc

И по вкладкам…

inst-a:
с трудом представляю как обучить секретаршу, ответственную за сайт работе с drush

Что за тупизм?

Дописал скрипт полного бэкапа по сценарию.

Абсолютные пути для FreeBSD, вдумчиво переделываются под Linux.

Подключаем внешний или сетевой диск, # gbackup и ждём…

#!/bin/sh

# $Id: gbackup 9 2015-05-21 19:11:33Z denis $
##### Скрипт общего бэкапа
# Конфигурационные файлы разместить в /usr/home/<user>/.config/gbackup
# Основной файл скрипта разместить в /usr/sbin, сделать исполняемым
# files_common.txt — общий бэкап, новый подменяет старый
# files_unic.txt — уникальный бэкап, новый пишется с другой версией по времени
# Формат конфигов: /полный/путь/до/директории|субдиректория_группа,
# Копируется именно последняя директория пути в субдиректорию
# Решётка отключает строку
# gbackup.conf содержит настройки в формате ИМЯ_ПАРАМЕТРА=ЗНАЧЕНИЕ
# MEDIA_PATH=/mnt/flash путь к смонтированному носителю
# На носителе создаётся структура:
# <mountpoint>/BACKUP/UNIC/<time>
# <mountpoint>/BACKUP/COMMON
# <mountpoint>/BACKUP/COMMON_BAK
# Перед началом COMMON переименовывается в COMMON_BAK
# В процессе, после копирования директории в COMMON, старая версия удаляется из COMMON_BAK
# @TODO Сделать опциональное архивирование

DATE=`date "+%Y%m%d_%H%M"`
COMMENT1=$1
COMMENT2=$2
#echo ${COMMENT2}
#echo ${COMMENT1}
SAVEIFS=$IFS # устанавливаем разделитель строк
IFS='
'
MEDIA_PATH=`/bin/cat ~/.config/gbackup/gbackup.conf | /usr/bin/grep MEDIA_PATH | /usr/bin/awk -F= '{print $2}'`
# Преобразуем переносы Windows, сливаем во временный файл
/bin/cat ~/.config/gbackup/files_unic.txt | sed -e 's/'"`printf '\015'`"'$//' > /tmp/${DATE}.unic
FILES_UNIC_LIST=`/bin/cat /tmp/${DATE}.unic | /usr/bin/grep -v \# | /usr/bin/grep \/ | sort -u`
rm -f /tmp/${DATE}.unic
# Преобразуем переносы Windows, сливаем во временный файл
/bin/cat ~/.config/gbackup/files_common.txt | sed -e 's/'"`printf '\015'`"'$//' > /tmp/${DATE}.common
FILES_COMMON_LIST=`/bin/cat /tmp/${DATE}.common | /usr/bin/grep -v \# | /usr/bin/grep \/ | sort -u`
rm -f /tmp/${DATE}.common

BACKUP_PATH_EXIST=`/bin/ls -l ${MEDIA_PATH} | grep BACKUP | awk '{print $9}'`
if [ "${BACKUP_PATH_EXIST}" = "" ]; then
echo Директория BACKUP отсутствует, создаём.
/bin/mkdir -p ${MEDIA_PATH}/BACKUP
fi

COMMON_PATH_EXIST=`/bin/ls -l ${MEDIA_PATH}/BACKUP | grep COMMON | grep -v COMMON_BAK | awk '{print $9}'`
if [ "${COMMON_PATH_EXIST}" = "" ]; then
echo Директория COMMON отсутствует, создаём.
/bin/mkdir -p ${MEDIA_PATH}/BACKUP/COMMON
fi
if [ "${COMMON_PATH_EXIST}" = "COMMON" ]; then
echo Директория COMMON присутствует.

COMMON_BAK_PATH_EXIST=`/bin/ls -l ${MEDIA_PATH}/BACKUP | grep COMMON_BAK | awk '{print $9}'`
if [ "${COMMON_BAK_PATH_EXIST}" = "COMMON_BAK" ]; then
echo Директория COMMON_BAK присутствует, удаляем.
/bin/rm -rf ${MEDIA_PATH}/BACKUP/COMMON_BAK
fi
echo Переименовываем COMMON в COMMON_BAK.
mv ${MEDIA_PATH}/BACKUP/COMMON ${MEDIA_PATH}/BACKUP/COMMON_BAK
#Строка выше просто переименовывает, а ниже переносит всё из одной директории в другую. На кой сочинял, не знаю
#find ${MEDIA_PATH}/BACKUP -name 'COMMON' -print0 | xargs -0 -J % mv % ${MEDIA_PATH}/BACKUP/COMMON_BAK
echo Создаём новую COMMON
/bin/mkdir -p ${MEDIA_PATH}/BACKUP/COMMON
fi
UNIC_PATH_EXIST=`/bin/ls -l ${MEDIA_PATH}/BACKUP | grep UNIC | awk '{print $9}'`
if [ "${UNIC_PATH_EXIST}" = "" ]; then
echo Директория UNIC отсутствует, создаём.
/bin/mkdir -p ${MEDIA_PATH}/BACKUP/UNIC
fi
/bin/mkdir -p ${MEDIA_PATH}/BACKUP/UNIC/${DATE} # Создаём директорию с именем "дата время"



for DIR_UNIC in ${FILES_UNIC_LIST}; do
echo ---------------------------------------------------------
DIR_UNIC_SOURCE=`echo ${DIR_UNIC} | awk -F\| '{print $1}'`
DIR_UNIC_SUBDIR=`echo ${DIR_UNIC} | awk -F\| '{print $2}'`
echo ${DIR_UNIC_SOURCE} \=\> ${DIR_UNIC_SUBDIR}
UNIC_SUBDIR_EXIST=0 # сбасываем маркер наличия директории
UNIC_SUBDIR_EXIST_LIST=`/bin/ls ${MEDIA_PATH}/BACKUP/UNIC/${DATE}/` #Список имеющихся директорий

for CURRENT_UNIC_SUBDIR in ${UNIC_SUBDIR_EXIST_LIST}; do
echo CURRENT_UNIC_SUBDIR=${CURRENT_UNIC_SUBDIR}
if [ "${CURRENT_UNIC_SUBDIR}" = "${DIR_UNIC_SUBDIR}" ]; then
echo "Директория ${DIR_UNIC_SUBDIR} найдена!"
UNIC_SUBDIR_EXIST=1
break 1
fi
done
if [ "${UNIC_SUBDIR_EXIST}" = "0" ]; then
echo Директория ${DIR_UNIC_SUBDIR} отсутствует, создаём.
/bin/mkdir -p ${MEDIA_PATH}/BACKUP/UNIC/${DATE}/${DIR_UNIC_SUBDIR}
fi
echo Копирование ${DIR_UNIC_SOURCE}
/bin/cp -Rfx "${DIR_UNIC_SOURCE}" ${MEDIA_PATH}/BACKUP/UNIC/${DATE}/${DIR_UNIC_SUBDIR}
done


for DIR_COMMON in ${FILES_COMMON_LIST}; do
echo ---------------------------------------------------------
DIR_COMMON_SOURCE=`echo ${DIR_COMMON} | awk -F\| '{print $1}'` # Полный путь копируемой директории
BACKUP_SUBDIR=`echo ${DIR_COMMON_SOURCE} | awk -F \/ '{print $NF}'` # Копируемая директория (относительная)
DIR_COMMON_SUBDIR=`echo ${DIR_COMMON} | awk -F\| '{print $2}'` # Субдиректория-группа, в которую копируются директории.
echo "Копируемая директория " ${BACKUP_SUBDIR}
echo DIR_COMMON_SUBDIR субдиректория-группа,куда копируются директории:
echo ${DIR_COMMON_SOURCE} \=\> ${DIR_COMMON_SUBDIR}
COMMON_SUBDIR_EXIST=0 # сбасываем маркер наличия директории
COMMON_SUBDIR_EXIST_LIST=`/bin/ls ${MEDIA_PATH}/BACKUP/COMMON/` #Список имеющихся директорий

for CURRENT_COMMON_SUBDIR in ${COMMON_SUBDIR_EXIST_LIST}; do
echo CURRENT_COMMON_SUBDIR=${CURRENT_COMMON_SUBDIR}
if [ "${CURRENT_COMMON_SUBDIR}" = "${DIR_COMMON_SUBDIR}" ]; then
echo "Директория ${DIR_COMMON_SUBDIR} найдена!"
COMMON_SUBDIR_EXIST=1
break 1
fi
done
if [ "${COMMON_SUBDIR_EXIST}" = "0" ]; then
echo Директория ${DIR_COMMON_SUBDIR} отсутствует, создаём.
/bin/mkdir -p ${MEDIA_PATH}/BACKUP/COMMON/${DIR_COMMON_SUBDIR}
fi
echo Копирование ${DIR_COMMON_SOURCE}
/bin/cp -Rfx "${DIR_COMMON_SOURCE}" ${MEDIA_PATH}/BACKUP/COMMON/${DIR_COMMON_SUBDIR}
# Берём текущий путь бэкапа COMMON и трансформируем в COMMON_BAK
CURRENT_COMMON_BAK_SUBDIR=`echo ${MEDIA_PATH}/BACKUP/COMMON/${DIR_COMMON_SUBDIR} | sed 's/\/BACKUP\/COMMON\//\/BACKUP\/COMMON_BAK\//g'`
CURRENT_COMMON_BAK_SUBDIR=`echo ${CURRENT_COMMON_BAK_SUBDIR}/${BACKUP_SUBDIR}` # Удалить надо это!
echo Удаляем из предыдущего бэкапа: ${CURRENT_COMMON_BAK_SUBDIR}
/bin/rm -rf ${CURRENT_COMMON_BAK_SUBDIR}
done
IFS=$SAVEIFS # Возвращаем разделитель строк

# $Id: files_common.txt 9 2015-05-21 19:11:33Z denis $

# Общий бэкап, новый подменяет старый
/etc|config_etc
/usr/local/etc|config
/usr/home/denis/.config/deadbeef|config
/usr/home/denis/.netbeans|config
/usr/home/denis/.baresip|config
/usr/home/denis/.config/ssh|config
/usr/home/denis/.config/lxpanel|config
/usr/home/denis/.config/mc|config
/usr/home/denis/.config/openbox|config
/usr/home/denis/.config/xfe|config
/usr/home/denis/.kde4/share/apps/krusader|config
/usr/home/denis/.claws-mail|data
/usr/home/denis/.mucommander|config
/usr/home/denis/.purple|data
/usr/home/denis/.Skype|config
/usr/home/denis/.config/geany|config

/usr/home/denis/Store/BACKUP/sites/dev|backup
/usr/home/denis/Store/BACKUP/sites/current|backup
/usr/home/denis/Store/CDimg|backup
/usr/home/denis/Store/soft|backup
#/usr/home/denis/Store/Музыка|data

# $Id: files_unic.txt 9 2015-05-21 19:11:33Z denis $

# Уникальный бэкап, новый пишется с другой версией по времени
/usr/home/denis/.thunderbird|data
/usr/home/denis/Desktop|data
/home/denis/Documents|data
/usr/home/denis/.avatars|data
/usr/home/denis/Mail|data
/usr/home/denis/NetBeansProjects|data
/usr/home/denis/.ssh|data
/usr/home/denis/.mozilla|data

# $Id: gbackup.conf 9 2015-05-21 19:11:33Z denis $

SOME_PARAM=somevalue
MEDIA_PATH=/mnt/flash

Не могу сейчас найти очень наглядное видео, как два разработчика ставят и настраивают сайт с нуля в реальном времени. Один через web интерфейс, другой с помощью drush. Первый ходит по ссылкам, скачивает, переключает окна/вкладки, ждёт после каждого клика а второй набрал несколько команд и сидит довольный.

Комрады, кто начал пользовать Drupal. Сразу ставьте и осваивайте drush, заметно облегчает и ускоряет манипуляции.

С таким подходом быстрее и практичнее купить железку и нанять админа для настройки.

Andrei_IW, не обижайтесь, у вас каша в голове.

Любой роутер *nix-based, т.е. консоль. Но у многих промышленных изделий есть веб-интерфейс.

По поводу конкретно Mikrotik:

Webfig

Winbox

Покупайте и не парьте мозг.

Кстати, эту RouterOS я ставил на древнючий тазик Pentium1, достойный помойки, и он тоже великолепно управлялся GUI из-под Windows, прикиньте. Т.е. при желании можно ничего не покупать, а собрать из гамна и палок.

Andrei_IW, а вы щупали Микротик? Там в комплекте GUI под Windows идёт.

Вчера наткнулся (можно с SQLite использовать) http://s2cms.ru/

Демо панели admin:admin http://demo.s2cms.ru/_admin/

Всего: 14528