Ликбез-памятка по SSH. Список основных (unix os) команд при работе с хостингом
или управляем хостингом через SSH посредством (*nix) команд
В целях экономии трафа, времени, да и вообще для себя, - полезно иметь некоторые знания по работе с SSH-протоколом (Secure Shell).
Немного теории:
SSH он же Secure SHell — сетевой протокол, позволяющий производить удалённое управление компьютером и передачу файлов. Сходен по функциональности с протоколом Telnet и rlogin, однако использует алгоритмы шифрования передаваемой информации.
Криптографическая защита протокола SSH не фиксирована, возможен выбор различных алгоритмов шифрования. Клиенты и серверы, поддерживающие этот протокол, доступны для различных платформ. Кроме того, протокол позволяет не только использовать безопасный удалённый shell на машине, но и туннелировать графический интерфейс — X Tunnelling (только для Unix-подобных ОС или приложений, использующих графический интерфейс X Window System). SSH также способен передавать через безопасный канал (Port Forwarding) любой другой сетевой протокол, обеспечивая (при надлежащем конфигурировании) возможность безопасной пересылки не только X-интерфейса, но и, например, звука.
Поддержка SSH реализована во всех UNIX системах, и на большинстве из них в числе стандартных утилит присутствуют клиент и сервер ssh. Существует множество реализаций SSH-клиентов и для не-UNIX ОС. Большую популярность протокол получил после широкого развития sniffer’ов, как альтернативное небезопасному телнету решение для управления важными узлами.
На данный момент известно две ветки версий — 1 и 2. Однако ветка 1 остановлена, так как в конце 90-x в ней было найдено много уязвимостей, некоторые из которых до сих пор накладывают серьёзные ограничения на её использование, поэтому перспективной, развивающейся и наиболее безопасной является версия 2.
Для работы с хостингом предлагается использовать бесплатным SSH-клиентом - Putty.
Putty - Популярный Telnet и SSH-клиент, т.е. программа для безопасного подключения к удаленному компьютеру (например, веб-серверу) и выполнения на нем различных команд. Чудо программа ведет логи, позволяет настраивать шрифты, цвета и разрешение консоли, допускает сохранение в своей памяти ключей авторизации, поддерживает работу через прокси-сервер.
Таким образом если нам нужно мобильно, безопасно и быстро соединиться с нашим хостингом, скачиваем отсюда писанный клиент и пользуемся. Можно юзать на любом другом компьютере без опаски.
Дальше представлю список основных (unix, linux, bsd) команд, с помощью которых можно легко и быстро управлять своим хостингом:
- cd [директория] - смена/переход в указанную директорию;
- ls -la [директория] - просмотр файловой системы указанной директории;
- cp [опции] [путь источник] [путь назначения] - копирование файлов и директорий;
- rename [старый путь] [новый путь] - изменить имя или расположение файла;
- cat - слияние файлов и выдача на стандартный вывод;
- who - посмотреть кто сейчас находиться в системе;
- id - посмотреть идентификаторы пользователя и группы системы;
- passwd -изменить пароль текущего пользователя;
- mc - запуск Midnight Commander’a, программы (файлого менеджера), предназначенной для просмотра содержимого каталогов и выполнения основных функций управления файлами в UNIX-подобных операционных системах. Help-файл для Midnight Commander (http://www.lib.ru/MAN/mc.txt)
- rm -r [директория] - рекурсивное удаление файловой системы начиная с указанной директории.
ВНИМАНИЕ! Использовать очень ОСТОРОЖНО, на свой страх и риск. Можно йобнуть всё одним нажатием клавиши. - du -ch [директория] - определить суммарный объем занимаемого дискового пространства указанной директории с рекурсивным выводом всех вложенных директорий.
Пример вывода информации только о занимаемом объеме:
[xxx@zxc homelessinbelarus.com]$ du -ch | grep total
5.4M total - unzip [zip-архив] - разархивирование zip-архива в текущую директорию.
- tar - GNU (ГНУ) `tar’ (тар) saves (сохраняет) many (много) files (файлов) together (вместе) into a single tape (в единое целое) or (или) disk archive (архив на диске), and (и) can (может) restore (востанавливать) individual files (индивидуальные файлы) from (из) the archive (архива).
tar xf archive.tar - разархивирование tar-архива в текущую директорию
tar xfz archive.tar.gz - разархивирование gzip-архива в текущую директорию
tar xfj archive.tar.bz2 - разархивирование bzip2-архива в текущую директорию
tar cfz archive.tar.gz dir1/ dir2/file1 - создание gzip-архива
tar cfj archive.tar.bz2 dir1/ dir2/file1 - создание bzip2-архива
Консольный бэкап
не про SEO, но тоже нужно
Узнал от Тормоза о конкурсе про лучшую заметку о бэкапинге. Не претендую на лучшую, однако обнародую свою заметку о собственном методе бэкапа, который я успешно применял при резервном копировании критичных для меня и не только для меня данных.
Работая в свою бытность админом на одном из беларуских предприятиях, сопровождал я одну программулину производственного значения, на которой ежедневно сидело 2 отдела. Так вот, база данных этой программулины за 2 года обильного юзания разрослась до необъятного и важность информации, хранящейся в данной системе представителями отделов возносилась как грандиознейшая работа всех их жизней взятых вместе и сразу.
В один прекрасный момент я понял, что если эта база ненароком йобнеццо, то количество желающих оторвать мне йайца резко увеличится ровно на ту численность, работающих в этих двух отделах. Судя по принятым обязанностям, я сделал вывод, что предыдущий админ походу понятия не имел, что такое бэкап, резервное копирование и ничуть не заботился о судьбе своих йайцев
Я же был не таким легкомысленным и беспечным в отношении к своим органам и мне пришлось напрячь свой моск и придумать чего-нить этакого.
Итак, задача заключалась в следующем. Сделать так, чтобы по расписанию каждый день на любой виндовой тачке (будь-то серверной либо рабочей станции) производилось копирование критичных к потере данных из места источника в хранилище резервных данных. Скопированные данные, по возможности архивировать, так как винты-то не резиновые и разводить по архивам содержащие в своем наименовании дату произведенного бакапа.
Лениво было разбираться во всем этом зоопарке утилит для резервного копирования и я в виду тривиальности задачи решил обойтись простым консольным решением в виде обыкновенного bat-ника, используя стандартные команды интерпретатора (cmd.exe), штатную команду копирования винды (xcopy.exe) и консольный вариант самого популярного архиватора от Евгения Рошаля (rar.exe).
Посидев немного с ключами перечисленных утилит, у меня получился вот такой батничег:
>backup.bat
@echo offrem Выводим текущее времяecho %TIME%rem Создаю директорию вида DD.MM.YYYYmd "%DATE%"rem Перехожу в созданную директориюcd "%DATE%"echo Копирую и сохраняю результат копирования в лог ...xcopy d:\programulinа\* /s /f /z /c /exclude:..\exclude.txt > backup.log rem /s - копирует все папки и подпапки, кроме пустых;rem /f - отображает имена исходных и конечных файлов во время копирования;rem /z - копирует сетевые файлы с возобновлением;rem /c - продолжает копирование, даже если произошла ошибка;rem /exclude: file1[+file2][+file3]... - указывает список файлов, содержащих строки. rem Каждая строка должна находиться в отдельной линии в файлах. Если одна из строк rem совпадает с любой частью абсолютного пути копируемого файла, то такой файл rem копироваться не будет. Например, указывание таких строк, как \\obj\\ или .obj, rem исключает из копирования все файлы в папке obj и, соответственно, все файлы с rem расширением .obj;rem Перехожу на папку вышеcd ..echo %CD%echo Архивирую...rar a -df -r -ag+YYYY-MM-DD backup/b "%DATE%"rem a - добавить файлы в архив;rem -df - удалить файлы после архивации;rem -r - рекурсивно с подкаталогами;rem -ag[формат] -добавить к имени архива текущие дату и время;echo Усё ý парадке, шеý.echo %TIME%
В следующем файле перечислил все те части абсолютного пути, которые необходимо проигнорировать при копировании
>exclude.txt
\mr\xz\Recycled\tmp.wbk
при запуске батника производиться копирование файловой структуры из места источника (d:\programulinа\) в место назначение, в данном случае в директорию, где находиться сам батник.
Теперь необходимо сделать так, чтобы все это чудо технической мысли запускалось глубокой ночью, скажем в часика 3 ночи, когда все буду дрыхнуть без задних ног и видеть десятые сны. Для этого нам потребуется запустить, если она вдруг ещё не запущена, службу расписаний
>net start schedule
и с помощью консольного планировщика заданий (at.exe) сделать намеченое.
>at 03:03 /every:M,T,W,Th,F d:/backup/backup.bat
Проверим создалось ли расписание, для этого запустим at.exe без параметров
Статус Код Дата Время Командная строка------ ------------------------------------------------------------------------- 1 Каждый M T W Th F 3:03 d:/backup/backup.bat
Вот в принципе и все. Как говориться, “зачем платить больше” и все такое.
Главное преимущество моего метода резервного копирования, заключается в том, что весь необходимый функционал, не считая планировщика задач, осуществляется с помощью 3-x подручных программ.
Что касается бакапа системы, то частенько прибегаю к архивированию данных состояния системы стандартной виндюшной тулзой Пуск>Программы>Стандартные>Служебные>Архивация Данных.
И вообще, дам очень полезный совет, который не раз спасал меня от неминуемой кастрации:
если ты невзначай словил себя на мысли о том, что хорошо бы было сделать резервную копию курсача/проекта/системы,
остановись …
отбрось все остальные мысли, отложи все текущие дела на потом …
представь отчетливо, что будет если ты потеряешь курсач/проект/систему и т.д…
представил?…
теперь с радостным наслаждением о том, что это было лишь твоя фантазия делаешь
бэкап курсача/проекта/системы.
Update: Недавно наткнулся на очень хорошую подборку статей от СПЕЦ ХАКЕРа. Выпуск специятельно посвящен вопросам бэкапинга и востановления данных.
Не скучайте.
PS. Всех, C Днем Великой Победы.
ДубляЖЖ или нах кросспостинг!
На одном из экспериментальных блогов использую плагин для WordPress – lj_crossposter, который автоматом кросспостит посты в ЖЖ. Основной целью, возлагаемой на данный плагин, являлась средством для привлечения жжшной айдитории к своему блогу.
С прошествием некоторого времени пронаблюдал, что поисковый траф на основном блоге практически отсутствует. Мало того, за весь рассматриваемый период времени, ни одного перехода на блог, а в серпе по основным ключевым фразам в основном красуются линки на жжшный домен.
Так что, принимаю решение однозначное и безповоротное - «нах кросспостинг!», ибо дублирование контента на данный момент не очень способствует продвижению ресурса как такового. Исключением возможно являются раскрученные жжшные аккаунты, однако даже в этом случае, думается мне, что правильнее перенаправить аудиторию на новый блог, чем плодить дубляЖЖи
До связи, товарищ.

Я бычок подниму горький дым затяну, люк открою, полезу домой ... (с)

