Предпосылка: Я полный новичок. Поэтому приветствуются любые мягкие подсказки :)
Итак, я создал экземпляр EC2 и сбросил свой скребок, который я построил на Python. Я настроил cronjobs для запуска парсера через определенные промежутки времени. При каждом запуске мой скребок сохраняет набор результатов в относительную локальную папку, например ( db // db1.csv
, db // db2.csv
и т. Д.). Скажем, состояние этих файлов БД очень важно, поскольку они затем используются в качестве источника для компиляции вызовов API и поддержки веб-сайта.
Я также хотел бы запустить мой скребок с моей локальной машины в целях тестирования. Итак, я пытаюсь понять, каждый раз, когда я запускаю свой парсер локально, как убедиться, что у меня есть последнее состояние файлов БД, которые я могу использовать, - эффективно писать функцию для загрузки последних файлов БД из моего экземпляра EC2. .
Я экспериментировал с параметрами scp -i
в моей консоли cmd
, и это отлично работает, так как я могу получить свои файлы. Но у меня возникли проблемы с переносом этих команд в Python с помощью os
или подпроцесса
, и я либо выполняю команду напрямую, либо запускаю командный файл с этими командами.
Кажется, Python заблокирован внутри моей виртуальной среды и не может найти ssh.exe
в моем C: / windows / system32 / OpenSSH
. Я не мог решить эту проблему, так как понял из потоков StackOverflow, что большинство пользователей используют библиотеку paramiko
для SSH непосредственно в своем экземпляре EC2.
Прямо сейчас я чувствую, что чрезмерно усложняю свои рабочие процессы, имея необходимость загружать файлы по SSH, чтобы поддерживать согласованность состояний между удаленным и моим локальным хостом. Я хочу перенести все свои БД на PostgreSQL на AWS RDS и управлять всем таким образом. Мне любопытно услышать идеи (основанные на любых предположениях) и какую лучшую архитектуру в будущем сделать так, чтобы:
Что мне не хватает? Меня больше интересуют идеи для решения этой проблемы, чем реальный код. Спасибо!
Разделите его на две независимые задачи:
Для сохранения синхронизации файлов я бы используйте Syncthing - я использую его для синхронизации файлов между моими ноутбуками и с EC2 в качестве резервной копии. Он работает постоянно, и всякий раз, когда он может подключиться, выполняет синхронизацию. Работает на Linux, Windows, Mac.
Надеюсь, что это поможет :)