Вопросник и ответы на различные IT вопросы

Здесь публикуются ответы на различные IT вопросы

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

Список вопросов

Вопрос 1. Как проверить SSD у хостера?
Вопрос 2. Как предотвратить сбой VPS и падение сайтов очисткой диска?
Вопрос 3. Как подключиться к Windows по SSH через интернет?
Вопрос 4. Как настроить резервное копирование сайта?
Вопрос 5. Скрипт для оптимизации всех изображений под Google Pagespeed Insights
Вопрос 6. Как встроить лендинг или любую статическую HTML страницу в WordPress
Вопрос 7. Что делать если не хватает диска на сервере?

Как проверить SSD у хостера?

Сейчас ударными темпами идет модернизация дисковых подсистем практически у любых хостеров. Твердотельные накопители стали существенным рывком в улучшении производительности компьютерного и в том числе серверного оборудования. Дело в том, что диск уже много лет был узким местом, что называется «слабым звеном», в производительности любых информационных систем. Другими словами все остальные составляющие — процессор, оперативная память, системные шины и даже сеть — все уже давно сильно быстрее и производительнее накопителей. SSD дает прирост производительности любого устройства примерно в 3-5 раз. Это значит любые приложения будут запускаться в несколько раз быстрее, иногда даже в десятки раз быстрее.

Итак, хостер предлагает вам две тарифные линейки — SSD и не-SSD. Вы, конечно же, берете SSD. Но как убедиться в том, что хостер выдал действительно SSD? Ведь для работы сайта нет никакой разницы — у вас все будет работать на хостинге с любым диском. То есть, теоретически хостер может вам объявить, что у него серверы на быстрых твердотельных дисках. А на деле продавать мощности на обычных традиционных HDD. И вы, скорее всего, даже не узнаете об этом.

Ведь SSD гораздо дороже обычных дисков. А у хостеров мощности ведь серьезные, им нужно терабайты данных хранить. Представляете, сколько такие системы могут стоить, учитывая, что 1 Гб твердотельного накопителя в примерно в 10 раз дороже 1 Гб обычного диска?

Что такое SSD-boost или flashcache?

Есть гибридная система, когда используют связку SSD + HDD. При этом все данные хранятся на традиционных больших дисках. Есть специальный софт, который настраивает эти диски в особый хитрый массив, где SSD выступает кэшем для любых данных, которые записываются или считываются. В таком массиве мы имеем небольшой SSD, допустим на 120 Гб и за ним большой HDD, на 2 Tb. Такая связка дает скорость чтения/записи как у SSD, но объем, как у HDD. При этом, хостер спокойно может вам сказать, что у него всё на SSD. Честные хостеры называют это SSD-boost. На работе сайтов это никак негативно не отражается.

Что такое SSD-boost или flashcache?Вы удивитесь, но только 1 из 5 хостеров при проверке дают «честный» SSD.

Тесты фейковых SSD некоторых хостеров

Хостер №1

Хостер №1Здесь мы видим всего 30 Мб/с на запись. Это нормальная скорость для обычного HDD. Но у хостера он объявлен, как SSD.

Хостер №2

Хостер №2Аналогичная картина. Но скорость чтения уже получше немного. Возможно это случай с flashcache, но очень перегруженный. А скорее всего просто raid массив из обычных HDD. Можно их собирать таким образом, что увеличивается в 1,5-2 раза производительность на чтение.

Хостер №3

Хостер №3Знакомый многими хостер. Показывает вообще дикие результаты. Мало того что HDD, так еще и перегруженный обращениями к диску.

Хостер №4

Клиенту делался аудит сервера, были жалобы на тормоза. Проверили диск.

Хостер №4

Увидели такаю картина. Сообщили клиенту — хостер вас нагло обманывает. Клиент бегом в саппорт — оказывается действительно. Клиенту, якобы, «забыли» включить SSD при переходе когда-то там с тарифа на тариф, понимаете? Переключают, тестируем снова и видим как появился настоящий SSD.

Тесты реальных SSD

Теперь, чтобы понимать разницу, скриншоты тестов действительно SSD.

Тесты реальных SSDВот так это выглядит. Скорость записи хотя бы выше 100 Mb/s должна быть. Это минимум для SSD. Это тест с обычного рабочего ноутбука. В нем стоит самый дешевый SSD на 120 Gb. Как видите, скорость работы у него в 4-5 раз быстрее чем у традиционного диска.

А вот тест хостера, который предоставляет реальный SSD.

реальный SSDВот здесь уж точно настоящий SSD. Вот таким он и должен быть. Возможно настроен буст, но, таки, это SSD и жить с этим хостером можно.

Как сделать тест скорости диска у хостера?

Для этого используется утилита dd. Она есть в любом linux. Но обращаться с ней следует осторожно, иначе есть риск испортить вообще весь сервер, все данные на нем. Поскольку эта утилита пишет сырые данные в любое устройство или файл, которое ей укажешь.

Итак, для теста записи следует взять поток нулей из специального устройства /dev/zero и направить его в файл, на тестируемом диске. Любой произвольный файл. Например в папку временных файлов /tmp/test.img

Вот так:

dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=dsync

Такая команда создаст файл в 1 Гб размером и выведет скорость записи.

Сразу же можно проверить и скорость чтения, только здесь опция if должна указывать на созданный файл, а of куда нибудь в пустоту. В линуксах есть такое устройство /dev/null , в него и направим:

dd if=/tmp/test.img of=/dev/null bs=1M count=1024

Но перед этим, нужно сбросить дисковый кэш, иначе файл будет считан за секунду, а вам выведется скорость чтения в Gb/s. Это делается такой командой:

sysctl vm.drop_caches=3

После чего проводим тест чтения второй командой.

Ну и по окончанию нужно удалить тестовый файл, дабы не занимал место:

rm -f /tmp/test.img

Это все сработает только на выделенном сервере или VPS. Причем, не на всяком VPS. Поскольку они различаются еще и по технологии виртуализации. Многие хостеры дают не полноценную виртуализацию (KVM, XEN) а контейнеры (openVZ). Здесь нет доступа к параметрам ядра, а значит не получится сбросить кэш. Придется читать и писать в разные файлы, либо перед тестом чтения подождать несколько часов, пока дисковый кэш перезапишется другими данными. Также довольно сложно проверить скорость на виртуальном (shared) хостинге, поскольку вы не имеете там root доступа. Но утилита dd обычно доступна любому системному пользователю, поэтому можно проверить и на нём, имея доступ по SSH.

