подделка пиквадро
  • Быстрый переход
  • Рубрики
  • Свежие записи
  • Метки
  • Архивы
  • Реклама 1
  • Реклама 2
  • Рейтинг@Mail.ru

    Добро пожаловать! Ваш IP-адрес: ec2-54-198-108-19.compute-1.amazonaws.com

    Резервное копирование и Восстановление базы данных Postgre

    В поставку PostgreSQL сервера входят утилиты для резервного копирования, и восстановления из резервной копии базы данных: pg_dump и pg_restore.
    Резервное копирование базы Postgre (pg_dump)
    Используем pg_dump для резервного копирования базы данных с именем «Test». pg_dump позволяет делать как текстовые, так и сжатые архивы вашей БД.
    Дамп с сжатием:
    #pg_dump –Fc –U postgres "Имя базы данных" > *.back.tgz
    Где:
    postgres – имя пользователя базы данных.
    «Имя базы данных» – имя базы данных на вашем сервере.
    *.back – имя конечного файла содержащего дамп.
    Текстовый дамп:
    # pg_dump –Fе –U postgres "Имя базы данных" > *.sql
    Где:
    postgres – имя пользователя базы данных.
    «Имя базы данных» – имя базы данных на вашем сервере.
    *.sql – имя конечного файла содержащего дамп в текстовом формате.

    Восстановление базы данных из архивной копии. (pg_restore)
    Восстановление базы данных postgre производится при помощи утилиты pg_restore. Для ее использования нужно указать Имя пользователя сервера БД, имя базы данных и имя файла с вашим дампом:
    # pg_restore –U ИМЯ ПОЛЬЗОВАТЕЛЯ БД –d ИМЯ БАЗЫ ДАННЫХ –v ПУТЬ К ВАШЕМУ ДАМПУ.
    Например:
    Имя пользователя postgres.
    Имя базы данных Test.
    Имя файла dump.back.
    # pg_restore –U postgres –d Test –v dump.back
    Создадим небольшой скрпит для автоматического архивирования базы данных postgreSQL. В имени архивной копии будем использовать текущее число, что бы по названию можно было определить дату архива.

    |BackUpDir="/home/melfis/dump/" // Директория для хранения бэкапов
    |DateName=`date +%d.%m.%Y-%H.%M` //Получаем дату для имени файла
    |cd $BackUpDir //Переходим в директорию с бэкапами
    |echo Начато резервное копирование базы данных
    |pg_dump -Fc -U postgres "Test" > $DateName.Test.backup //Делаем бэкап
    |echo Резервное копирование завершено нажмите любую клавишу.
    |read x

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

    Установка postgresql 9.1 с postgis 2

    Установка PostgreSQL на Ubuntu:
    1 - sudo apt-add-repository ppa:sharpie/for-science # To get GEOS
    2 - sudo apt-get -y --force-yes install postgresql-9.1 postgresql-server-dev-9.1 postgresql-contrib-9.1 gdal-bin binutils libgeos-c1 libgeos-dev libspatialite libspatialite-dev libgdal1-dev libxml2 libxml2-dev libxml2-dev checkinstall libproj0 libproj-dev libpq-dev build-essential
    3 - sudo mkdir -p '/usr/share/postgresql/9.1/contrib/'
    4 - cd usr/share/postgresql/9.1/contrib/
    5 - wget http://postgis.refractions.net/download/postgis-2.0.2.tar.gz
    6 - tar zxvf postgis-2.0.2.tar.gz && cd postgis-2.0.2
    7 - ./configure --with-raster --with-topology
    8 - make
    9 - sudo make install

    Далее:
    sudo su postgres -c'createdb -E UTF8 -U postgres template_postgis'
    sudo su postgres -c'createlang -d template_postgis plpgsql;'
    sudo su postgres -c'psql -U postgres -d template_postgis -c"CREATE EXTENSION hstore;"'
    sudo su postgres -c'psql -U postgres -d template_postgis -f postgis.sql' (en un directorio atras estan estos sql)
    sudo su postgres -c'psql -U postgres -d template_postgis -f spatial_ref_sys.sql'
    sudo su postgres -c'psql -U postgres -d template_postgis -c"select postgis_lib_version();"'
    sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"'
    sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"'
    sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"'

    Установка Apache Solr на Debian/Ubuntu

    Apache Solr — это расширяемая поисковая платформа от Apache. Система основана на библиотеке Apache Lucene и разработана на Java. Особенности ее в том, что она представляет из себя не просто техническое решение для поиска а именно платформу, поведение которой можно легко расширять/менять/настраивать под любые нужды — от обычного полнотекстового поиска на сайте до распределенной системы хранения/получения/аналитики текстовых и других данных с мощным языком запросов.
    Длы того чтоб начать установку Apache Solr, нам нужно убедится что у нас установлено Java
    # java -version
    если ее нет то можно воспользоваться статьями написанные ранее.
    http://it-admin.org/os-linux/ustanovka-sun-java-development-kit-jdk-7-na-debian-squeeze.html
    http://it-admin.org/os-linux/ustanovka-java-6-na-ubuntu-debian.html
    в зависимости от того, что Вам нужно, то и ставим - 6 или 7 версию!

    Далее скачивает и устанавливаем apache-solr с официального сайта http://archive.apache.org/dist/lucene/solr/

    $ cd /tmp
    $ wget http://archive.apache.org/dist/lucene/solr/4.6.1/solr-4.6.1.zip
    $ unzip solr-4.6.1.zip
    $ mv solr-4.6.1.zip solr
    $ cp -r solr /путь_к_папке_домена/solr
    $ cd /путь_к_папке_домена/solr/example
    $ java -jar start.jar

    Проверьте в браузере:
    http://yourdomain.com:8983/solr/admin/
    Собственно, должна отобразиться стартовая страничка apache-solr

    Осталось поместить его в автозагрузку:
    $ nano /etc/init.d/solr
    и вставляем туда скрипт:

    Подробнее...

    nginx: Защита файлов от прямых ссылок ngx_http_referer_module

    Часто, при цитировании материала с вашего сайта, адреса изображений или загружаемых файлов не изменяют. Возникает нагрузка на ваш сервер, но при этом посетитель даже не знает, откуда загружается рисунок и не видит вашего сайта.

    Наиболее гуманно будет выдавать посетителю другого сайта изображение с текстом "Это изображение доступно только на сайте www.example.com". Если ссылаются на загружаемый файл — перенаправлять на страницу загрузок вашего сайта.

    Сделать это можно с помощью модуля ngx_http_referer_module: он будет анализировать поле "Referer" (ссылающаяся страница) в запросе посетителя и сравнивать со списком разрешенных доменов. Конечно, посетитель может подделать это поле в своем запросе, но это не так просто и обычно этого никто не делает.

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

    Кроме того, не стоит блокировать запросы без поля "Referer", очень часто за ними скрываются посетители вашего сайта с необычными браузерами или нестандартными настройками.

    Для изображений:

    server {
    ...

    location ~ \.(jpg|gif|png)$ {
    valid_referers none blocked server_names ~\.google\. images.yandex.ru;
    if ($invalid_referer) {
    rewrite ^(.*)$ /img/invalid_referer.png redirect;
    }
    }
    }

    Подробнее...

    nginx: Ограничение доступа по паролю

    Используя директивы auth_basic и auth_basic_user_file, можно ограничить доступ ко всему серверу, сайту, каталогу или любому URL по маске, с авторизацией по протоколу "HTTP Basic Authentication".

    Формат файла со списком логинов и паролей такой же, как в Apache. Создание такого файла утилитой htpasswd.
    Добавьте в нужную секцию файла конфигурации две директивы:

    location /admin/ {
    auth_basic "Admin Zone";
    auth_basic_user_file /var/www/example.com/admin/.htpasswd;
    }

    auth_basic задает имя ресурса (realm), которое будет показано посетителю в окне ввода пароля. auth_basic_user_file — путь к файлу с логинами и паролями. Данные из файла считываются заново при каждом обращении посетителя к ресурсу.
    Если необходимо, чтобы файл с паролями находился в каталоге, доступном посетителям, скрыть его от всех можно следующим кодом:

    server {
    listen 80;
    server_name example.com;
    location / {
    ...
    }
    location ~ /\.ht {
    deny all;
    }
    }

    Этот код скроет от посетителя все файлы, начинающиеся с ".ht"

    Монтирование удаленной папки через тунель SSH

    Предположим Вам понадобилось, чтоб данные удаленной папки были у Вас на локальном сервере или компьютере, для этого мы будем использовать монтирование удаленной (находящейся на другом компьютере) папки с помощью защищенного туннеля ssh.
    Передача файлов и работа с папкой в таком случае более безопасна, чем, например, ftp. Для реализации задуманного нам понадобиться SSHFS (это файловая система работающая через модуль ядра FUSE).
    sudo apt-get install sshfs

    Далее загружаем модуль ядра fusе (если в вашем ядре его нет)
    modprobe fuse

    Добавляем группу через которую будет работать SSHFS. (скорее всего данная группа будет создана при установке sshfs)
    addgroup fuse

    Добавляем в эту группу пользователя из под которого вы планируете использовать удаленное монтирование.
    adduser user fuse

    разрешаем группе fuse обращаться к устройству
    chown root:fuse /dev/fuse

    Создаем каталог в который будем монтировать удаленную папку.
    mkdir /folder-local

    Теперь монтируем необходимую папку с удаленного сервера.
    sshfs user@server-remote:/folder-remote /folder-local

    Теперь в папке /folder-local находиться все содержимое вашей удаленной папки (/folder-remote) и вы с ней работаете как будто она находиться в вашей системе.

    Чистим лишние пакеты после обновления Linux Debian

    Стандартная процедура обновления заключается в следующем:
    1. Правим список репозиториев в "/etc/apt/sources.list" на актуальные.
    2. Запускаем обновление, выполняя
    apt-get dist-upgrade

    3. Перезапуск, командой:
    shutdown -r now

    После такого обновления часто в системе остаются не удаленные пакеты.
    Их список можно посмотреть командой:
    dpkg -l | grep ^rc

    Чтобы от них избавиться, выполняем следующую команду:
    dpkg -l | grep ^rc | cut -d' ' -f3 | xargs dpkg -P

    Борьба с DDoS-атакой с помощью (D)DoS Deflate

    Очень часто по чьему-то злому умыслу или по случайности, ваш сервис начинает испытывать нагрузку свыше той, на которую он рассчитан. Зачастую в таких случаях ваши постоянные клиенты начинают страдать от отказа в обсушивании на вашем ресурсе. Это может проявляться как полным отсутствием ответа от вашего сервиса, так и неприемлемо медленной его работой. Данную ситуацию можно оценивать как атаку на ваш сервис. Данный вид атак называется DoS — Denial of Service(если атака производится с одного адреса), либо DDoS — Distributed Denial of Service (если атака производится с множества адресов). В данной статье мы расскажем как настроить систему которая позволит защищать ваш сервис от подобного вида атак.
    1. Подтверждение атаки на сервер
    При DDoS-атаке (в нашем случае на 80 порт, который открыт на ресурсах, где размещены проекты, к которым нужен доступ по http) наблюдается повышение открытых и ожидающих закрытия соединений (до нескольких тысяч или десятков тысяч), возрастает количество пакетов на сетевом интерфейсе. В случае DDoS-атаки на 80 порт увеличивается общее число процессов на сервере, количество процессов apache (httpd), сайты начинают долго отвечать или не отвечать вовсе, на сервере используется большее число ресурсов (возрастает LA сервера, использование CPU и RAM достигает 100%). В таком случае нужно проверить общее количество соединений с сервером командой netstat:
    netstat -n -p | awk '{print $6}'|awk -F: '{print $1}' | sort -n | uniq -c | sort -nr | head -n10

    вывод команды в случае DDoS-а будет приблизительно таким:
    8580 LAST_ACK
    340 ESTABLISHED
    251 SYN_RECV
    157 FIN_WAIT1
    28 CONNECTED
    7 CLOSING
    6 TIME_WAIT
    3 FIN_WAIT2
    3 CLOSE_WAIT

    Подробнее...

    Как изменить hostname на различный Linux системах?

    Чтобы изменить имя хоста достаточно набрать команду:
    #hostname <name>

    Но это не достаточно, так как после перезагрузки системы hostname вернется на дефолтный. По этому нам нужно добавить некоторые изменения в файле: для различный семейств Линукс - это разные файлы!

    Для Linux Debian и Ubuntu:

    Когда система загружается она считывает имя хоста из файла /etc/hostname, поэтому просто вносим изменения в него (где - имя вашего хоста):
    #echo "" > /etc/hostname
    Чтобы применить изменения можно и не перезагружатся, достаточно запустить команду:
    #/etc/init.d/hostname.sh start
    Если хоснаме не изменился попробуйте пере подключится в серверу!

    Для Linux RedHat или Centos:

    Имя хоста указывается в файле /etc/sysconfig/network и используется скриптом /etc/rc.d/rc.sysinit при старте системы, посему открываем файл:
    #nano /etc/sysconfig/network
    Находим строку HOSTNAME и меняем на имя своего хоста:
    #HOSTNAME=""

    Для Linux ArchLinux:

    Имя хоста указывается в файле /etc/rc.conf, оттуда оно и берется при запуске, открываем его:
    #vim /etc/rc.conf

    Находим строку HOSTNAME и меняем на имя своего хоста:
    #HOSTNAME=""

    Для изменения имени хоста через sysctl:

    Чтобы узнать текущее имя:
    sysctl kernel.hostname
    Чтобы изменить его (где - имя вашего хоста):
    sysctl kernel.hostname=

    Как добавить swap-файл и swap-раздел в Linux?

    Все мы хоть раз сталкивались с такой проблемой "Как увеличить или добавить swap-файл и swap-раздел в Linux?" Для этого нам нужно за ценить сколько имеем места на жестком диске df -h или сколько swap-пространства у нас уже имеется в системе - для этого следует дать команду в консоли от рута: swapon -s

    Результат будет в виде:
    # swapon -s
    Filename Type Size Used Priority
    /dev/sda2 partition 8000508 0 -1

    Описание вывода команды:
    Filename описывает имеющиеся у вас своп-пространства и где они находятся.
    Type указывает тип пространства: partition (раздел) или file (файл).
    Size сообщает общий размер Swap-пространств.
    Used говорит о том, сколько сейчас свопа задействовано.
    Priority указан приоритет, т.е. какие пространства системе использовать вначале.
    Тот же самый результат мы получим по команде cat /proc/swaps

    Создание swap-файла в Linux
    1. Открываем консоль\терминал и получаем полномочия root или используем sudo:
    $ su
    2. Думаем*, какой размер swap-файла нам нужен в мегабайтах. Подумавши, даём команду:
    # sudo dd if=/dev/zero of=/swapfile bs=1M count=500
    или
    # dd if=/dev/zero of=/swapfile bs=1M count=500
    В команде dd для задания размеров можно использовать суффиксы K, M, G для килобайт, мегабайт и гигабайт соответственно. В данном примере это 500 Mегабайт файла подкачки.

    3. Поясняем системе, что созданный пустой файл это всё-таки файл подкачки для Linux:

    # sudo mkswap /swapfile
    или
    # mkswap /swapfile

    4. Подключаем созданный swap-файл:
    # sudo swapon /swapfile
    или
    # swapon /swapfile
    При этом в выводе команды top или команды free должно появиться упоминание, что свопинга в системе поприбавилось. Чтобы отключить файл подкачки, пишем
    # sudo swapoff /swapfile
    или
    # swapoff /swapfile
    Чтобы не подключать swap-файл или swap-раздел каждый раз, полезно занести запись в /etc/fstab следующего содержания:
    /swapfile none swap sw 0 0
    На всякий случай отмечу, что каждый раз создавать swap-файл не нужно: просто подключаете и отключаете его с помощью swapon/swapoff. Работа со swap-разделами в Linux происходит аналогичным образом.

    Подробнее...

    подделка пиквадро


    Cisco Systems
    OS FreeBSD
    OS Linux
    OS MikroTik Router