Чтобы скопировать все файлы Flask приложения на удаленный сервер с использованием команды scp (Secure Copy), следуйте этой инструкции:
- Откройте терминал на локальной машине.
- Используйте команду scp, чтобы скопировать все файлы и папки Flask приложения на удаленный сервер. Синтаксис команды scp выглядит следующим образом:
scp -r /путьклокальнойпапкесприложением/* имяпользователя@удаленныйсервер:/путьнаудаленномсервере/
- -r — это флаг, указывающий scp копировать файлы и папки рекурсивно.
- /путьклокальнойпапкес_приложением/ — полный путь к вашей локальной папке с Flask приложением.
- * — копирует все файлы и подпапки из указанной локальной директории.
- имя_пользователя — имя пользователя на удаленном сервере.
- удаленный_сервер — IP-адрес или доменное имя удаленного сервера.
- /путьнаудаленном_сервере/ — полный путь к директории на удаленном сервере, в которую вы хотите скопировать файлы.
- Введите пароль вашего пользователя на удаленном сервере, когда вас попросят.
- После завершения копирования, убедитесь, что все файлы успешно скопированы на удаленный сервер, перейдя в директорию Flask приложения на сервере.
- Теперь вы можете перейти к запуску вашего Flask приложения на удаленном сервере.
Для наглядности описываю свои действия по шагам:
- Захожу на сервер и создаю новую директорию для приложения.
ssh user@213.226.124.251
mkdir new_year_application
2. Выхожу с сервера (Ctrl + D).
3. Копирую файлы проекта в созданную директорию.
scp -r ~/webdev/python_advanced/module_08_deploy/materials/new_year_application/* user@213.226.124.251:/home/user/new_year_application/
4. Запускаю приложение с указанием хоста моего сервера.
flask run -h 213.226.124.251
Если приложение не запустилось, скорее всего вы не установили необходимые зависимости на сервер. О том, как это сделать, написано в этой статье.
В дальнейшем, при изменении проекта, нет смысла копировать его полностью заново, после каждой правки. Для синхронизации проекта и рационального использования ресурсов лучше использовать утилиту rsync. На Ubuntu она обычно предустановлена, проверить ее наличие можно командой в терминале:
whereis rsync
Если утилита не установлена, ниже команда для установки, а так же документация.
apt-get install rsync
Использовать rsync не сложнее scp.
Шпаргалка по rsync
- Синхронизация каталогов dir1 и dir2 на одной машине: rsync -a dir1 dir2
- Синхронизация удалённой системы: rsync -a local_dir username@remote_host:remote_dir
- В обратную сторону:rsync -a username@remote_host: remote_dir local_dir
- Использование с ключом: rsync -e ‘ssh -i timeweb’ -Paz username@remote_host:remote_dir local_dir
Опции:
−r — рекурсивная синхронизация.
−a — режим архива, эквивалент -rlptgoD.
−z — сжатие данных.
−P — показать прогресс синхронизации.
−e — используется для задания параметров при подключении через SSH.
Для наглядного примера вот этой командой я синхронизировал файлы проекта при добавлении нового js скрипта в html код главной страницы:
rsync -a ~/webdev/python_advanced/module_08_deploy/materials/new_year_application/* user@213.226.124.251:/home/user/new_year_application/