По материалам answit.com

Как предотвратить сбой VPS и падение сайтов

Типичная ситуация — у вас есть VPS, на котором есть много чего. И вы так увлеклись развитием своих сайтов на нём, что дисковое пространство на сервере подходит к концу.

Важно не упустить этот момент, чтобы сайты не «упали». Проверить использование диска можно такой командой:

df -h

Это одна из первейших команд, которая должна быть выполнена, как только вы логинетесь на сервер. Это просто как банальная проверка «пульса» сервера. Другая похожая проверка — ifconfig, ибо еще одна важнейшая система — сеть. Но об этом в следующий раз.
Команда проверки свободного места на диске
А вот о дисковом пространстве поговорим особо. Ибо диск — это одно из сердец системы, от его состояния и скорости в значительной степени зависит производительность и вообще, работоспособность сервера.

Что будет если на сервере заполнен диск? Ошибка «No space left on device»

Потому как только диск на нём будет заполнен на 100% или близко к тому, весь софт работающий на нём как бы «замёрзнет». Он вроде и не выключится, но и работать нормально не сможет. Сайты возможно будут открываться, если у вас там стоит nginx, возможно будут открываться странички на чтение, но какой-то чуть более сложный функционал, типа тех же комментов, или даже логина — работать не будет. А в логи софт будет сыпать ошибку:

«no space left on device»

Как решить проблему если диск переполнился?

Её устранение сводится к тому, чтобы освободить место на диске. То есть удалить что нибудь ненужное. Чтобы удалить что-нибудь ненужное с диска, это ненужное надо для начала найти. Определять что не нужно на сервере обычно приходится с помощью исследования размера файлов и папок. Для этого служит утилита du, которую можно использовать следующим образом:

du -sh /var/*

Команда подсчитает и покажет объем всех папок (каждой в отдельности) внутри /var/:
объем всех папок

Опция -s тут означает — считать полный объем папок, без нее будет выведен объем всех подпапок и файлов по отдельности. А опция -h — human(readable) — означает выводить размер в «человекопонятном» формате, а не в килобайтах. Кстати, в предыдущей команде df -h она означает то же самое.

Как быстро найти большие файлы и папки и ненужные файлы для очистки диска

Для пользования du нужен навык. Удобство du только в том, что он есть в любой системе по-умолчанию, не нужно ничего доустанавливать. Также есть более крутая утилитка ncdu, которая сама подсчитывает, да еще и выводит всё в интерактивном режиме, позволяет перемещаться по структуре папок, и даже производить с ними действия, например удаление, с помощью хоткеев. Но её нужно сначала установить:

apt-get install -y ncdu

Это вариант для deb-систем — любой версии debian, ubuntu или основанных на них других дистрибутивах, типа mint, и т.д.
А вот так для rpm-based систем — centos, rhel, fedora, etc.

yum install -y ncdu

Когда утилита установлена, можно запускать:

ncdu /var/

И она выведет структуру подпапок в этой директории, с указанием их объёма:
Как быстро найти большие файлы и папки и ненужные файлы для очистки диска
Например, чтобы удалить папку, которую вы определили как ненужную и подлежащую очистке, нужно нажать кнопку delete на клавиатуре. Будет выдано предупреждение, на которое можно ответить no или yes. Так же есть вариант — больше не спрашивать, если вы собрались устроить тотальную чистку и уверены, что не удалите что-то нужное.
Как быстро найти большие файлы и папки и ненужные файлы для очистки диска

Что можно удалить на сервере чтобы быстро освободить диск?

Вот кстати папка /var/cache/apt — не зря есть на скрине, это можно подчистить в любой deb-системе, если вам нужно срочно освободить диск, чтобы ваши сайты очнулись. А в centos (или любой другой rpm-based) можно подчищать /var/cache/yum/ — это тоже кэш пакетного менеджера, куда складываются пакеты — то есть дистрибутивы устанавливаемого и установленного на сервер софта.
Другой вариант: смотреть папку /var/log на предмет больших файлов. Но по логам разговор отдельный, их просто так сносить нежелательно. Их лучше обнулять, иначе софт, который в данный момент запущен и должен в них писать — может зависнуть. Например веб-сервер apache или mysql. Более, того диск не освободится, если удалять файл, который открыт на чтение или запись каким-то работающим софтом. Ибо так устроена файловая система в линуксах (да и в не линуксах тоже) — чтобы этот файл физически удалился нужно перезапустить софт, чтобы тот «отпустил» файл. Кстати, как раз таки логи апача могут забить диск. Чтобы обнулить большой логфайл без риска подвесить вебсервер, нужно исполнить примерно вот такую конструкцию:

cat /dev/null > /var/log/apache2/my-very-cool-site.access.log

где my-very-cool-site.access.log — это ваш самый большой логфайл. Они могут достигать нескольких Gb, а иногда даже десятков или сотен Gb.
А как предотвратить всею эту ситуацию?

Скрипт для мониторинга состояния жесткого диска и посылки уведомлений на email

Это как раз то самое решение, которое позволит вам своевременно подчистить или расширить диск, до того как он забьётся. Бывают конечно ситуации когда забивается внезапно, тогда скрипт не сильно поможет, потому что вы можете даже не успеть среагировать — вчера было только 30% занято, а сегодня, буквально через несколько часов, что-то сожрало всё доступное дисковое пространство. Но такие случаи редки, и это уже издержки. А мы будем решать типичную ситуацию.

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

Но этот метод показал свою непригодность. Поэтому берём решение на stackoverflow, который можно запустить в системе и он будет по расписанию запускаться. При запуске он будет проверять состояние жестких дисков, подсчитывать, сколько процентов диска занято и если это значение больше какого-то заданного порога — то присылать уведомление на e-mail.

В теме письма будет ip-адрес сервера, а в нем самом вывод команды df -h

Получился вот такой скрипт:

Скрипт

Здесь есть два параметра, к подбору которых сводится настройка скрипта:
EMAILS — в нем вам нужно указать адрес своей почты, на которую вы хотите получать уведомления;
limit — тут вы указываете после заполнения диска на сколько процентов скрипт должен эти уведомления слать;

Тут стоит 90%, но не всегда такое значение имеет смысл. Ибо в случае c 1 tb диском это еще 100Gb, тогда вам возможно надо указать limit=97, чтобы скрипт начал слать уведомления когда остаётся 30Gb диска.

Вот так это выглядит:
уведомление на e-mail

Требования к системе для нормальной работы скрипта

Кроме того, у вас на сервере должна нормально работать почтовая подсистема. Должна быть утилита mail. В deb-системах она обычно есть по умолчанию, а вот в centos её может не быть. Тогда нужно доустановить:

yum install -y mailx

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

Просто закиньте скрипт на диск, и запустите его там. Если на почту ничего не приходит, то начинать стоит с исследования логов почты, которые лежат где-нибудь в /var/log/exim/main.log или в /var/log/maillog. А если вы хотите получать уведомления на gmail почту, то вам возможно нужно настроить SPF-запись с указанием своего IP для домена, с которого будет уходить почта. Так что если на gmail не приходит, то попробуйте другую почту, mail.ru например.

Однако, лучше не разбираться со своим почтовым сервером, а настраивать почту на внешних сервисах типа яндекса или biz.mail.ru. Но отправка через sendmail и php_mail на сервере должна быть в любом разе, поэтому скрипт скорей-всего у вас заработает без проблем.
У скрипта, кстати, есть режим отладки:

set -x

Если хотите чтобы логгировалась его работа при запуске из крона, то нужно его там прописывать с перенаправлением вывода в лог:

0 9 * * * /bin/bash /root/chkdisk.sh > /root/chkdisk.log 2>&1

Как настроить запуск скрипта по расписанию

Крон. Это чудесная штука для автоматизации, которая будет запускать наш скрипт в указанное время. Опять же, принцип работы и использование крона выходит за рамки статьи, но для примера покажем.
Открываем расписание на редактирование:

crontab -e

Добавляем в самый конец такую строчку:

0 */1 * * * /bin/bash /root/chkdisk.sh

