для бэкапа файловой системы виртуальных машин я остановился на rdiff-backup
вот такой скриптик запускается по крону на родительском хосте
#!/bin/sh
# local dom0 host
HOST=zzzzzzz
# volume group
VG=vg00
# file containing volume names
LV=$1
# PID file
PID=/tmp/rdiff-backup-lv.pid
# remote path to backup server (requires SSH-RSA auth)
BACKUP_PATH=remote@xxxx.xxxx.com::/opt/remote-backups
# period to keep old backups
KEEP_BACKUPS_FOR=2W
echo "Backing up $LV from $VG"
SNAP=snap_$LV
if [ -f $PID ]; then
if [ `ps ax | grep \`cat $PID\`| grep $0 | wc -l` -eq 0 ]; then
echo "Previous run didn't end well; removing process $PID"
rm $PID
else
echo "Backup still runs, can't start another instance"
exit 1
fi
fi
echo $$ >$PID
(
if [ -e /dev/$VG/$SNAP ]; then
umount /mnt/snap
lvremove -f /dev/$VG/$SNAP
fi
if ! lvcreate --size 1G --snapshot --name $SNAP /dev/$VG/$LV; then
exit 1
fi
if ! mount -o ro /dev/$VG/$SNAP /mnt/snap; then
lvremove -f /dev/$VG/$SNAP
exit 1
fi
) 1>&2 </dev/null || exit 1
if [ -f /mnt/snap/exclude-from-backup ]; then
rm -f /tmp/exclude-from-backup
for l in `cat /mnt/snap/exclude-from-backup`; do echo /mnt/snap$l >> /tmp/exclude-from-backup; done
OPTIONS="--exclude-filelist /tmp/exclude-from-backup"
else
OPTIONS="--exclude-device-files --exclude-sockets"
fi
if [ ! -d /mnt/snap/etc ]; then
echo "Image doesn't seem to be mounted properly"
umount /mnt/snap
exit 1
fi
rdiff-backup $OPTIONS /mnt/snap $BACKUP_PATH/$HOST-$LV
rdiff-backup --force --remove-older-than $KEEP_BACKUPS_FOR $BACKUP_PATH/$HOST-$LV
(
umount /mnt/snap
lvdisplay /dev/$VG/$SNAP
lvremove -f /dev/$VG/$SNAP
rm $PID
) 1>&2 </dev/null
но «перестроить коаксиальную сеть» — это вообще очень немаловажный такой фактор, да
в нашем королевстве, я вот, например, имею дома честных 100 мегабит downstream/10 upstream по кабелю (там же HD-телевидение и телефон)
оптика мне в принципе не нужна, а пока нет в интернет HD-телевидения — видимо и не потребуется
то есть я к тому, что технология может быть и не самой передовой, но лет пару десятков ещё будет актуальна, а может и дольше
в Европе покрытие коаксиальными телевизионными кабелями почти 100%, а дома в основном — мелкие, распределены по большой территории
поэтому оптикой всё это покрыть — получается очень недёшево в пересчёте на отдельное жилище
в нашем королевстве все банки используют устройства VASCO DIGIPASS или аналогичные
в него вставляется карточка с чипом (та же самая, которая используется в банкоматах), набирается пин и выдаётся пароль на вход (I) или на подписание платежа (S) по входным данным, которые показываются на сайте
для получения пароля нужны три компонента — устройство + карта + пин
никаких SMS и никаких USB, можно с телефона использовать, можно в интернет-кафе
по существу, эксплойтится только одним способом — сделать сайт 1:1 похожий на банковский, и убедить жертву его использовать
но при крупных платежах (больше пары сотен евро) надо вводить как челлендж в т.ч. и сумму, и часть номера счёта бенефициара
поэтому такой хак заставить эффективно работать тоже не совсем понятно как
мм, ну если вы бота забанили правилом в iptables, то от него же не будет ни слуху ни духу непосредственно с момента введения этого правила? или я где-то опять торможу?
насчёт -t raw -I PREROUTING спасибо всем сообщившим (вам тоже) — буду знать, полезно
(я же ведь на самом деле не настоящий сварщик админ… )
хотя ipset мне всё же очень понравился, вариантами сетов и скоростью работы, которая по определению (поиск по хеш-таблице) будет _существенно_ быстрее, чем перебор нескольких тысяч правил iptables, хоть бы и на -t raw
по поводу вашего решения
на самом деле, log2ban — это в принципе примерно одно и то же, но
1. с возможностью авторазбанивания (для этого нужна база данных)
2. с гибкой логикой по поводу того, какие запросы игнорировать
3. с гибким определением того, какие запросы считать идентичными (см. ниже *)
4. с анализом логов в реальном времени (10 минут это слишком много — в данной конкретной атаке каждую минуту появлялись новые боты взамен заблокированных), а не в момент ротации
5. с читаемым кодом :)) (ничего личного, на перле я тоже раньше много писал)
*) то есть, скажем, в тот момент, когда боты вдруг поумнеют и начнут слать не один и тот же запрос а, скажем, с какими-то вариациями — в log2ban есть конкретная изолированная функция, куда можно добавить сколь угодно нелинейную логику для анализа
ну да, при этом в _большом_ количестве, от каждого клиента до нескольких десятков в секунду
то есть именно боты, а не кнопка рефреш в браузере
при этом User Agent постоянно разный, видимо случайно генерируемый
во-первых была важна не частота запросов с одного айти, а частота _одинаковых_ запросов, при этом _игнорируя_ статический контент
это в т.ч. форум, с кучей статического контента
одна страница вполне может дать 50 хитов
если просто считать запросы с айпи (что умеет разумеется, и nginx — это давало неприемлемое количество false alarm-ов
во-вторых, iptables на тысяче правил в iptables уже начинает мрачнейше тормозить, ipset тянет десятки тысяч
в-третьих, вы всерьёз рекомендуете апач для высоконагруженных сайтов??
при наличии гораздо более эффективного nginx?
у HP сейчас всё плохо — потому что эффективный менеджер Лео Апотекер просрал все полимеры
товарищ сам из SAP, поэтому пытался из HP сделать софтверную компанию
например зачем-то прикупил за 10 ярдов $ компанию под названием Autonomy — актив прикольный и наукоёмкий, но для HP ваще ни разу не профильный
но теперь его слава богу выперли, пришла эта тётя Мег Уитмэн
я надеюсь, ума у неё хватит ничего дальше не улучшать, а просто послушать тех людей в компании, кто реально разбирается, в чём компания лидирует и где зарабатывается бабло
а, собственно я это к чему?
а это я к тому, что в решениях HP бесполезно искать какую-то логику, компания сейчас ведёт себя непредсказуемо, как подросток, который «ищет себя»
статья собственно о решении, а не о проблеме
сервер nginx+php-fpm+mysql
армия ботов — откуда я знаю, какие там боты
в банлисте было от 2 до 5 тысяч IP-адресов
боты достаточно примитивные — все долбили один и тот же захардкоженный запрос простоянно
иногда запрос менялся
количество запросов в пике было до 1000 в секунду, то есть просто забивали все соединения, до 50 тысяч ESTABLISHED в netstat
всякие твики в tcp/ip параметрах не особо помогали
как-то в общем так
а блокировка на уровне IP работает отлично, особенно ipset — могучая штука, поначалу пробовали использовать iptables… не надо даже и пробовать было
изначально мы посмотрели на fail2ban, откуда и название, но он показался уж очень громоздким
архитектура задумывалась достаточно гибкая, чтобы перенастроить на автоматическую блокировку IP-адресов по любым доступным наблюдению критериям
это вы шутите так?
вообще там вроде серьёзно 25/31 тыщ фунтов в год предлагают
наверное должны прилагаться ещё и бесплатный детский сад, гранты на образование детей, пенсия, отпуск 60 дней и прочий социализм западноевропейской госслужбы
в континентальной Европе, северно-западной её части, и конкретно в том богоспасаемом королевстве, где я последнее время обитаю, для пап — нормальная практика при рождении ребёнка перейти на 36- или 32-часовую рабочую неделю (4 дня или 4/5 чередование), или даже ещё более короткую, для того, чтобы проводить с ним время
и работодатели тоже в курсе, и идут навстречу
с 3 месяцев можно отдавать ребёнка в ясли-сад (с 6 месяцев, с года — на усмотрение родителей)
а с 4 лет ребёнок уже идёт в школу, там его занимают всяким разным креативным… и можно возвращаться работать на полную нагрузку
вообще, с точки зрения детоводства практически идеальный вариант
я лично два раза проверил…
это распространённое заблуждение
каждый, кто прожил хотя бы две недели в часовом поясе ± 8 часов от своего знает, что такое jet lag и когда он прекращается
а по возвращению домой опять надо привыкать
когда летишь на запад — легко, становишься мега-плюс-плюс-жаворонком, в 4 утра готов подорваться и в 8 вечера уже готов спать
а вот на восток обратно — вот это жесткач… спишь-спишь-спишь, до 2-3 часов дня, а выспаться не можешь
так что Исландия и Бразилия помогут, но не надолго
я понял, вам не понравилось моё выражение «нет программирования JS как такового»
наверное, я должен был сказать иначе
к примеру:
«программирование JS как таковое необходимо лишь для отдельных специфических случаев, например для интеграции с JS-библиотеками»
а вы подумайте, сколько слоёв и абстракций между процессом фотосинтеза и салатом у вас на столе
это вполне естественно — чем больше у устройства функций и чем человеку приятнее с ним работать, тем сложнее становится устройство
главное — чтобы всё работало в целом надёжно
а вообще всё зависит от решаемой задачи
цель программирования в бизнес-контексте — это добиваться удовлетворительного результата за вменяемое время
я бы рекомендовал использовать JSF только если цель — сделать _быстро_, за счёт возможной потери в качестве user experience, ну да ладно, бизнес-гуй не обязан быть идеальным
если надо вылизывать производительность/UX на клиенте и по возможности снижать нагрузку на сервер — надо использовать всё что ниже, вплоть до голого JS
JavascriptContext — это средство для интеграции, а не разработки
например в данном проекте с его помощью был подключен CodeMirror
иначе бы пришлось как-то грязно хакать в обход всей сложной машинерии ICEFaces, с риском потери совместимости со следующим ихим релизом
для нагиоса поставил этот плагин, если бэкап какой-то машины не делается сутки — звенит звонок
вот такой скриптик запускается по крону на родительском хосте
зато опытные хостеры знают, где халява
в нашем королевстве, я вот, например, имею дома честных 100 мегабит downstream/10 upstream по кабелю (там же HD-телевидение и телефон)
оптика мне в принципе не нужна, а пока нет в интернет HD-телевидения — видимо и не потребуется
то есть я к тому, что технология может быть и не самой передовой, но лет пару десятков ещё будет актуальна, а может и дольше
в Европе покрытие коаксиальными телевизионными кабелями почти 100%, а дома в основном — мелкие, распределены по большой территории
поэтому оптикой всё это покрыть — получается очень недёшево в пересчёте на отдельное жилище
в него вставляется карточка с чипом (та же самая, которая используется в банкоматах), набирается пин и выдаётся пароль на вход (I) или на подписание платежа (S) по входным данным, которые показываются на сайте
для получения пароля нужны три компонента — устройство + карта + пин
никаких SMS и никаких USB, можно с телефона использовать, можно в интернет-кафе
по существу, эксплойтится только одним способом — сделать сайт 1:1 похожий на банковский, и убедить жертву его использовать
но при крупных платежах (больше пары сотен евро) надо вводить как челлендж в т.ч. и сумму, и часть номера счёта бенефициара
поэтому такой хак заставить эффективно работать тоже не совсем понятно как
(я же ведь на самом деле не настоящий
сварщикадмин… )хотя ipset мне всё же очень понравился, вариантами сетов и скоростью работы, которая по определению (поиск по хеш-таблице) будет _существенно_ быстрее, чем перебор нескольких тысяч правил iptables, хоть бы и на -t raw
по поводу вашего решения
на самом деле, log2ban — это в принципе примерно одно и то же, но
1. с возможностью авторазбанивания (для этого нужна база данных)
2. с гибкой логикой по поводу того, какие запросы игнорировать
3. с гибким определением того, какие запросы считать идентичными (см. ниже *)
4. с анализом логов в реальном времени (10 минут это слишком много — в данной конкретной атаке каждую минуту появлялись новые боты взамен заблокированных), а не в момент ротации
5. с читаемым кодом :)) (ничего личного, на перле я тоже раньше много писал)
*) то есть, скажем, в тот момент, когда боты вдруг поумнеют и начнут слать не один и тот же запрос а, скажем, с какими-то вариациями — в log2ban есть конкретная изолированная функция, куда можно добавить сколь угодно нелинейную логику для анализа
то есть именно боты, а не кнопка рефреш в браузере
при этом User Agent постоянно разный, видимо случайно генерируемый
тогда ваш вариант вполне имеет право на жизнь
я не знал про mod_evasive (т.к. апачем давно уже не пользуюсь), который, я так понимаю, умеет отслеживать запросы в т.ч. по URI
это ключевой момент
это в т.ч. форум, с кучей статического контента
одна страница вполне может дать 50 хитов
если просто считать запросы с айпи (что умеет разумеется, и nginx — это давало неприемлемое количество false alarm-ов
во-вторых, iptables на тысяче правил в iptables уже начинает мрачнейше тормозить, ipset тянет десятки тысяч
в-третьих, вы всерьёз рекомендуете апач для высоконагруженных сайтов??
при наличии гораздо более эффективного nginx?
далее к бенчмарку
товарищ сам из SAP, поэтому пытался из HP сделать софтверную компанию
например зачем-то прикупил за 10 ярдов $ компанию под названием Autonomy — актив прикольный и наукоёмкий, но для HP ваще ни разу не профильный
но теперь его слава богу выперли, пришла эта тётя Мег Уитмэн
я надеюсь, ума у неё хватит ничего дальше не улучшать, а просто послушать тех людей в компании, кто реально разбирается, в чём компания лидирует и где зарабатывается бабло
а, собственно я это к чему?
а это я к тому, что в решениях HP бесполезно искать какую-то логику, компания сейчас ведёт себя непредсказуемо, как подросток, который «ищет себя»
сервер nginx+php-fpm+mysql
армия ботов — откуда я знаю, какие там боты
в банлисте было от 2 до 5 тысяч IP-адресов
боты достаточно примитивные — все долбили один и тот же захардкоженный запрос простоянно
иногда запрос менялся
количество запросов в пике было до 1000 в секунду, то есть просто забивали все соединения, до 50 тысяч ESTABLISHED в netstat
всякие твики в tcp/ip параметрах не особо помогали
как-то в общем так
а блокировка на уровне IP работает отлично, особенно ipset — могучая штука, поначалу пробовали использовать iptables… не надо даже и пробовать было
изначально мы посмотрели на fail2ban, откуда и название, но он показался уж очень громоздким
архитектура задумывалась достаточно гибкая, чтобы перенастроить на автоматическую блокировку IP-адресов по любым доступным наблюдению критериям
к тому же я и ресурс — уже давно совсем не в России
вообще там вроде серьёзно 25/31 тыщ фунтов в год предлагают
наверное должны прилагаться ещё и бесплатный детский сад, гранты на образование детей, пенсия, отпуск 60 дней и прочий социализм западноевропейской госслужбы
и работодатели тоже в курсе, и идут навстречу
с 3 месяцев можно отдавать ребёнка в ясли-сад (с 6 месяцев, с года — на усмотрение родителей)
а с 4 лет ребёнок уже идёт в школу, там его занимают всяким разным креативным… и можно возвращаться работать на полную нагрузку
вообще, с точки зрения детоводства практически идеальный вариант
я лично два раза проверил…
каждый, кто прожил хотя бы две недели в часовом поясе ± 8 часов от своего знает, что такое jet lag и когда он прекращается
а по возвращению домой опять надо привыкать
когда летишь на запад — легко, становишься мега-плюс-плюс-жаворонком, в 4 утра готов подорваться и в 8 вечера уже готов спать
а вот на восток обратно — вот это жесткач… спишь-спишь-спишь, до 2-3 часов дня, а выспаться не можешь
так что Исландия и Бразилия помогут, но не надолго
я понял, вам не понравилось моё выражение «нет программирования JS как такового»
наверное, я должен был сказать иначе
к примеру:
«программирование JS как таковое необходимо лишь для отдельных специфических случаев, например для интеграции с JS-библиотеками»
это вполне естественно — чем больше у устройства функций и чем человеку приятнее с ним работать, тем сложнее становится устройство
главное — чтобы всё работало в целом надёжно
а вообще всё зависит от решаемой задачи
цель программирования в бизнес-контексте — это добиваться удовлетворительного результата за вменяемое время
я бы рекомендовал использовать JSF только если цель — сделать _быстро_, за счёт возможной потери в качестве user experience, ну да ладно, бизнес-гуй не обязан быть идеальным
если надо вылизывать производительность/UX на клиенте и по возможности снижать нагрузку на сервер — надо использовать всё что ниже, вплоть до голого JS
например в данном проекте с его помощью был подключен CodeMirror
иначе бы пришлось как-то грязно хакать в обход всей сложной машинерии ICEFaces, с риском потери совместимости со следующим ихим релизом