Уважаемые гости и пользователи форума!
Чтобы видеть ссылки на форуме - надо зарегистрироваться и иметь 1 пост на форуме. Для этого есть КУРИЛКА и там тема Здрасти.

Удалённая работа через SSH [Советы и хитрости]

Заметки для администратора сервера.

Модераторы: rewuxiin, kulia

Правила форума
Условием использования нашего форума, является соблюдение настоящих Правил форума.

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам, а вы рискуете получить предупреждение.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

Удалённая работа через SSH [Советы и хитрости]

30 авг 2014, 11:47

Удалённая работа с сервером через SSH мало чем отличается от обычной работы через консоль. Но что делать, если при написании (работе) какого-то скрипта или компиллируется мега-программа, вдруг, упала сеть?!?!?! ]:->
Обычно приходится запускать новый сеанс и начинать всё с начала. Так поступал и я, пока не наткнулся в просторах интернета на пакет Для просмотра ссылок Вы должны быть авторизованы на форуме..
Я не буду долго и нудно описывать возможности screen и сферы ее применения. Расскажу об одной хитрости, которая позволяет без всяких заморочек и ввода кучи консольных команд вернуться в прерванную по тем или иным причинам сессию SSH.
Проверим наличие установленной screen командой

Код: Выделить всё

which screen
/usr/bin/screen
Если команда вернула путь как в примере выше, можно сразу начинать пользоваться, в противном случае screen может быть установлен стандартными средствами поддержки пакетов вашей операционной системы, или скачан с официального сайта Для просмотра ссылок Вы должны быть авторизованы на форуме..
Далее, нужно написать маленький скрипт под именем get_in.sh и поместить его в каталог /usr/local/bin/

Код: Выделить всё

nano /usr/local/bin/get_in.sh
Текст скрипта:

Код: Выделить всё

#!/bin/sh

SCREEN=/usr/bin/screen
KILL=/bin/kill

## Check if we are already in screen ($STY is set)
        if [ -z "$STY" ]; then
                $SCREEN -LARR -S Shared -c /etc/screenrc

## Force SHELL close on exit - we don't want to allow users to escape logging outside screen
                $KILL -SIGHUP $PPID
        fi
Делаем скрипт исполняемым:

Код: Выделить всё

chmod 0755 /usr/local/bin/get_in.sh
Делаем так, чтобы все использовали этот скрипт:

Код: Выделить всё

echo "/usr/local/bin/get_in.sh" >> /etc/bash.bashrc
Вот и всё. Теперь при первом входе пользователя в систему, через SSH в частности, автоматически запустится screen. При аварийном завершении сессии (не по exit) нужно просто заново зайти на сервер и продолжать прерванную работу. При выходе по exit screen завершит работу вместе с сессией.
Удачи! *DRINK*

Вернуться в «Администратору на заметку»