Это значит, что скрипт будет исполняться каждый час, в 0 минут. А вот в примере выше, где с отладкой, там указано выполнение раз в сутки, в 9:00 утра. Ну с этим уже самостоятельно разберётесь, это ж обычный cron.
Готовый скрипт:

Скрипт

По материалам vpsadm.ru

Как подключиться к Windows по SSH через интернет?

Полный вопрос:

Здравствуйте! Интересует вопрос: как подключиться по SSH к домашнему компьютеру через интернет. Дома установлен FreeSSHd сервер. Я так понимаю надо как-то открыть порт 22 на внешнем IP? — Алекс

Что такое SSH и зачем он нужен?

SSH — это Secure SHell. Протокол для безопасного доступа к оболочке управления. Поэтому оно предоставляет доступ именно к командной строке, ибо Shell — переводится как оболочка и здесь в значении текстовая оболочка управления. Но вообще, этот протокол примечателен тем, что он позволяет пропускать внутри себя любой другой трафик, причем в зашифрованном виде. Так, протокол безопасного подключения к файловой системе называется SFTP и работает поверх SSH. Но может туннелировать абсолютно любые другие соединения — будь то HTTP или даже RDP. По сути получается «VPN на коленке».

FreeSSHd позволяет подключиться к Windows по SSH. В данном случае — «позволяет» — это сказано очень сильно. Потому как это решение работает на Виндовс кое-как. Во-первых, у неё нет приличного текстового интерфейса — командной строки, для управления.

По крайней мере штатный — cmd — мало что позволяет сделать с удалённой машиной. Есть ещё Powershell — это уже более современное и мощное решение. Freesshd позволяет сменить консоль на powershell, но я к ней так и не смог подключиться. К CMD можно подключиться — но это совершенно неюзабельно:
CMD
В случае с FreeSSHd не получается подключиться к компьютеру с Windows даже по локальной сети, не говоря уже о подключении через интернет. Вернее, подключиться получается, но сервис зависает и вылетает, управлять Windows-хостом таким образом не получится.
Завис freesshd и вылетел при подключении
Предполагаем, что Алексу понадобился ssh-сервер на Windows для подключения к файловой системе или использования её в качестве VPN, проксирования чего-либо поверх SSH. Хотя есть сомнения, что FreeSSHd позволит это делать. Ибо в-третьих: он даже не сохраняет настройки, при перезапуске сервиса всё сбивается.

Как ещё можно запустить SSH на Windows?

Есть более работоспособное решение — Powershelserver. Хотя в нём тоже есть баги, но оно хотя бы не вылетает. Поэтому рекомендуется использовать именно его для подключения по SSH к виндовым серверам.
установка powershellserver
Он стабильно работает без вылетов. И через него действительно можно управлять windows через powershell.
powershellserver
Все настройки нормально сохраняются. Доступны те же функции что и в FreeSSHd и даже больше — можно использовать SCP — это копирование файлов поверх SSH.

Но самое большое удобство — это консоль! Она работает!
Консоль
Подключаемся без проблем с добавлением пользователей (это нужно делать во freesshd). Простейшая команда на просмотр таблицы маршрутизации прекрасно отработала и выдала нужную инфу. Фриссш «упал» именно при попытке просмотра netstat -rn

Здесь, правда, видно что не отображаются русские символы. Так у нас это легко настроить, просто выставляем нужную кодировку на powershellserver, перезапускаю, переподключаемся…
Настройка кодировки в Powershellserver
Готово:
Подключение к консоли Windows по SSH!
Теперь мы имеем полноценный SSH и можем полностью управлять Windows через консоль.

Microsoft создаст собственное решение для SSH
Кстати, Microsoft eщё летом объявила о том, что собирается разработать нативную поддержку SSH для Powershell в новых версиях Windows. Есть анонсы новости на хабре и на pcweek(и ещё). Поэтому нам только остаётся ждать с нетерпением этого знакового события, поскольку это действительно будет прорывом для работы в гетерогенных сетях.

Как открыть снаружи SSH-порт?

Итак, мы подобрались к тому сокровенному, ради чего вообще и затеялась эта статья. Ответу на вопрос читателя.

Проброс порта на роутере или модеме

Для подключения к компьютеру извне, действительно нужно сделать NAT, или, в частном случае PAT — проброс порта с локальной машины на внеший IP-адрес. Как это сделать зависит от устройства, которое используется в качестве шлюза. Это может быть ADSL-модем или домашний роутер. В большинстве случаев подробные инструкции для вашего девайса легко найти по запросам типа «проброс порта модель_устройства» или «port forwarding модель_устройства»

Вот так это выглядит на домашнем роутере Zyxel Keenetic Lite :
Проброс порта на роутере или модеме
А вот так это выглядит на ADSL-модеме c функционалом роутера Linksys WAG200G:
Настройка портов на Linksys WAG200G
У некоторых провайдеров это может быть невозможно сделать технически, поскольку они не предоставляют «белый» внешний IP-адрес.

