Поделюсь небольшим трюком, который экономит мне много времени и позволяет более гибко работать с серверами клиентов, а так же своими.
Поясню для начала, что ftp недолюбливаю и считаю его лишним на сервере. SSH более безопасен в этом плане и есть по умолчанию в сборках систем для серверов (хостинг на win платформе немного в “пролете”). Второй момент: я в качестве рабочей системы использую Ubuntu. Данная операционная система набирает обороты, а для web-программистов/администраторов это хорошая возможность иметь полнофункциональную систему и не отдалятся от “корней” командной строки.
Итак, приступим.
Для работы с удаленными серверами через SSH нам потребуется поставить
sudo apt-get install sshfs
Далее у нас появится удобный инструмент ля подключения удаленной файловой системы локально:
sshfs -C -p 22 user@example.com:/ /home/user/
Поясню параметры:
-С – включаем сжатие (немного экономит трафик и ускоряет соединение)
-p 22 – задаем порт ssh (если он нестандартный)
user@example.com:/ - имя пользователя на удаленном сервере и его адрес (можно указывать ip). Хочу заметить, что в конце стоит :/ - это путь на удаленном сервере, я обычно пишу
user@example.com:/var/www/
как путь "по умолчанию" ко всем сайтам на сервере.
/home/user/server1/ - путь по которому мы монтируем к себе удаленный сервер.
Для еще большего упрощения работы я использую небольшой скрипт:
#!/bin/bash
MOUNT_PATH=/home/user/mnt/example.com
if [ "$1" = "-u" ]; then fusermount -u -z $MOUNT_PATH else sshfs -C user@example.com:/home/user/public_html $MOUNT_PATH fi
Можно наделать целую пачку таких файлов по типу user@example.com.sh
Не забудем сделать его исполняемым и при запуске и ввода пароля получим подключенный удаленный сервер как папку на локалке, а при запуске user@example.com.sh -u мы отключим его.
Теперь максимально удобно работаем с проектами на удаленных серверах, как если бы они были бы локально установлены. Sshfs максимально быстро синхронизирует файлы – это дает нам возможность сохранить файл и уже через пару секунд видеть изменение на сервере. Мы можем работать и в команде с другими людьми (главное не править одни и те же файлы одновременно). Удобно делать бэкапы (простое копирование в локальную папку себе). Удобно использовать удаленный сервер для бэкапа своих данных или просто как возможность делится с кем либо файлами (файловое хранилище). Инструментдля всего этого я дал, а как его еще использовать решать вам.