Рубрика «скрипт» - 3

Пост может быть полезен начинающим системным администраторам и не претендует на новаторство.
Эта история началась с того, что нашего сетевого хранилища стало недостаточно, чтобы вместить ежедневные бэкапы за последний месяц. Мы сохраняем резервные копии рабочих документов, которые хранятся на файловом сервере, несколько баз 1с, SQL базу. Было решено настроить сохранение некоторых резервных копий туда, чтобы разгрузить используемый NAS.
Для этих целей, вероятно, и лежал в запасе компактный Netgear Stora. Об этом устройстве уже писали на хабре.
Как мы в Челябинске делаем бэкапы
Об настройке бэкапов на него я расскажу подробнее. Надеюсь, кому-то пригодится.
Читать полностью »

Предисловие:

В Беларуси стоит острая проблема с получением виз в Еврозону (т.е. Шенген). Все из-за того, что Польское посольство предоставляет так называемые мульти-визы за покупками (т.е. многократные). Регистрация производится на сайте посольства онлайн. Но вся проблема состоит в том, что свободных дат не словить. Единственный вариант — круглосуточно чекать страницу, и если появится дата — быстро «ловить» ее и заканчивать регистрацию. Т.к. свободного времени для круглосуточного чека нет, было принято решение об автоматизации данного процесса.
Сразу оговорюсь, что существуют различные скрипты, которые вылавливают свободные даты и за которые люди получают деньги. Мой скрипт не претендует на их место по быстроте, качеству и т.д. Данный скрипт был сделан только для себя, никакой коммерческой и иной выгоды я не преследовал.Читать полностью »

Скорость загрузки любого сайта во многом зависит от количества и качества используемых изображений. Поэтому очень важно уметь их оптимизировать. Существует множество веб сервисов для этого, но большинство из них обладает недостатками:

  • Нет возможности оптимизировать автоматически много файлов
  • Сложно и неудобно использовать в рабочем процессе

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

Оптимизация изображений с помощью командой строки

Для каждого png файла используются optipng и pngcrush, а для jpg — jpegtran. Для начала опробуем optipng:

Оптимизация изображений bash скриптомЧитать полностью »

Не могу отыскать вирус засевший на сайте.
skyhall.com.ua
Гугл не ругается и свободно пропускает, а Яндекс ругается и сообщает о заражении «Поведенческий анализ»
js скриптов на сайте много, попроверял вроде чистые, размеры с исходниками совпадают.
.htaccess файл чист
Сканировал On-Line сервисами — чист у всех кроме яндекса, ai-bolit — ничего вразумительного не дал. Каспер при входе молчит.
Помогите пожалуйста разобраться в чем проблема.

Читать полностью »

Последний день 21 века в России и эволюция протеста

Последний день 21 века в России и эволюция протеста
Сегодня вступает в силу закон о блокироках сайтов и все об этом уже знают.
Что нас ждёт и что мы будем делать дальше, вкратце описано в этой статье.
А также, сегодня начал работать баннер для форсирования инициативы.
Читать полностью »

Сайт заблокирован по решению органов государственной власти

Меньше месяца осталось до вступления в силу закона, позволяющего блокировать сайты в досудебном порядке за наличие ссылки на нелицензионный контент, оставленной пользователем в комментарии. На данный момент нет никаких сомнений, что данный законопроект не будет отправлен на доработку и это очень плохо. Ответы на вопросы «Почему это плохо?», «Что мы можем с этим сделать?» и «Почему именно мы?» под катом.
Читать полностью »

Если вы работали с syslog'ом, то знаете, что у него есть приложение logger, необходимое для логгирования каких-то действий от обычных пользователей. И если многие программы умеют работать с syslog'ом самостоятельно, то логгировать все действия пользователей — это не всегда простая задача.

Тем не менее, есть как минимум два способа это сделать с использованием bash.
Читать полностью »

Установка «безопасного соединения» с банком Wells FargoНа форуме Hacker News обсуждают нестандартный способ авторизации на сайте Wells Fargo. «Безопасное соединение» с сервером «устанавливается» в несколько этапов и занимает 10 секунд.

loader.jsp

Исходный код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html>
  <head>
    <title>Loading....</title>
  </head>
  <body>
    <p align="center">
      <img src="https://a248.e.akamai.net/6/248/3583/000/wellsoffice.wellsfargo.com/ceoportal/DocumentumRepository/content/images/signon/messaging.gif" width="300" height="30" border="0" alt="Loading Status" /><br />
      <img src="https://a248.e.akamai.net/6/248/3583/000/wellsoffice.wellsfargo.com/ceoportal/DocumentumRepository/content/images/signon/statusbar.gif" width="300" height="30" border="0" alt="Loading Status Bar" />
    </p>
    <script type="text/javascript">
      var selfClose = function() {
        self.close();
      };
      window.onload = function() {
        setTimeout(selfClose, 10000);
      };
      window.onblur = function() {
        selfClose();
      };
    </script>
  </body>
  </html>

Для справки: Wells Fargo — один из крупнейших банков США, годовой оборот 85 миллиардов долларов. Четвёртый банк в США по размеру активов. Со штатом 270 тыс. сотрудников оперирует 9000 отделениями в нескольких странах и обслуживает более 70 миллионов клиентов.
Читать полностью »

В этой главе сказа про дружбу C++ и Python будет на удивление мало использования Boost.Python. Передача исключений туда и обратно является по сути слабым местом данной библиотеки. Будем обходиться родным API языка Python, а где это возможно использовать Boost.Python.
Тем не менее Boost.Python создаёт окружение, в котором исключения из C++ попадают в Python в виде стандартного RuntimeError, а обратно из Python генерируется исключение C++ типа error_already_set, что означает «тебе что-то прилетело, сходи сам почитай что там». И вот здесь нам как раз будет не лишним использовать C-API языка Python, чтобы вычитать необходимую информацию об исключении и преобразовать в соответствующий класс сообразно логике приложения.
К чему такие сложности? — Дело в том, что в Python, в отличие от C++, кроме текста исключения и его типа приходит ещё и traceback — стек до места возникновения исключения. Давайте немного расширим стандартный std::exception дополнительным параметром для этого stacktrace, а заодно напишем конвертер исключений туда и обратно из классов C++ в классы исключений Python.
Читать полностью »

Данная статья не является продолжением повествования об обёртках C++ API. Никаких обёрток сегодня не будет. Хотя по логике это третья часть данного повествования.
Сегодня будет море крови, расчленение существующих типов и магическое превращение их в привычные аналоги в другом языке.
Речь не пойдёт о существующей конвертации между строками, нет, мы напишем свои конвертеры.
Мы превратим привычный datetime.datetime питона в boost::posix_time::ptime библиотеки Boost и обратно, да чёрт с ним, мы вообще всю библиотеку datetime превратим в бустовые типы! А чтобы не было скучно, принесём в жертву встроенный класс массива байт Python 3.x, для него как раз ещё нет конвертера в Boost.Python, а потом зверски используем конвертацию массива байт в новом конвертере питоновского uuid.UUID в boost::uuids::uuid. Да, конвертер можно использовать в конвертере!
Жаждешь крови, Колизей?!..
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js