Проброс порта на удалённый сервер с помощью SSH-туннеля

В таком случае, для подключения по SSH может быть доступен единственный способ — туннель с локальной Windows-машины (той самой, к которой хотим подключиться по SSH) на удалённый сервер. В этом случае у вас должен быть SSH-доступ к какому-то серверу в интернете.
Настройка «обратного» туннеля SSH
Такой проброс легко сделать с помощью простого SSH-клиента Putty (есть и альтернативные ssh-клиенты) Затем можно будет подключиться на этом самом удалённом сервере через проброшенный порт.
Подключение Windows по SSH через обратный туннель
Здесь получилась по сути петля. Мы открываем SSH сессию с Windows на удалённый сервер, а внутри этого подключения у нас туннелируется SSH-порт самой Windows Powershellserver (или FreeSSHd) на локальный порт 3322 удалённого сервера. И в этой же сессии мы теперь подключаемся обратно к Windows на Powershell через этот самый порт 3322… Я надеюсь, вы не запутались. Но… This is magic, друзья! 🙂 SSH-туннели это особый мир, с их помощью можно вытворять невероятные штуки, открывать такие двери, что все безопасники будут горько плакать, если бы они вдруг узнали обо всём этом… Ну да ладно.

Ну если вам нужно расшарить SSH-порт винды в мир, достаточно в настройках обратного туннеля в качестве destination указать не localhost:3322, а ip_server:3322. Сможете подключаться к винде по SSH отовсюду, где есть доступ к этому самому серверу.

Как проверить правильно ли проброшен порт?

Очень просто. Нужно проверить открыт ли он. В случае с SSH открытый порт будет отвечать сообщением о своей версии. Самый простейший способ проверки порта — утилита telnet.

Просто наберите в командной строке через пробел:

telnet домен_или_IP порт

Если порт доступен, то вы увидите что-то вроде такого:
Ответ SSH если порт доступен
Если порт по каким-то причинам недоступен — то вы увидите либо «connection refused» либо «connection timeout». В первом случае это будет мгновенно, и означает что порт закрыт файрволом.

Во втором случае это будет похоже на «зависание» и может длиться до нескольких минут — телнет-клиент будет пытаться установить соединение. Это может означать также блокировку файрволлом, но уже другого типа. Либо просто что указанный хост недоступен или порт на нём закрыт.

Если вы смогли подключиться телнетом, то нажмите комбинацию клавиш Ctrl+] и введите quit, затем Enter. Иначе не получится прервать сессию и придётся открывать новое окно консоли, если она вам ещё нужна.
По материалам answit.com

Как настроить резервное копирование сайта?

Что такое скрипт?

Продолжая тему SSH, рассказажем об использовании этого протокола для резервного копирования. Самая простейшая автоматизация бэкапов сайта или чего-либо ещё — это обычный скрипт.

Скрипт — это последовательность команд. В данном случае мы будем говорить о BAT файлах. Такие файлы ещё называют пакетными — пакет нескольких команд, исполняемых последовательно. Отсюда и название — bat от batch — пакетный. Это обычный текстовый файл, но он подаётся на исполнение оболочке командной строки. В unix-системах таким файлам чаще всего задают расширение sh — от shell — оболочка. Но на самом деле это не имеет значения, такой файл может быть исполнен с любым именем и расширением или даже вообще без оного.

Зачем нужен скрипт для бэкапа?

Польза от такого формата очевидна — однажды написав скрипт, его можно выполнять многократно, причём автоматически и по расписанию. Именно это и требуется для решения задачи по созданию резервных копий. Бэкапирование сайтов и VPS поддерживается у многих хостеров, у некоторых по умолчанию, у некоторых это дополнительная услуга. Ведь для хранения бэкапов требуется дисковое пространство. Если проекты небольшие и бэкапы занимают несколько мегабайт, то это не создаёт проблем. Но если резервные копии ваших сайтов занимают несколько гигабайт, то бэкапить это становится сильно сложнее, хотя бы потому, что для сжатия в архив требуется больше ресурсов процессора и времени. Также и расход трафика становится неприлично большим. Хотя, сейчас его уже никто и не считает, но всё же передача данных занимает время.

В общем, задача понятна — надо бэкапить сайты. Файлы проектов и базы данных. Для решения оной существует множество способов, но в целом задача тривиальна — нужно место, куда класть бэкапы и нужна программа, которая это будет делать. Желательно автоматически.

На рынке есть много решений — платных, бесплатных, быстрых, сложных, простых, удобных, неудобных… Однако наилучшим способом создания бэкапов являются самые простые и доступные в любой системе средства. То есть, обычное копирование это всегда лучше, нежели какой-то хитрый формат архива, для восстановления которого понадобится дополнительная программа.

Этого достаточно, чтобы понимать нужен вам бэкап или нет.

Требования к бэкапам сайта

Итак, подведём промежуточный итог в виде требований к нашим резервным копиям:

  1. Бэкап должен содержать в себе всё, что нужно для восстановления проекта на любом другом сервере или хостинге. Бэкап должен быть удобным — самого простейшего доступного формата.
  2. Бэкап должен быть всегда под рукой.
  3. Бэкап должен храниться где-то далеко от основной работающей системы, на другом физическом носителе.
  4. Бэкап должен делаться максимально быстро и с наименьшими затратами ресурсов.

Дело за малым — создать такое решение. 2 и 3 пункты могут ввергнуть вас в когнитивный диссонанс, но сейчас дойдём до этого и станет понятней.

По первому пункту должно быть всё понятно, но всё же немного раскроем тему.

Какие части сайта нужно бэкапить?

Сайт обычно состоит из CMS и файлов. Мы не будем их разделять и пусть это будет одна составляющая — файлы.

В каких-то особых случаях это можно или даже нужно разделять. К примеру, если мы имеем слишком большой объём или большое количество файлов самой CMS — нам нет смысла каждый раз бэкапить эту часть. Также встречаются варианты со всевозможными временными файлами, кэшами, которые также можно не копировать, ибо при восстановлении все эти части будут воссозданы, для нас не критична их потеря.

Но чаще всего сама CMS имеет небольшой объём относительно всего проекта или в принципе. Поэтому проще сохранять в резерве всё подряд.

Как и чем делать бэкапы файлов сайта

