SSHFS вместо FTP
Довольно часто мне приходится заниматься отладкой скриптов прямо на рабочем сервере. Обычно в этом случае я использовал Filezilla, который хорош всем, кроме одного: после каждого изменения какого-либо файла он требует подтвердить его загрузку на сервер, на что и время теряется, и очень раздражает лишнее переключение между окнами. И вот недавно нашел другой вариант: использовать sshfs. Если есть подключение к серверу по SSH, то с ее помощью можно работать с удаленными файлами так же как с локальными. Все изменения будут отправляться на сервер сразу же после сохранения в редакторе, без каких-либо дополнительных действий или подтверждений. В результате отладка ускоряется в разы!
Чтобы использовать sshfs, нужно сначала установить соответствующий пакет. В Debian и Ubuntu это делается так:
$ sudo apt-get install sshfs
После этого создаем точку монтирования и задаем в качестве владельца своего пользователя (вместо user1 нужно подставить его имя):
$ sudo mkdir -p /mnt/ssh
$ sudo chown user1 /mnt/ssh
И после этого подключаемся к удаленному серверу (вместо user нужно подставить имя пользователя на сервере, вместо example.com — адрес сайта):
$ sshfs user@example.com: /mnt/ssh
Потребуется ввести пароль, после чего в /mnt/ssh появлются файлы с сервера, работать с которыми можно точно так же, как с локальными. Отключение делается как обычно sudo umount /mnt/ssh.
Кроме этого, подключение через sshfs можно использовать для быстрой синхронизации сайта с его локальной копией. Выгрузка сайта на локаль делается так:
rsync -r /mnt/ssh/ <путь_к_локальной_копии_сайта>/
Загрузка изменений на сервер:
rsync -r <путь_к_локальной_копии_сайта> /mnt/ssh
Если нужно исключить из синхрониацзии какие-либо файлы (чаще всего это файлы настроек подключения к БД), следует использовать опцию --exclude=имя_файла.