В unix-системах, есть пару штатных средств которые лучше всего для этого подходят. Это архиватор — утилита tar, которая используется в связке с компрессором gzip.

tar zcfv  backup-`date +%y%m%d`.tar.gz  /var/www/myhosting/

На выходе получается архивный файл, в который упакованы сжатые файлы проекта.

Чем делать бэкапы большого размера?

При малом объёме данных такой подход себя оправдывает. Но если проект занимает сотни мегабайт или даже гигабайты — такой вариант очень плохо подходит для резервного копирования, поскольку сжатие будет занимать кучу времени и прилчно отъедать ресурсы системы. К счастью, в Linux имеется прекрасная штука rsync. Это утилита для синхронизации файлов. Это даже не просто утилита, а целый протокол, активно используемый для некоторых задач, но для нас интересна именно утилита. И что ещё важнее, она умеет работать поверх SSH, что нам пригодится в дальнейшем.

Простейший пример использования:

rsync -avh /var/www/site.com/  /var/backup/site.com

Эта команда полностью зеркалирует папку /var/www/site.com/ с папкой /var/backup/site.com. Я говорю — зеркалирует, потому что это не просто копирование, а именно синхронизация. Для неё характерны следующие особенности:

  1. Файлы переносятся как есть — с сохранением даты создания и изменения.
  2. Файлы переносятся с сохранением владельца и прав.
  3. В том случае, если во второй папке уже есть какие-то файлы из первой папки они не копируются. Сверяется их хэш и если файлы действительно совпадают — то они не перезаписываются.
  4. Имеет возможность не только копировать, но делать полную синхронизацию, с удалением из папки назначения тех файлов, которые исчезли из исходной директории. Требует предельной внимательности при использовании, но порой незаменима.
Что такое синхронизация?
Третий пункт — это важнейшая особенность, которая как раз позволяет легко бэкапить большие объемы данных. Ведь если у вас уже имеется резервная копия, то утилите нужно лишь дополнить её новыми файлами и перезаписать изменившиеся. Наверняка всем известны торренты — там используется нечто подобное. Файл не перекачивается, а дополняется, синхронизируется. Rsync работает точно так же. Поэтому, при общем полном объёме проекта в десятки гигабайт — вам не нужно гонять все десятки гигабайт данных, достаточно «долить» в имеющийся бэкап то, что появилось или изменилось.

Как сделать бэкап базы данных сайта?

Вторая часть сайта, как правило, наиболее важная — база данных. Её потеря в большинстве случаев оказывается критичной, поэтому о бэкапах БД нужно заботиться в первую очередь. Если при потере файлов, мы ещё можем как-то извлечь их из кэшей, вебархивов, или просто воссоздать с нуля, то утеря базы данных, содержащей контент, сулит крах всего проекта.

Тут есть хорошая новость. Большинство хостеров регулярно делает резервные копии всех баз данных, которые у них хостятся на виртуальном (shared) хостинге.

Однако, в случае с ВПС/ВДС тут уже нельзя сказать так однозначно. Если вы держите свои сайты на отдельном виртуальном или выделенном сервере, то это предполагает, что вы сами в состоянии озаботиться такими вещами. Хостер же, банально, может не иметь доступа к вашим БД и даже не знать об их существовании. Чаще всего так и происходит.

Для бэкапов БД существует также множество способов, но все они используют вот это:

mysqldump -u dbuser -p dbpass  dbname > mysql-`date +%y%m%d_%H%M`.sql

Это и phpmyadmin, и панели управления вроде ISP и сторонние утилиты вроде Navicat. Все они используют штатные утилиты самой СУБД и работают поверх них. Однако, штатные утилиты имеют преимущество — бэкапы сохранённые с их помощью всегда гарантированно рабочие. Что же касается сторонних решений — тут надо только надеяться на то, что оно делает действительно целостный бэкап. В случае с mysql, на котором работают большинство сайтов — это утилита mysqldump. Если используется БД postgesql — команда будет выглядеть несколько иначе, но это тоже будет штатная утилита самой Postgres:

pg_dump -U user -Fc dbname > pgsql-`date +%y%m%d_%H%M`.dump

В данном случае используется специальный формат дампа — Custom, доступный в Postgresql. Он гораздо удобней обычного SQL, но таковой в постгрес тоже доступен — просто нужно выполнять эту команду без опций Fc.

Куда сохранять бэкапы сайта?

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

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

Тогда зачем это нужно? Представьте себе ситуацию. Нерадивый программист, решил что-то изменить в коде шаблона. Но ошибся и сайт перестал открываться. Он, конечно же, не сохранил исходный файл (потому и нерадивый) и теперь не помнит как это вернуть обратно. Он надеялся что фатальной ошибки не будет, что тут надо просто подправить пару функций и переменных и… сайт ложится и не открывается. Программиста прошибает пот… Да это может быть и не программист, а вы сами. У всех такое случается.

Как настроить автоматический бэкап сайта по расписанию?

Чтобы не прошибал пот, файлы всех сайтов на впс сбрасываются в соседнюю папку, каждые два часа. А если вирусы или взломали сайт? Это ведь можно заметить гораздо позднее, чем через 2 часа, тогда в бэкапе тоже будут испорченные данные. Верно. Поэтому есть ещё одна папка, куда сбрасываются все файлы раз в 3 дня. Настраиваем crontab:
Бэкап делается каждые 2 часа:

0 */2 * * * rsync -avh /var/www/ /var/h2backup/

Бэкап делается раз в три дня в час ночи:

0 1 */3 * * rsync -avh /var/www/ /var/d3backup/

Сюда же отдельной строкой можно добавить команду для автоматического бэкапа базы данных по расписанию.
Но ведь это увеличивает объем файлов в 3 раза. Да, увеличивает. Но бэкапов много не бывает, друзья. Других способов на 100% обезопасить себя от вышеперечисленных неприятностей я не знаю. Если самому можно быть просто аккуратней и внимательней при правке кода, сохранять копию файла перед редактированием , то при работе команды это становится невозможным. И чем больше команда, тем больше вероятности, что где-то кто-то накосячит. Что уж говорить о хакерах и вирусах.

Бэкап — это лучшая защита для сайта!
Многие вебмастера заморачиваются с «безопасностью» — вешают какие-то тормозные плагины, якобы «файрволллы», меняют урлы админки, ставят мониторы изменений в файлах, sms-уведомления… Трясутся за каждый посторонний чих в логах.
Оно и понятно, если человек подвергался таким атакам — у него может возникнуть паранойя.
Но самый простой способ, это два бэкапа — раз в два часа и раз в три дня. Не нужно обвешивать многострадальный wordpress подобной «атрибутикой», потому что никакие атаки просто не способны повредить сайтам — всегда можно восстановить и откатить в считанные минуты.
Поэтому все извращения, вроде «WP security all in one» c htaccess’ами в сотни строк, ничего, кроме улыбки, не вызывают, друзья.

Зачем сохранять бэкапы на удалённое хранилище?

Пункт о том, что бэкап также должен храниться далеко от хостинга. А это уже совсем форс-мажорные ситуации, когда проблема у хостера. Понятно, что от такого хостера надо бежать скорей, но лучше иметь при этом бэкап где-то подальше от него. Или когда проблема у вас — кто-то настучал хостеру, а тот закрыл доступ без предупреждения. Всякие ведь проекты бывают, чего греха таить. А может и не закрыл, может DDOS’ят, да так, что хостингу, что называется, «ни дохнуть, ни пукнуть», простите, и ваш проект терпит убытки по причине недоступности. Имея бэкап вне хостинга вы бы могли быстренько развернуть его у другого хостера, перенаправить DNS и снизить даунтайм и убытки. А то ведь особо тщательно спланированный DDOS и по нескольку дней может длиться, знаете ли.

Это значит, нужно сохранять свои данные на каком-то облачном хранилище, или, на худой конец, на своём рабочем или домашнем компьютере — это доступно всем без исключения. Особенно, учитывая, что где, как не на личном компьютере, у нас есть сотни гигов, а то и терабайты диска, бесполезно простаивающие или забитые каким-нибудь хламом. Кстати, есть решение — как делать бэкап по SSH на компьютер с Windows.

Если у нас имеется другой ВПС — то можно бэкапить данные на него без особых трудностей, rsync придётся здесь как нельзя кстати. Сделайте авторизацию по ключу, добавьте пару строк в вашем crontab c нужной периодичностью — и можно забыть про бэкапы. Точно также можно сделать и для хранения бэкапов на домашнем компьютере, если там стоит Linux или FreeBSD.

Как бэкапить сайт по SSH на домашний компьютер Windows?

Но вот в случае с Windows придётся заморочиться. Для этого потребуется утилита plink.exe. Получить её можно на putty.org по ссылке. Она позволяет использовать ssh из командной строки винды. Это маленькая, но крайне полезная штуковина поможет создать те самые скрипты для автоматического бэкапа.

Просто создайте текстовый файл с такими строками:

Текст .bat файла

здесь rootpassword — это пароль ssh, а -uroot пользователь БД — -uuser, например. -ppassword — пароль этого пользователя, соответственно — —pyourpass, sitedb — имя БД сайта. Здесь не пугайтесь, mysql поддерживает опции слитно со значениями, но можно и поставить пробел — -u user и -p password.

И сохраните файл с расширением bat. Теперь, запустив этот файлик двойным кликом вы получите бэкап базы данных и сайта в указанную папку.
сохранение в bat

Как настроить автоматические бэкапы в Windows?

Очень просто — нужно использовать штатный планировщик для запуска скрипта.

Нажмите win+R и запустите taskschd.msc:
Запуск планировщика Windows
В меню «действие» выберите «Создать задачу»:
В меню «действие» выберите «Создать задачу»:
В первой вкладке у вас будет обязательное поле для произвольного имени задачи. Затем выберите вкладку «действия» и укажите путь к своему скрипту:
Затем выберите вкладку «действия» и укажите путь к своему скрипту:
Перейдите на вкладку «Триггеры» и задайте расписание:
Перейдите на вкладку «Триггеры» и задайте расписание:
Вы можете настроить здесь любую периодичность.

Теперь перейдя в раздел «Библиотека планировщика» вы можете убедиться, что ваша задача создана.
Библиотека планировщика
Это самый простой способ бэкапировать сайт на домашний компьютер. Всё что вам нужно — это доступ к хостеру по SSH и утилитка plink. Но будьте внимательны, если забыть об этом на пару месяцев, вы можете очень удивиться, когда на вашем диске закончится свободное пространство! Поэтому заглядывайте в папку, куда вы настроили сохранение резервных копий и удаляйте старые бэкапы. Этот метод отлично подходит для небольших проектов в несколько мегабайт.

По материалам answit.com

Скрипт для оптимизации всех изображений под Google Pagespeed Insights

Как оптимизировать картинки на сайте или сервере? Все разом

Прямо на сервере. Если вы слышали о Google Pagespeed Insights, то, скорей всего, тема для вас может быть очень актуальной. Google проверяет все изображения которые используются на страницах вашего сайта и показывает те файлы, которые можно сжать без потери качества с помощью особых алгоритмов.

Зачем нужно оптимизировать картинки?

Зачем ему это нужно? За счёт этого уменьшается объём передаваемых данных, соответственно, загрузка страницы происходит быстрее.
Google Pagespeed Insights
Это лишь один из шагов по оптимизации сайтов под Pagespeed, но, по мнению Google, очень важный. Он позволяет увеличить оценку в Pagespeed Instights на 2-10 баллов.

Чем оптимизировать? Скриптом

Ставим софт:

#deb-based
apt-get install -y jpegoptim optipng
#rpm-based
yum install -y jpegoptim optipng

Помещаем это в файл optimages.sh:

#!/bin/bash
/usr/bin/find $1 -type f -iname '*.jpg' -exec /usr/bin/jpegoptim -q -f -o --strip-all {} \; >/dev/null 2>&1
/usr/bin/find $1 -type f -iname '*.png' -exec /usr/bin/optipng -quiet -o7 {} \; >/dev/null 2>&1

Запускаем:

./optimages.sh /var/www/user/site.com

Предварительно на всякий случай рекомендуется сделать бэкап всех изображений (каждый символ в команде очень важен!):

rsync -avh --include '*/' --include '*.jpg' --include '*.png' --exclude '*' /var/www/user/site.com/ 
/var/backup/site-com-images/

Если вдруг понадобится откатить (ни в коем случае не терять завершающий слеш в путях!):

rsync -a /var/backup/site-com-images/ /var/www/user/site.com/

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

#!/bin/bash
/usr/bin/find $1 -type f -iname '*.jpg' -mmin -120 -exec /usr/bin/jpegoptim -q -f -o --strip-all {} \; >/dev/null 2>&1
/usr/bin/find $1 -type f -iname '*.png' -mmin -120 -exec /usr/bin/optipng -quiet -o7 {} \; >/dev/null 2>&1

И в крон, на запуск каждые 2 часа:

#deb
echo '0 */2 * * * /root/optimages.sh /var/www/user/site.com' >> /var/spool/cron/crontabs/root #centos
echo '0 */2 * * * /root/optimages.sh /var/www/user/site.com' >> /var/spool/cron/root

Если вдруг хочется залоггировать всё что сделал скрипт:

#!/bin/bash
/usr/bin/find $1 -type f -iname '*.jpg' -mmin -120 -exec /usr/bin/jpegoptim -f -o --strip-all {} \; >>/var/www/user/optimages.log 2>&1
/usr/bin/find $1 -type f -iname '*.png' -mmin -120 -exec /usr/bin/optipng -o7 {} \; >>/var/www/user/optimages.log 2>&1 

Возможные проблемы с картинками и оценкой Гугла

Инструмент этот Pagespeed Insights на самом деле не важный. (Что признают и сами гугловцы) По крайней мере во всём, что касается изображений он точно гонит. Вот этот метод работает согласно справке самого Гугла. И после оптимизации таким образом, он всё равно будет показывать, что картинки можно оптимизировать ещё.

Тем более он не поможет, если у вас там изображения слишком большие и подогнаны атрибутами width и height или еще каким-то html способом. Типа сам файл можно уменьшить, а атрибуты убрать. Это тоже можно кстати сделать аналогичным скриптом, только использовать надо resize из пакета imagemagick.

Скрипт для обрезки, зеркалирования, и поворота всех изображений в папке/на сайте/на сервере

Предварительно нужно поставить imagemagick, но скорей всего он уже и так стоит на VPS

apt-get install imagemagick 
yum install imagemagick

Вот таким способом убирается водяной знак по краю:

find /var/www/user/site.com -type f -name '*.png' -o -name '*.jpg' -exec convert {} -crop +0-23 ./{} \;

Это срежет нижнюю часть всех изображений — 23 пикселя. Если тебе нужно выпилить ватермарк с другой стороны — играйся с этими цифрами. Только сделайте бекап!
Вот этим можно массово зеркалить картинки (привет уникализаторам, ага):

for file in `find /var/www/user/site.com -type f -name '*.png' -o -name '*.jpg'`; do convert "$file" -flop "$file"&& echo $file >> /root/flop-images.log; done &

С логгированием: можно по логу прогресс отслеживать.
Поворот всех изображений на 90 градусов вправо (по часовой стрелке):

for file in `find /path/to/dir/with/images -type f -name '*.png' -o -name '*.jpg'`; do convert "$file" -rotate 90 "$file"; done

А если надо влево — то -90 нужно указать.

По материалам vpsadm.ru

Вопрос 6. Как встроить лендинг или любую статическую HTML страницу в WordPress

Вообще тут может возникнуть путаница, ибо статической страницей в терминах WP называется просто страница, созданная самим движком. Сущность типа «page». Все мануалы в Рунете рассказывают именно как включить в настройках именно такую страницу в качестве главной. Тут речь немного про другое. Потребовалась так сказать интеграция произвольной независимой HTML-страницы в WordPress. Чтобы одна страница была чистой статикой, работающей независимо от движка, но при этом на домене крутился бы полноценный вордперсс.

Зачем это может понадобиться? Например, приспичило раньше времени запустить блог. Есть статический лендинг на bootstrap. А лендинга под WP еще нет. Чтобы всё это дело подружить, можно сделать нехитрые манипуляции и в результате вместо сущности «page» движок будет выдавать именно произвольную статическую веб-страницу. В данном случае лендинг. Здесь сделано для главной, но можно сделать вообще любую страницу.

Добавляем свой HTML код как шаблон внутрь темы WordPress

У страниц WordPress в настройках в блоке справа имеется возможность выбрать шаблон. Если поместить вашу статическую страницу в папку с рабочей темой, с расширением PHP и добавить туда такой код перед хедером (перед строкой DOCTYPE):

Примерно вот так:

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

Правда потом еще надо не забыть добавить в папку WP остальную статику, которая прилинкована к странице — JS, CSS, изображения. Ну или изменить пути к ним в самой HTML странице.

По материалам vpsadm.ru

Что делать если не хватает диска на сервере?

На самом деле, кроме очевидных решений, вроде перехода на старший тариф на хостинге или покупки дополнительного диска, в случае с аппаратным сервером, проблему можно решить гораздо проще и удобней. А иногда даже бесплатно или за небольшую оплату. Дело в том, что любые серверы умеют использовать в качестве файловой системы диски не только те, которые физически доступны непосредственно на сервере. Всегда есть возможность использовать в качестве хранилища внешние диски, облачные сервисы. Операционная система способна подключить удаленные файловые системы множеством способов и протоколов. Начиная c NFS (Network File System) и заканчивая WebDav,FTP или даже расшаренной папкой Windows(!).

Как сайты могут работать с сетевыми дисками или облачными сервисами?

Подключение по сети файловых систем к операционной системе называется монтирование. Впрочем, это применимо не только к сетевым дискам, любые файловые системы ОС монтирует прежде чем использовать. Самое интересное для нас в этом случае является то, что после этого файловая система становится как бы частью системы. А значит, софт — будь-то вебсервер или даже база данных — могут работать с ними точно так же, как и с локальными файловыми системами. То есть часть сайта будет физически находиться на другом сервере или в облаке, но сам сайт будет отдавать файлы так же, как если бы они находились на том же диске. Вебсерверу и сайту не нужно об этом беспокоиться — с этим разберется операционная система.

Зачем нужно подключать сетевые диски?

Есть много вариантов, где это можно применять. Например — хранение резервных копий сайтов и БД. Это не только позволит не загромождать основной диск на VPS бэкапами, но хранить их на внешней системе даже более разумно. Ведь случись чего с вашим сервером — бэкапы могут погибнуть вместе с ним, если же они физически находятся далеко от основной системы — в этом случае бэкапы останутся доступными и можно будет восстановить сайт из них.

Другой вариант — хранение и отдача статических файлов.
Их совсем не обязательно выносить на поддомен, достаточно использовать внешний диск для них на том же домене. Я в этом топике расписывал и показывал подробно как это делается, проводил тесты с замером скорости отдачи изображений с внешних файловых систем. Этот способ отлично будет работать и для любого другого контента — видео, музыка, pdf, что угодно.

Кстати, этот подход используется самими хостингами и датацентрами. Только их хранилища очень быстрые и мощные — их называют СХД — системы хранения данных. Так почему бы не использовать это и рядовому вебмастеру?

Какие сервисы можно использовать для дополнительного хранилища файлов сайта?

Яндекс Диск. Его можно легко использовать и для бэкапов, и для хранения контента. Более того, можно даже объединить несколько аккаунтов ЯД и получить диск большего размера, чем Яндекс выдает бесплатно.

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

Но более удобно взять дешевый VPS с большим диском и подключить его по NFS к основному серверу.
дешевый VPS
Дело в том, что многие хостинги дают очень мощные впс относительно дешево (2 CPU, 6 GB RAM, 500 GB SSD за 8 евро, например). Но, судя по отзывам, он не отличается стабильностью. Меж тем, использовать в качестве хранилища и как тестовую площадку очень даже удобно.

Еще один вариант — вы можете даже держать файлы на собственном сервере, или компьютере, располагающемся у вас дома(!). Да, можно провернуть и такое, и это будет нормально работать, если вы уверены что домашний компьютер будет работать 24/7. Кстати, генератор скриптов для бэкапов использует этот метод для инкрементного резервного копирования с помощью синхронизации папок — он монтирует сетевую папку с вашего компьютера на VPS, синхронизирует туда файлы и отключает.
Все вышесказанное справедливо исключительно для VPS, очевидно, что в случае с обычным shared-хостингом все это использовать не удастся.

Как подключить внешнее хранилище?

Подключение Яндекс Диска к VPS

mount -t davfs https://webdav.yandex.ru /dav

В качестве /dav можно использовать любую папку на вашем сервере. Это называется точка монтирования. Например /var/www/site.ru/images. Можно перенести все изображения предварительно из этой папки на Яндекс диск, затем смонтировать в неё ваш аккаунт по Webdav. И все изображения будут складываться напрямую в облако, хотя сайт будет все так же искать и класть их в эту же самую папку.

Но чтобы реально использовать Яндекс Диск для этого нужно сделать так, чтобы все это было доступно всегда и автоматически. Поэтому нужно сделать дополнительную конфигурацию.

В файл /etc/davfs2/secrets нужно внести данные вашего аккаунта, чтобы не вводить их каждый раз при подключении.

На скриншоте указаны два варианта и любой из них работает.

Это позволит монтировать webdav яндекса без ввода логина и пароля, но необходимо ещё настроить автоматическое монтирование при загрузке сервера. Это в любом Linux описано в файле /etc/fstab

В случае с яндексом строка будет выглядеть так:

https://webdav.yandex.ru /dav davfs gid=33,uid=33 0 0

Здесь, кстати, указаны дополнительные опции uid и gid. Они нужны для того, чтобы не было проблем с доступом к файлам. В данном случае эти данные описывают, что владельцем всех файлов на яндексе должен быть пользователь www-data, от имени которого работает вебсервер.

Подключение внешнего диска по NFS

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

На сервере с большим диском, который планируется использовать в качестве хранилища нужно создать папку и указать ее в файле /etc/exports:

/backup/site  xx.xx.xx.xx(rw,sync,no_subtree_check,no_root_squash)

В качестве xx.xx.xx.xx здесь следует указать адрес того сервера, которому позволено использовать вашу шару. В качестве адреса можно использовать регулярные выражения, cidr-нотацию, позволяющую разрешить доступ из целой сети или просто * , что разрешает использовать шару кому угодно. Но в таком случае, шара будет доступна для всего интернета, поэтому не рекомендуется так делать. Что, впрочем, бывает оправдано если серверы живут в локальной сети.

Теперь задаем настройки монтирования в /etc/fstab основного ВПС, по аналогии с яндекс диском:

conta:/backup/site /share nfs rw,soft,intr,bg 0 0

Здесь, conta — это ip или домен хранилища. Для удобства он описан в файле /etc/hosts.

Все эти опции можно изучить в любом мануале по NFS. Результат монтирования можно увидеть на скриншоте выше, где показана папку /share

Подключение на VPS внешнего диска c Windows

Это самый извращённый и нерекомендуемый вариант, который, тем не менее, имеет право на жизнь. По крайней мере, очень даже применим для бэкапирования сайтов.

mount -t cifs -o rw,nounix,soft,intr,username=winuser,password=winpass   //windows_ip/windows_share  /win

Это способ годится только для монтирования по локальной сети. Здесь точка монтирования папка /win на VPS. В качестве windows_ip нужно указывать адрес виндовой машины. Предварительно на ней должна быть папка windows_share настроена как общая. Для автоматического подключения при загрузке ОС, нужно добавить в /etc/fstab:

//windows_ip/windows_share /win cifs rw,nounix,username=winuser,password=winpass,soft,intr 0 0

После чего можно будет смонтировать папку такой командой:

mount /win

На практике, вам не удастся таким образом смонтировать папку с домашнего компьютера. Для этого нужно открывать порт windows-шары на роутере, делать проброс его на ваш компьютер, да еще и в случае с динамическим IP нужно будет всякий раз исправлять его на сервере.

Поэтому, в данном случае следует использовать SSH-туннель для того, чтобы локальная общая папка стала доступна на VPS. Достаточно лишь пробросить 445 порт, и тогда можно будет монтировать папку на сервере как //localhost/windows_share

Использование внешнего хранилища на нескольких серверах

Это ещё один плюс такого способа. Вы можете таким образом смонтировать хранилище на несколько своих VPS, и оно будет доступно для них всех одновременно. Это часто используется в распределенных отказоустойчивых системах — кластерах.
Внешнее хранилище данных
Вот таким нехитрым способом можно сократить издержки. Потому как в 90% случаев, переход на старший тариф хостера бывает нужен именно из-за исчерпания дискового пространства, в то время как остальных ресурсов сервера (CPU, RAM, трафик) еще может быть ещё большой запас.

По материалам answit.com

Список вопросов

Вопрос 1. Как проверить SSD у хостера?
Вопрос 2. Как предотвратить сбой VPS и падение сайтов очисткой диска?
Вопрос 3. Как подключиться к Windows по SSH через интернет?
Вопрос 4. Как настроить резервное копирование сайта?
Вопрос 5. Скрипт для оптимизации всех изображений под Google Pagespeed Insights
Вопрос 6. Как встроить лендинг или любую статическую HTML страницу в WordPress
Вопрос 7. Что делать если не хватает диска на сервере?

Заказать звонок
+
Жду звонка!